- 博客(25)
- 资源 (10)
- 收藏
- 关注
转载 C++的ORM工具比较
用过Java的都知道SSH框架,特别对于数据库开发,Java领域有无数的ORM框架,供数据持久层调用,如Hibernate,iBatis(现在改名叫MyBatis),TopLink,JDO,JPA……非常方便实用。 用过C#的同学们也都知道通过CodeSmith软件,生成微软的PetShop分层模式,达到数据持久层的代码,也非常方便。 那么我们用C++的怎么办,我们也是
2015-04-28 16:25:13 6565
转载 ZeroMQ的学习和研究
一、ZeroMQ的背景介绍引用官方的说法: “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是
2015-04-22 17:31:30 474
转载 activemq的几种基本通信方式总结
简介 在前面一篇文章里讨论过几种应用系统集成的方式,发现实际上面向消息队列的集成方案算是一个总体比较合理的选择。这里,我们先针对具体的一个消息队列Activemq的基本通信方式进行探讨。activemq是JMS消息通信规范的一个实现。总的来说,消息规范里面定义最常见的几种消息通信模式主要有发布-订阅、点对点这两种。另外,通过结合这些模式的具体应用,我们在处理某些应用场景的时候也衍生
2015-04-22 16:35:23 411
转载 Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。 第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等工具,
2015-04-17 17:15:37 318
转载 zookeeper基本原理
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee
2015-04-17 17:00:59 375
转载 Protobuf消息设计原则(值得借鉴)
目录[-]1. 使用 protobuf 的enum定于消息的编号,也就是消息的类型。2. 会为每个具有消息体的消息定义一个对应的protobuf message。例如Login_Request会有一个对应LoginRequest消息。3. 会为每个消息大类定义一个消息,例如命令消息全部包含在message Command中,请求消息全部包含在Request消息中,应答消息全部包
2015-04-16 16:43:45 4963 2
原创 比较全的Netty5类图整理
抽时间整理了一下Netty5的相关类图,便于以后开发参考,主要包括Bootstrap, Channel, Eventloop, Handler, Task, Future, ByteBuf等几大内容。1. Bootstrap2. Eventloop3. Channel4. Channel Handler5. Task
2015-04-16 14:52:29 2210 1
转载 Netty内存泄露检测原理分析
引用计数netty中使用引用计数机制来管理资源,当一个实现ReferenceCounted的对象实例化时,引用计数置1.客户代码中需要保持一个该对象的引用时需要调用接口的retain方法将计数增1.对象使用完毕时调用release将计数减1.当引用计数变为0时,对象将释放所持有的底层资源或将资源返回资源池.内存泄露按上述规则使用Direct和Pooled的ByteBuf尤其
2015-04-16 11:50:47 5021 4
转载 Java中三个引用类SoftReference 、 WeakReference 和 PhantomReference的区别
本文将谈一下对SoftReference(软引用)、WeakReference(弱引用)和PhantomRefrence(虚引用)的理解,这三个类是对heap中java对象的应用,通过这个三个类可以和gc做简单的交互。强引用:除了上面提到的三个引用之外,还有一个引用,也就是最长用到的那就是强引用.强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它
2015-04-16 11:04:42 508
转载 Fork/Join框架介绍
1. 什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算1+2+。。
2015-04-15 17:42:59 358
转载 Java 理论与实践: 正确使用 Volatile 变量
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主
2015-04-15 17:17:05 240
转载 sun.misc.unsafe类的使用
这个帖子是关于JAVA中鲜为人知的特性的后续更新,如果想得到下次在线讨论的更新,请通过邮件订阅,并且不要忘了在评论区留下你的意见和建议。 Java是一个安全的开发工具,它阻止开发人员犯很多低级的错误,而大部份的错误都是基于内存管理方面的。如果你想搞破坏,可以使用Unsafe这个类。这个类是属于sun.* API中的类,并且它不是J2SE中真正的一部份,因此你可能找不到任何
2015-04-15 15:25:56 374
转载 并发编程 Promise, Future 和 Callback
在并发编程中,我们通常会用到一组非阻塞的模型:Promise,Future 和 Callback。其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这个结果可以添加 Callback 以便在任务执行成功或失败后做出对应的操作,而 Promise 交由任务执行者,任务执行者通过 Promise 可以标记任务完成或者失败。 可以说这一套模型是很多异步非阻塞架构的基础。这一套
2015-04-15 13:59:37 1728
转载 java并发编程-Executor框架
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执
2015-04-15 13:52:48 358
转载 LogStash,使日志管理更简单
James Turnbull,通过对日志管理项目情境中的Logstash实施细节的介绍,给了读者信服的理由去使用Logstash进行集中化的日志管理。 《Logstash》一书通过一个双面案例(two side case)从不同方面进行介绍,其低准入门槛适合小企业使用,其扩展能力使其也能满足大企业的需求。今年二月,James在Hangops会议上谈到本书,“它主要面向那些以前没有见过LogSt
2015-04-15 09:07:54 1959
转载 用Kibana和logstash快速搭建实时日志查询、收集与分析系统
Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。kibana 也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面说到这里,我们
2015-04-15 09:06:03 460
转载 Actor编程模型——简介
Actor编程模型——简介2014年10月31日 ⁄ 综合 ⁄ 共 1983字 ⁄ 字号 小 中 大 ⁄ 评论关闭一、 引言之前系统中有这样一处代码:在线上运行一段时间后,这个任务线程竟然莫名其妙地退出了,要不是后来添加了一些日志信息,以及thread-dump分析,根本不晓得这个任务早都没有了。原因就是hand
2015-04-10 09:27:36 3599
转载 使用 JADE 平台进行智能体开发
作为一名软件开发人员,我相信大家都对面向对象技术有个比较深刻的认识。面向对象技术的确为提高软件开发效率做出了巨大的贡献。但是在我们的开发过程中,面向对象也暴露了一些不足,其中最主要的不足可以归纳为:面向对象技术并不是对现实世界的最贴切的模拟。既然出现了不足,那么在这种特定的背景下,必然会出现一种软件开发理论和技术来解决软件开发中的问题。这就是智能体Agent。本文首先介绍一下智能体的基本概念,然后
2015-04-09 17:51:08 3419
转载 设计与开发应用服务器(一)------常见模式
设计与开发服务器算是一个技术含量比较高的领域,需要涉及到网络编程、IO、多线程、分布式、性能和可扩展性等较为复杂的技术细节,比起JSP/servlet或SSH框架开发业务系统来说,开发服务器比较偏重于技术一些,许多开发人员会有些束手无措,但却无法避免,比如基于HTTP协议的服务不适用时,或需要提供某种协议的容器时。其实服务器的设计与开发也是有模式可借鉴,只不过没有框架或是书籍来这么一些模式
2015-04-09 17:22:06 450
转载 Java多线程编程模式实战指南一:Active Object模式
Active Object模式是一种异步编程模式。它通过对方法的调用与方法的执行进行解耦来提高并发性。若以任务的概念来说,Active Object模式的核心则是它允许任务的提交(相当于对异步方法的调用)和任务的执行(相当于异步方法的真正执行)分离。这有点类似于System.gc()这个方法:客户端代码调用完gc()后,一个进行垃圾回收的任务被提交,但此时JVM并不一定进行了垃圾回收,而可能是在g
2015-04-09 09:39:56 482
转载 Yacc 与 Lex 快速入门
本文摘自: http://www.ibm.com/developerworks/cn/linux/sdk/lex/Lex 代表 Lexical Analyzar。Yacc 代表 Yet Another Compiler Compiler。 让我们从 Lex 开始吧。LexLex 是一种生成扫描器的工具。扫描器是一种识别文本中的词汇模式的程序。 这些词汇模式(或者
2015-04-08 14:04:25 616
转载 java动态代理(JDK和cglib)
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类
2015-04-07 14:42:10 297
转载 EasyMock 使用方法与原理剖析
文章摘自-IBM DevelopWorks: http://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock
2015-04-07 09:42:50 418
Hashed and Hierarchical Timing Wheels
2015-03-24
Pattern.Oriented.Software.Architecture.Volume.1
2015-03-24
Pattern-Oriented Software Architecture, Volume 2
2015-03-24
Core J2EE™ Patterns: Best Practices and Design Strategies, Second Edition
2015-03-19
EM78芯片编程详细资料
2009-03-19
Windows Shell扩展编程完全指南
2008-10-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人