上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 33 下一页
我们使用curator建立连接,curator有session维护,重试机制,对递归创建节点和删除节点有较好的支持: RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); CuratorFramework client = C Read More
posted @ 2019-12-31 15:58 soft.push("zzq") Views(1157) Comments(0) Diggs(0)
1 reactor网络服务模型 (1) handle (2)同步事件分离器 (3)dispatcher (4)事件处理器 2 reactor的两个线程组,其中一个是负责监听客户端连接事件,另一个负责将具体的事件处理接入netty的channelHandle责任链,进行数据入站出站。 3 责任链处理, Read More
posted @ 2019-12-30 14:37 soft.push("zzq") Views(299) Comments(0) Diggs(0)
压力测试条件:16core(物理8核心) + 16G 机器将性能发挥到最好。 jmetter压测TCP也是不错的; 配置如下: 连接线程和channel处理链线程分别设置成1,都用单线程的方式进行,而实际处理业务逻辑则直接使用自定义线程池,自定义线程池线程数量为:core*2=16; 5000个客户 Read More
posted @ 2019-12-28 15:41 soft.push("zzq") Views(2202) Comments(1) Diggs(0)
收集医院设备信息时由于消息为较短的json字符串,所以我们使用netty的自定义协议进行简单的数据接收。 协议约定为:head(实际消息的字节长度)+body(实际需要解析的json数据) 解码器如下,分为两步骤,最后我们获取json字符串进行处理,如果想要使用byte[]直接解析,请忽略第二个解码 Read More
posted @ 2019-12-26 15:34 soft.push("zzq") Views(355) Comments(0) Diggs(0)
nio中ByteBuffer和netty中的ByteBuf相比确实后者更加的好用: (1)ByteBuf可以在用户使用数据区空间不足的情况下以2的指数倍扩容,相比ByteBuffer的char数组是final修饰的,一旦需要扩容只能人为手动干预,并且只能重新申请数组并copy才可以。 (2)Byte Read More
posted @ 2019-12-24 10:33 soft.push("zzq") Views(593) Comments(0) Diggs(0)
在netty编程中我们绝大多数是要是用nio的,nio相比传统的io更加高效,而nio中核心概念离不开channel,buffer,selector三个重要的对象。 那么在netty中有一个channelPipeline的概念,表面理解起来是通道的意思,实际它是在数据传输过程中的通道容器。 之所以定 Read More
posted @ 2019-12-21 08:26 soft.push("zzq") Views(693) Comments(0) Diggs(0)
reactor中包含5个核心结构,那么从操作系统低层次的调度来看5部分是这样的。 (1)Handle(句柄资源描述符)本质是对客户端连接上来以后发生事件的处理机制,比如连接成功,读取数据,发送数据等状态。 (2)同步事件分离器,相对于nio来说可以理解为selector,对于客户端过来的事件需要一个 Read More
posted @ 2019-12-20 13:57 soft.push("zzq") Views(388) Comments(0) Diggs(0)
主要是通过AbstractByteBufAllocator类实现的ByteBuffer的申请。 代码如下: 会根据是否有Unsafe的类支持来判断是否需要使用“堆外内存”;如果配置了3种情况则不会使用 (1)io.netty.noUnsafe这个属性false (2)io.netty.tryUnsa Read More
posted @ 2019-12-20 11:04 soft.push("zzq") Views(899) Comments(0) Diggs(0)
private static Map loadAllJarFromAbsolute(String directoryPath) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, IOException { File directory = n... Read More
posted @ 2019-12-18 17:38 soft.push("zzq") Views(913) Comments(0) Diggs(0)
1 nginx的进程分为四种 master worker cacheLoader cacheManager。 实际接收请求的进程是 worker,master监控worker节点,之所以会多进程模式,也是保证高可用,某个进程挂掉后不影响集群正常工作 而cacheLoader cacheManager Read More
posted @ 2019-12-11 11:11 soft.push("zzq") Views(173) Comments(0) Diggs(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 33 下一页