SSM+Netty项目结合思路
最近正忙于搬家,面试,整理团队开发计划等工作,所以没有什么时间登陆个人公众号,今天上线看到有粉丝想了解下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在本项目中只是通信的小部分,还有很多模块不能完全分享出来,涉及商务信息保密,请见谅。

SSM+Netty项目结合思路的更多相关文章
- SSM框架的整合思路&功能实现
这是我第一篇博客,关于SSM框架的整合思路以及简单功能实现. 首先,最近刚刚学习Spring+SpringMVC+Mybatis,在开发时遇到形形色色的问题,周遭人也为我提供了一些思路,我会一点点整理 ...
- 【JAVA - SSM】之SSM入门项目的搭建
最近学习了一下SSM.SSM是 Spring + SpringMVC + MyBatis 整合框架,非常适合WEB后台开发,也是当前很多人的不二选择.这篇博客带大家来创建一个学习SSM的入门程序,从搭 ...
- 干净的ssm框架项目
其中数据库只有如下表与字段 访问效果: 项目下载: 干净的ssm框架项目.rar
- 【JavaEE】之SSM入门项目的搭建
最近学习了一下SSM.SSM是 Spring + SpringMVC + MyBatis 整合框架,非常适合WEB后台开发,也是当前很多人的不二选择.这篇博客带大家来创建一个学习SSM的入门程序,从搭 ...
- SSM商城项目(一)
1. 学习计划 1.电商行业的背景. 2.宜立方商城介绍 3.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 4.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomc ...
- 史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
目录 前言: 1. 搭建整合环境 2.Spring框架代码的编写 3.SpringMVC框架代码的编写 4. Spring整合SpringMVC的框架 5.MyBatis框架代码的编写 6. Spri ...
- 最近完成的AndroidStudio项目实现思路及应用技术
主要内容: Android Studio的介绍 AS中个Gradle及Groovy介绍 AS中的依赖管理 Maven以及Nexus私库管理依赖 Gradle对变种代码的管理以及多渠道打包 eclips ...
- H5页面项目的思路整理
这是H5项目完成后的一些整理,有些理解不能非常准确,希望大家能帮忙指出. 移动端的适配 一些名词解释 visual viewport 可视视图 layout viewport 布局视图 vm 可视视图 ...
- SSM 框架 ---项目整合
一.SSM框架理解 Spring(业务层) Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象. Spring的核心思想是IoC(控 ...
随机推荐
- python爬虫学习之使用XPath解析开奖网站
实例需求:运用python语言爬取http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html这个开奖网站所有的信息,并且保存为txt文件. 实例环境:pyth ...
- BeanPostProcessor —— 连接Spring IOC和AOP的桥梁
之前都是从大Boss的视角,来介绍Spring,比如IOC.AOP. 今天换个视角,从一个小喽啰出发,来加深对Spring的理解. 这个小喽啰就是, BeanPostProcessor (下面简称 B ...
- 使用Consul 实现 MagicOnion(GRpc) 服务注册和发现
1.下载打开Consul 笔者是windows下面开发的(也可以使用Docker). 官网下载windows的Consul https://www.consul.io/ 使用cmd窗口打开,输入con ...
- Go语言map
map 是一种特殊的数据结构:一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元素是 value,所以这个结构也称为关联数组或字典.这是一种快速寻找值的理想结构:给定 k ...
- 实现简易Promise
概述 异步编程离不开promise, async, 事件响应这些东西,为了更好地异步编程,我打算探究一下promise的实现原理,方法是自己实现一个简易的promise. 根据promise mdn上 ...
- Java-redis-雪崩优化
缓存失效的时候如下图: 解决办法"使用互斥锁(mutex key):下面是核心伪代码 v = memcache.get(key); if (v == null) { if (memcache ...
- PHP文件基本操作及文件的上传和下载
此篇实现了PHP对文件的系列操作,包括文件的读写和处理.文件的上传.文件的下载. 1.简单写文件:file_put_contents("文件名","数据字符串" ...
- 吐血整理 20 道 Spring Boot 面试题,我经常拿来面试别人!
面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望. 下面,我给大家总结 ...
- 我面试过没有上万人也有十几个,简历要这么写才有hr要你
今天终于有时间好好给大家写写关于如何写简历,给自己加分了. 这篇文章拖了很久了应该说,本来想在上周写的,但是事情实在是太多,又不想草草了事,所以搁置到现在.今天早上正好空出来了,就马上给大家码出来了. ...
- [原创]K8 DB_Owner权限GetShell工具
2011-04-23 02:19:56| 分类: 原创工具 DB_Owner权限拿Shell工具[K.8]Author: QQ吻Team:Crack8_TeamBlog:http://qqhack8 ...