etcd服务出现了以下报错Mar 23 05:50:44 localhost etcd: failed to send out heartbeat on time (exceeded the 100ms timeout for 2.951502ms) 心跳检测报错主要与以下因素有关(磁盘速度、cpu ...
分类:
其他好文 时间:
2020-03-30 19:44:12
阅读次数:
244
Java BIO、NIO与AIO的介绍 因为netty是一个NIO的框架,所以在学习netty的过程中,开始之前。针对于BIO,NIO,AIO进行一个完整的学习。 学习资源分享: Netty学习:https://www.bilibili.com/video/BV1DJ411m7NR?from=sea ...
分类:
编程语言 时间:
2020-03-30 09:53:52
阅读次数:
106
在学习网络框架Netty之前,先补充了一下自己对Java 几种IO模型的学习和理解。分别是 BIO、NIO、AIO三种IO模型。 ...
分类:
编程语言 时间:
2020-03-30 09:44:32
阅读次数:
106
在使用Netty进行网络编程的时候,通常需要在网络连接的不同阶段进行相应的操作,比如在连接建立时,客户端向服务端发起认证,在接收到数据时对数据内容进行解析等等。那么,连接的不同阶段在netty中如何表示呢? 这便是本文讨论的内容,Netty中ChannelHandller的生命周期。 首先我们先分析 ...
分类:
Web程序 时间:
2020-03-30 00:00:58
阅读次数:
135
引导Bootstrap 我们把前面的用例称作引导一个服务器,后面的用例称作引导一个客户端。虽然这个术语简单方便,但是它略微掩盖了一个重要的事实,即“服务器”和“客户端”实际上表示了不同的网络行为;换句话说,是监听传入的连接还是建立到一个或者多个进程的连接。因此,有两种类型的引导:一种用于 客户端(简 ...
分类:
Web程序 时间:
2020-03-24 23:19:08
阅读次数:
82
方法1:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测连接是否正常,大致的方法是:服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的数据包,然后启动一个低级别的线程,在该线程中不断检测客户端的回应, 如果在一定时间内没有收到客户端的回应,即认为客户端已经掉线;同样,如果客户端在一 ...
分类:
其他好文 时间:
2020-03-21 14:57:32
阅读次数:
79
首先,我们通过一个DEMO来模拟TCP的拆包粘包的情况:客户端连续向服务端发送100个相同消息。服务端的代码如下: 客户端代码如下: java AtomicLong count = new AtomicLong(0); NioEventLoopGroup boss = new NioEventLoo ...
分类:
Web程序 时间:
2020-03-21 14:53:20
阅读次数:
69
进行 Socket 编程时经常会碰到 TCP 的粘包与半包问题,很多时候我们选用 netty 等框架而不直接采用原生的 Socket 编程也是因为 netty 帮我们将该类传输过程中可能出现的问题屏蔽掉了,使我们可以抽出更多精力来关注功能的实现,而不是挣扎在处理这些底层问题上。但尽管如此,我们也必须 ...
分类:
其他好文 时间:
2020-03-21 12:55:44
阅读次数:
52
package datastructure.stack; import java.util.*; /** * <h3>netty_lecture</h3> * <p>逆波兰计算器</p> * 1+((2+3)*4)-5 ==> 1 2 3 + 4 * + 5 1 * @author : myron ...
分类:
其他好文 时间:
2020-03-19 21:23:31
阅读次数:
63
上篇介绍了 ByteBuf 的简单读写操作以及读写指针的基本介绍,本文继续对 ByteBuf 的基本操作进行解读。 读写指针回滚 这里的 demo 例子还是使用上节使用的。 进入 readBytes 方法,可以看到每次读取的时候,指针是累加的,如图: 但是,有时我们可能需要对当前操作进行回滚,让指针 ...
分类:
Web程序 时间:
2020-03-18 13:41:29
阅读次数:
71