最近正忙于搬家,面试,整理团队开发计划等工作,所以没有什么时间登陆个人公众号,今天上线看到有粉丝想了解下Netty结合通用SSM框架的案例,由于公众号时间限制,我不能和此粉丝单独沟通,再此写一篇手记分享下。

对于Netty大致觉得是迈向中级开发的必备通信框架,它是轻量级的,且其架构的演进也是相当的出色。对于更多的Netty基础知识我也在去年开发中做了记录,大家可以阅历公众号历史查看Netty相关技术知识,案例项目是我主导开发的上一个大型项目,类似共享充电宝的共享应用,同样主体是小程序,而其中硬件中,嵌入式选用单片机作为主体开发,我则在IOT与Netty中纠结,最后选用Netty也是大部分通信架构都是基于Netty进行重构设计的,类似京东内部应用通信架构也是Netty为基础。

Netty与传统的通信架构不一样,它采用了双层概念,这是我自己身实现都的一种白话型理解,两个工作流或容器(ChannelGroup)一个来处理连接实例,一个来处理正在连接通信。

使用Netty我的容器可以仅开启监听一个端口,之后的连接通信均交给Netty来实现,当然通信的数据格式也要统一,帧头、帧尾、加密(项目采用CRC16)等等。

以上是真实项目的netty包下的目录截图,一些基本工具类是为了解密与双向通信发送的实现,由于单片机使用TCP,所以我们要自定义一个TCP的Handler,加入Netty的handler链中,心跳机制就多说了,主要还有Db层,这是用于在接收到数据,立即进行数据库的读写操作,由于项目本身使用MyBatis作为数据的持久层,但是在Handler中并不能很好的处理,所以我使用了原生的数据库连接,并在数据通信的不同类型中,使用线程来执行数据库操作。

如上图的示例,还有就是链接对象的唯一性,channelId与channel本身的对应要做好处理,我使用了全局的map来收集,并做了防护机制,同一channel示例,如果链接成功后,出现不一致的channelId发送信息时,系统会自动断开此危险链接。

对于netty的使用还不是很深入,还需要更多的反复推敲,希望这位朋友可以有所收获或有什么问题重新与公众号联系。

关于本项目案例的源码,我需要一定时间进行部分抽离,毕竟netty在本项目中只是通信的小部分,还有很多模块不能完全分享出来,涉及商务信息保密,请见谅。

转载于:https://www.cnblogs.com/UncleCatMySelf/p/9250935.html

SSM+Netty项目结合思路相关推荐

  1. SSM框架项目:米米商城后台管理系统

    SSM框架项目[米米商城]-Java项目实战教程(涵盖技术点:Java零基础.数据库.前端.SSM框架)打通JavaEE的任督二脉_哔哩哔哩_bilibili你的三连就是创作的动力!一定不要忘记收藏. ...

  2. 动力节点最新SSM框架项目「米米商城」实战教程分享

    今天分享的是动力节点最新的SSM框架项目-米米商城,这个项目的主要目的是使大家更深层的了解IT企业的文化和岗位需求.模拟企业的工作场景,分享研制成果,增加大家对今后工作岗位及计算机应用开发对客观世界影 ...

  3. 动力节点-SSM框架项目之米米商城-精准吃透JavaEE

    今天分享的是动力节点出品的SSM框架项目-米米商城,搭建ssm框架项目的详细步骤如下: 搭建ssm项目的步骤: 1>新建maven工程 2>修改目录,修改pom.xml文件 3>添加 ...

  4. maven整合SSM搭建项目

    Maven整合SSM搭建项目 目录 一.概要. 2 1.1 Maven2 1.1.1 Maven的基本概念. 2 1.1.2 Maven的核心概念. 2 1.1.2 Maven的目标. 5 1.1.3 ...

  5. ssm影城项目_影场与属性访问器界面

    ssm影城项目 卡尔·迪亚(Carl Dea)最近跟踪了我的一篇名为" 保存内存"的博客文章! 为属性使用阴影字段 . 在他的博客中,他建议使用称为"属性访问器" ...

  6. 项目分层思路——管家婆

    管家婆家庭记账系统 一,JavaSE综合项目 分层思路: View层,视图     Control层,控制 Server层,业务 Dao层,数据库连接 熟练DBUtils操作,数据库增删改查操作 掌握 ...

  7. ssm 新建拦截器_拦截器在springboot项目和ssm架构项目的应用

    1.拦截器的主要功能 在访问某节点url前拦截客户端发来的请求,判断该请求是否符合自己定义的要求,如果不符合,返回false,该节点url的对应代码不会被执行:如果符合,返回true,可以执行该节点u ...

  8. SSM整合项目实践——完成图书的CRUD

    该SSM整合项目用的是环境是JDK1.8.MySQL8.0,前端用到了bootstrap 源码链接:https://github.com/uphe/ssm-crud 先看一下基本架构 这里展示一下效果 ...

  9. idea创建springboot项目+mybatis_从spring boot项目创建到netty项目过渡1

    本文要讲解三点 1 spring boot 项目创建 2 spring boot 项目基础上面创建netty项目(下一篇) 3 netty websocket支持wss以及配置负载均衡(下一篇) No ...

最新文章

  1. 【Python】解决print不能立即打印的问题
  2. 2019最强就业指南,看了达摩院十大科技趋势,再也不怕互联网寒冬
  3. Oracle复杂查询21道题精析
  4. 智能搜索推荐一体化营收增长解决方案
  5. [项目总结]在ios中使用soundtouch库实现变声
  6. arcgis导出access数据库能打开的文件
  7. python eureka服务发现_Spring Cloud版——电影售票系统—Eureka微服务注册与发现
  8. 数据结构与算法小结——排序(八)
  9. python自学行吗-零基础如何学习Python?看Python视频就可以吗?
  10. 如何让Activiti-Explorer使用sql server数据库
  11. mac mysql 移动硬盘_mac挂载移动硬盘可以读写的方法
  12. C++实践之华氏温度转摄氏温度
  13. Linux文件系统及文件储存方式
  14. border-image
  15. 每日英语--Week11
  16. ,到底是买新房好还是二手房好?看完你就明白了!
  17. 基于JAVA的医院门诊信息管理系统
  18. Java汽车租赁管理系统
  19. GAZEBO INSTALLATION SCRIPT Problems The following packages have unmet dependencies: gazebo11
  20. 新版上线|区块链促进旅游行业革新

热门文章

  1. 【nRF51822学习教程】SDK框架分析
  2. mysql group函数_MySQL函数:group_concat()函数
  3. linux重装出现cannot load file 5555h,重装win7系统开机提示cannot load file code:5555h怎么办...
  4. c语言在dos下执行bat文件,应用dos批处理文件经常用到的DOS常用命令
  5. java基础之多态的详细解释_JAVA基础之多态
  6. 计算机考研备考指南,计算机专业考研复习指南篇
  7. 单片机c语言程序设计叶俊明,单片机C语言程序设计
  8. 高手经验:一个新手的verilog学习经验
  9. VS2013出现“无法找到“xxx.exe”的调试信息,或者调试信息不匹配”错误解决方案
  10. 遭遇一次MySQL猜解注入攻击