框架编程-spring boot融合netty建立长连接通讯(spring boot+netty)未完待续

背景

近期有计划实现手动实现一下rpc远程调用的功能,主要用到spring boot、netty、zookeeper。
本博客是第一步,利用spring boot、netty实现长连接通讯。
代码托管到了gitee:
服务端:https://gitee.com/simple_projects/simple_dubbo_provider/tree/v.1.0.0
客户端:https://gitee.com/simple_projects/simple-dubbo-consumer/tree/v.1.0.0

模块简介

在这里插入图片描述

  • server模块由服务端代码实现,程序会绑定和监听本地配置的端口
  • client模块由客户端代码实现,程序主动连接配置的服务端host和port,连接成功之后,周期性的发送type为12的类型的数据包

运行效果

服务端

在这里插入图片描述
查看端口情况:
netstat -nat | grep 8080
在这里插入图片描述

客户端

在这里插入图片描述
查看端口情况(可以看到,服务端的8080端口状态变成了established,客户端也是)
在这里插入图片描述

断开客户端

查看端口情况,客户端的临时端口没有立刻关闭,而是处于time_wait的状态
在这里插入图片描述

代码走读

Server和Client的Bean需要装载到spring,而且Server和Client需要设置端口和host,必然要走Configuration的过程。

  • 添加spring.factories
  • 添加NettyServerAutoConfiguration等配置类,这个类不像@Component(在实例化bean的时候不考虑参数),可以读取application.yml里面的配置,然后再生成bean
  • 添加xxxxProperties类,用于承接spring boot的配置信息
  • 在MyApplicationRunner中进行启动后的相关事宜(服务端需要进行server的run,客户端为了测试方便,直接起了一个线程,重复的发送数据包)

下面以Server端的代码截图来举例

添加工厂类的扫描spring.factories

在这里插入图片描述

添加bean生成类

在这里插入图片描述

添加获取配置属性的类

在这里插入图片描述

评价

  • 本次没有对代码进行详细的注释,见谅(之后的博客会对netty做详细的解读)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值