java
文章平均质量分 65
oTianKongYanLei
这个作者很懒,什么都没留下…
展开
-
Java程序员如何看待application运行系统对GC的影响
1.Java application运行在Jvm上,而Jvm则寄生在各种操作系统上,Jvm通过调用原生接口来获得系统服务(native方法)。 2.系统资源分三类: 1.cpu (计算资源) 2.io (IO资源) 3. mem (存储资源)GC耗时分类(这里主要指full gc,full gc 采用非引用计数的方法来标记垃圾对象,非引用计数的GC方式需要STW原创 2016-07-03 21:11:19 · 412 阅读 · 0 评论 -
Pigeon 线程池设计
一. 类结构1.1 DynamicThreadPooolPigeon中的线程池类DynamicThreadPool实现了ThreadPool,ExecutorAware接口1.2 ThreadPool接口public interface ThreadPool {void execute(Runnable run); Future submit(Cal原创 2017-03-01 17:47:32 · 627 阅读 · 0 评论 -
Pigeon 工具类ExtensionLoader
一.静态变量private static Map, Object> extensionMap = new ConcurrentHashMap, Object>();private static Map, List> extensionListMap = new ConcurrentHashMap, List>();两个同步容器,存储的class类和实例之间的kv对象二.如原创 2017-03-01 17:49:22 · 366 阅读 · 0 评论 -
Pigeon中的Netty应用
一.Netty与Pigeon交互图二.关键类解释2.1 ServerServer是Pigeon对服务器的抽象,每个Server对应一个Netty的服务器,并负责处理该 Netty服 务器接收的所有请求addService(); 该方法在服务启动流程中已经解释,通过addSerivce添加提供的服务 processRequest 提供处理请求的能力2.2原创 2017-03-01 17:50:50 · 480 阅读 · 0 评论 -
Pigeon中的负载均衡
一.核心类LoadBalanceManager 负载均衡的管理器LoadBalance 负载均衡的抽象Client 负载均衡调度的对象二.核心类讲解2.1 LoadBalanceManager类核心对象,存储着service&group的组合键 和 负载均衡器的 kv对象private static Map loadBalanceMap = ne原创 2017-03-01 17:53:02 · 538 阅读 · 0 评论 -
Pigeon中的流量限制
在RPC框架中很重要的部分就是请求量的限制,每个机器能够处理的请求数量是有上限的,所以设置一个能处理的上线,将不能处理的请求拒绝总是正确的。请求类型Pigeon中请求的处理是采用一个责任链的模式,Netty服务器中将接受的请求序列化成Request对象,然后抛到Pigeon的责任链中处理。Pigeon将请求分为四个类型(参见ProviderProcessHandlerFactory原创 2017-03-01 17:55:44 · 392 阅读 · 0 评论 -
Pigeon发布流程
Pigeon是什么我在这里就不介绍了 详细参见 dianping/pigeon: RPC framework of DIANPING一.发布入口bean id="" class="com.dianping.dpsf.spring.ServiceRegistry" init-method="init" lazy-init="false">原创 2017-03-01 17:56:54 · 1102 阅读 · 0 评论 -
IntelliJ 的调试技巧
上图是Idea的调试界面,下面逐个介绍每个按键的意思以及应用1.下一步,默认不会进入方法内部2.进入方法内部3.点击后,下一步会默认进入方法中4.跳出方法5.栈回撤 (这个个人感觉是最好用的,在debug时用好简直是神器)1.重新启动程序3.执行到下一个断点处Set Value 可以给断点处变量赋值,调试时经常需要设置条件断点原创 2017-03-01 17:58:32 · 320 阅读 · 0 评论