netty 构建server和client 服务
前言编程学习的方法,我认为是以小见大,在理解一个东西之前一定要先会用,并用熟它,这样理解才会快。就跟理解自行车一样,不会骑,然后先开始研究,最终可能会研究明白,但是毕竟还是事倍功半。所以先构建一个可以使自己理解的项目,再一点一点学习原理是一种比较好的方式。
Server服务端构建netty的话,就是一个流程三件套,最基础的三个框架组件摆出来,然后在上面写代码,分别是:
Server 启动类
Initializer 实始化组件类
Handle 请求处理类
劳记这一个流程三件套,基本netty的开发,你已经入门了,就是这么回事。
启动类套路第一步,写一个启动类,这个是入口,netty服务的话,一般都是先启动服务端,再启动客户端。这个好理解,如果服务端都不提供服务,客户端还有必要连接吗。当然如果是要启动着玩,就另说。
1234567891011121314151617181920212223242526272829303132333435package com.liukai.netty.test02.server;import io.netty.bootstrap.ServerBoots ...
netty 构建一个简易服务
前言构建一个只有Server服务端的netty服务,不需要额外的编写client去访问,也就是说使用现在的软件去访问。最简单的就是使用浏览器去访问,浏览是HTTP协议,所以服务必须是一个支持HTTP协议的应用。
实现使用:IDEA + netty + gradle 构建一个简单的HTTP服务,用来学习netty。
主要角色netty 构建一个服务,需要三个角色参与
Server 运行服务
Initializer 组装组件
Handle 业秋处理
项目构建可以创建一个gradle的空项目,这下面的代码复制进到项目中。
build.gradle复制内容
12345678910111213141516171819202122232425262728293031323334//插件管理plugins { id 'java'}//座标group 'com.liukai.netty'version '1.0-SNAPSHOT'//源和目标编译版本sourceCompatibility = 1.8targetC ...
netty 简述
什么是nettyNetty是一个异步的基于事件驱动(Reactor)的网络框架。Netty是一个NIO客户服务器框架,它能够快速和容易地开发网络应用,如协议服务器和客户端。它大大简化了网络编程,如TCP和UDP套接字服务器。
为什么选择netty主要原因是 netty 简化了使用nio时对网络编程的复杂性,提供更多的抽象性和功能方便网络编程开发。
列举一个特点:1.Netty支持三种IO模型同时支持三种Reactor模式。
2.Netty支持很多应用层的协议,提供了很多decoder和encoder。
3.Netty能够解决TCP长连接所带来的缺陷(粘包、半包等)
4.Netty支持应用层的KeepAlive。
5.Netty规避了JAVA NIO中的很多BUG,性能更好。
使用 netty 能做什么1.实现节点间通信2.实现自己的协议 dubbo、rocketmq 等底层都使用 netty 实现自己的协议