一、Netty概述 1.1 原生NIO存在的问题 NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。 需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 ...
分类:
Web程序 时间:
2020-07-30 01:30:35
阅读次数:
90
初识Netty Netty是一个提供易于使用的API的客户端/服务端的框架 并发高-NIO(非阻塞IO) 传输快-零拷贝 阻塞与非阻塞 线程访问资源,该资源是否准备就绪的一种处理方式 同步与异步 同步和异步是指访问数据的一种机制 BIO 同步阻塞IO, Block IO NIO 同步非阻塞IO,Ne ...
分类:
Web程序 时间:
2020-07-29 15:11:35
阅读次数:
94
测试代码Github地址:https://github.com/zhouyanger/java_demo/tree/master/netty 四.Netty 4.1 概述 Netty 是由 JBOSS 提供的一个 Java 开源框架。Netty 提供异步的、基于事件驱动的网络 应用程序框架,用以快速 ...
分类:
Web程序 时间:
2020-07-28 13:59:55
阅读次数:
72
测试代码Github地址:https://github.com/zhouyanger/java_demo/tree/master/netty 五.自定义 RPC 5.1 概述 RPC(Remote Procedure Call),即远程过程调用,它是一种通过网络从远程计算机程序 上请求服务,而不需要 ...
分类:
其他好文 时间:
2020-07-28 13:58:23
阅读次数:
69
1 问题 术语:压缩率,compression ratio,压缩后的大小/压缩前的大小,越小说明压缩效果越好。 在使用netty的JdkZlibEncoder进行压缩时,发现了一个问题:它对于短文本(小于2K)的压缩效果很差,压缩率在80%-120%,文本越短,压缩效果越差,甚至可能比没压缩前更大。 ...
分类:
Web程序 时间:
2020-07-24 21:42:10
阅读次数:
74
easyTask-L的API设计比较简洁、易于理解和使用。主要涉及环形队列类、配置类、任务超类以及监控类四个方面。下面逐一做简单介绍。本文只对比较重要的API做介绍,其他API还望读者自行探索 环形队列(AnnularQueue) 环形队列类设计为单例模式。通过AnnularQueue.getIns ...
本次利用Java+netty实现自定义rpc框架,共分为三个工程,公共模块+服务提供者+服务消费者: rpc-common工程 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or ...
分类:
编程语言 时间:
2020-07-21 14:16:43
阅读次数:
78
Netty是基于主从Reactor模型的 BossGroup只关系Accpet(连接的建立) 维护selector 接收到Accpet事件后 获取到对应的SocketChannel 并封装成NIOSocketChannel并注册到Worker,进行维护,当Woker监听到selector 中通道发生 ...
分类:
Web程序 时间:
2020-07-20 11:00:34
阅读次数:
70
在Netty中 事务的处理都是放入自定义的Handler中的 如果某些业务比较耗时 最终也会阻塞线程 这时就需要任务队列来异步处理任务了。 1.用户自定义的普通任务 例: ctx.channel().eventLoop().execute(new Runnable() { @Override pub ...
分类:
Web程序 时间:
2020-07-20 10:56:39
阅读次数:
127
1.如果要将一个数据报从一个源节点发送到另一个目的节点我们应该怎么办? ??最简单的方案是在源节点和目的节点中间建立一条安全可靠的通路,以后两个节点之间所有的通信都在这条通路上进行,我们只要保证这个通路上的每个节点都是正常运行的,那我们就能保证数据传输的准确性(虚电路)。 ??随着节点的越来越多,这 ...
分类:
Web程序 时间:
2020-07-18 00:57:32
阅读次数:
185