最新文章列表

基于netty的通讯协议的设计思考

# 一、dubbo协议的设计 ​ 先从业务开始,思考设计协议。 ## 1. 从rpc到remote ​ dubbo的目标是:一个接口方法的动态实现了远程方法调用,让调用者感觉与本地调用一样。既然是远程调用,涉及到用什么协议把调用数据发过去,以及接收方按这个协议解析出请求,进行处理后,用这个协议再返回结果。 对于rpc要做的事情有: - 调用方要做的事情有:产生一个包含调用数据的Dubbo ...
herman_liu76 评论(0) 有646人浏览 2019-12-29 14:51

netty心跳检查之UDP篇

  部分UDP通信场景中,需要客户端定期发送心跳信息,以获取终端的状态,并获取终端IP,以便服务器主动发送控制命令。如移动通信,内网穿越等。   使用TCP方式通信,心跳是比较容易实现的,使用IdleStateHandler监控channel,然后在自定义的Handler中处理几个对应的事件就可以了。但是对于UDP,就不灵了。   学习研究netty,做了一个简单而完善的例子:通过UDP通信,客户 ...
wallimn 评论(0) 有2396人浏览 2019-09-15 08:50

Netty 引用计数对象

相关链接: 《Reference counted objects》 《Why do we need to manually handle reference counting for Netty ByteBuf if JVM GC is still in place?》 《Are Java DirectByteBuffer wrappers garbage collected?》 一 ...
草料场 评论(0) 有576人浏览 2019-08-27 15:10

Netty实战系列教程_三套全_含源码_4.x版本

Netty是 一个异步事件驱动的网络应用程序框架, 用于快速开发可维护的高性能协议服务器和客户端。 Netty是一个NIO客户端服务器框架,可以快速轻松地 ...
nettyjc 评论(0) 有375人浏览 2019-08-24 18:32

Java NIO epoll 空转问题 + Netty 解决方法

在 Java NIO 编程实践中,很多人都会选择 Netty 作为基础框架,而不是直接用 JDK 原生的 NIO API。 因为 JDK 原生的 NIO 框架内容过于繁杂、学习成本高、补齐可靠性的工作量和难度都很大、还有一些bug。 其中一个著名的bug就是 epoll Selector 空转问题。   相关Bug单 《JDK-6670302 : (se) NIO selector wa ...
草料场 评论(0) 有934人浏览 2019-08-23 14:53

Reator 模式 + Netty 线程模型 + 最佳实践建议

Reactor 模式 大部分网络框架的设计都基于 Reactor 模式。 这种模式基于事件驱动,特别适合处理大量的 IO 事件。  根据线程数量,我们可以将 Reactor 模式大致分为以下3种(以服务端实现为例):  单线程 Reactor 单个 Reactor 线程负责对TCP链路读写数据和编解码(包括执行业务逻辑)。 (很多人把该模式称为 “1 - 1”。其实这种称呼并不贴 ...
草料场 评论(0) 有675人浏览 2019-08-21 21:36

Netty 简介 - 高性能原理 + 关键组件模型

Netty > java.nio + java.net   Netty 是一个 NIO 框架。 它的设计强调了“分离关注点”(Separation Of Concerns)。 它通过事件机制,将业务逻辑与无关的技术逻辑隔离,通过抽象层填补 基础平台 和 业务开发 之间的鸿沟。Netty 极大地简化了网络编程(如,TCP/UDP socket 服务器)。可以利用它更快速容易地开发网络 ...
草料场 评论(0) 有520人浏览 2019-08-20 21:33

Netty内存池原理分析

为了避免频繁的内存分配给系统带来负担以及GC对系统性能带来波动,Netty4提出了全新的内存管理,使用了全新的内存池来管理内存的分配和回收。内存池这块的代码复杂难懂,而且几乎没有注释阅读起来比较费力,特别是以前没有接触过内存分配算法的阅读起来更为蛋疼,好在经过几个晚上的努力,终于捋出了一些端倪,特来此记录一番。   Netty4的内存池集大家之精华,参考了各路英雄豪杰的优秀思想,它参考了sl ...
yuqingshui 评论(0) 有582人浏览 2019-07-25 11:46

深入研究Netty框架之ByteBuf功能原理及源码分析

ByteBuf功能原理 ByteBuf是一个byte数组的缓冲区,通过两个位置指针完成缓冲区的读写操作,读操作使用readerIndex,写操作使用writeIndex。 readerIndex和writeIndex初始取值均为0,写入数据,writeIndex增加;读取数据则readerIndex增加。0~readerIndex之间的数据是已经读取的,调用discardReadBytes( ...
yuqingshui 评论(0) 有996人浏览 2019-07-18 10:59

Netty 读事件的处理

1.首先 bossLoop Accept 客户端的连接. 2.bossLoop 创建 NioSocketChannel,并完成对读事件的注册. 3.当客户端发送消息的时候,被 NioSocketChannel 处理.
一剪梅 评论(0) 有704人浏览 2019-05-13 09:40

netty自定义解码器

ByteToMessageDecoder public class CustomDecoder extends ByteToMessageDecoder { protected void decode(ChannelHandlerContext ctx, ByteBuf buf, List<Object> list) throws Exception {         try { ...
zw7534313 评论(0) 有1580人浏览 2019-03-03 10:04

netty发送定长字符串

使用telnet连接netty:发送定长字符串 //1、启动Server,输入telnet命令:telnet localhost 8088 public class NettyServer { private int port=8088; public static void main(String[] args) { NettyServer server = new NettyServ ...
zw7534313 评论(0) 有1447人浏览 2019-03-03 10:04

分隔符与定长解码器的使用

netty 的分隔符与定长解码器的使用 4种解码器应对TCP的粘包、拆包问题 new ChannelInitializer<SocketChannel>() { public void initChannel(SocketChannel ch) { ChannelPipeline pl = ch.pipeline(); //pl.addLast(new Li ...
zw7534313 评论(0) 有931人浏览 2019-02-27 16:01

netty客户端发送消息

netty客户端与服务端通信 /** * 先启动Server,再启动Client * SimpleChannelInboundHandler */ public class NettyServer { private int port=8088; public static void main(String[] args) { NettyServer server = new Ne ...
zw7534313 评论(0) 有2139人浏览 2019-02-24 12:48

netty服务端入门

nio框架:netty //1、启动Server,输入telnet命令:telnet localhost 8088,再输入任意字符 //为什么我-次只能发送一个字节? public class NettyServer { private int port=8088; public static void main(String[] args) { NettyServer server = ...
zw7534313 评论(0) 有799人浏览 2019-02-24 12:47

介绍服务端 Netty 的工作架构图

服务端 Netty 的工作架构图:    
robustwang 评论(0) 有723人浏览 2019-02-22 17:15

netty中使用protobuf实现多协议的消息

    在我们使用 netty 的过程中,有时候为了高效的传输数据,经常使用 protobuf 进行数据的传输,netty默认情况下为我们实现的 protobuf 的编解码,但是默认的只能实现单个对象的编解码,但是我们在使用 netty 的过程中,可能需要传输的对象有各种各样的,那么该如何实现对protobuf多协议的解码呢?       在 protobuf 中有一种类型的字段叫做  on ...
huan1993 评论(0) 有2854人浏览 2019-02-15 16:28

Netty源码细节2--bind

前言 本菜鸟有过几年的网络IO相关经验, java层面netty也一直关注, 最近想对自己所了解的netty做一个系列的笔记, 不光技术水平有限, 写作水平更有限, 难免有错误之处欢迎指正, 共同学习. 源码来自Netty5.x版本, 本系列文章不打算从架构的角度去讨论netty, 只想从源码细节展开, 又不想通篇的贴代码, 如果没有太大的必要, 我会尽量避免贴代码或是去掉不影响主流程逻辑的代码 ...
04370112 评论(0) 有423人浏览 2019-01-30 09:58

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics