国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【Java貓說】SSM整合Netty5.0詳細說明

dingding199389 / 3166人閱讀

摘要:而我們項目在實測時也是將項目發布到測試服務器,通過模擬工具進行測試連接,當數據格式正常,且業務數據正常,服務器就會對指令執行對應的操作。

閱讀本文約“5.5分鐘”

最近又有粉絲加Q群討論netty整合SSM項目的方式等,我在這里抽了休息日的時候整理一下,一步一步的記錄,注意的是,本案例僅實現了用netty整合SSM后與單片機等類TCP應用通信。

SSM + Netty項目結合思路

對于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的使用還不是很深入,還需要更多的反復推敲。

項目以放置github,接下來的文檔代碼塊均用截圖表示,大家可以去github查看具體的代碼資料

UncleCatMySelf/ssmnetty

首先我用IDEA進行項目的初始化

接下初始化對應的pom文件還有配置文件

主要還是版本問題,其他版本我還沒試過,所以坑的話,大家還要繼續踩踩。

主要是netty中連接池對數據的處理,是在線程中執行的,Spring框架注入的Service組件存在失效的問題,我使用了大部分辦法還是無法處理,最后就直接用原生的mybatis方式進行數據操作,所以congif文檔是針對netty操作數據庫而特別準備的配置文件。mappers可以時mybatis自動生成,也可以是自己寫的xml文件。

本項目的mybatis集成Spring也是完好的,靜靜netty的數據操作需要再定義一層數據持續化池。

項目通過引入netty5.0,通過監聽器形式,啟動netty線程(NettyServerThread),于后啟動對應的NettyServer,其中啟動永久監聽還有定義自己的TCPServerhandler,在數據讀取方法中,重新定義自己的業務處理。 在接收成功,數據格式正常的情況下,執行對應的數據層操作,且每一個實例連接進來時,系統內存會對其進行ID與實例的綁定與存儲,也因此方便Controller層對其鏈接實例進行查詢信息與下發指令。

相關目錄介紹均以放置Github上了喲。

地址:UncleCatMySelf/ssmnetty

沒錯就是 UncleCatMySelf ,本人地址下最新的項目。

接下來我們來看看項目的實測調試效果吧,我們需要運行CRC16跑出對應通信格式的密文,然后再由TCPIPMyself去執行,當然首先是運行起我們的項目。


服務器接收成功后也會執行相應的任務,這里第一次執行錯誤,是因為業務上,這條ID是在數據庫里面不存在的,所以更新失敗。


而我們項目在實測時也是將項目發布到測試服務器,通過TCP模擬工具進行測試連接,當數據格式正常,且業務數據正常,服務器就會對指令執行對應的操作。


我們再看看API方面的問題,當實例連接正常時,暴露出來的nettyAPI應該就是沒問題的。不信?我們來看看效果怎么樣



確實是沒問題的,不過本項目還是應該還有部分坑存在,再次將源碼分享給大家,希望大家一起踩坑,且本人平時較忙所以相關項目的代碼維護也是有時間才弄的,畢竟最近在準備(軟考中級的設計師,且對機器學習也有了興趣),嗯,各位應該懂的!

本文已轉載個人技術公眾號:UncleCatMySelf
歡迎留言討論與點贊
上一篇推薦:【Java貓說】SSM+Netty實現軟硬件通信,真實項目案例
下一篇推薦:【Java貓說】項目架構的演進史(大型電商系列)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71661.html

相關文章

  • Java貓說】項目架構的演進史(大型電商系列)

    摘要:我們本次也要從核心模塊演進細節到核心架構設計思想,最后實現高性能高并發高可用的電商實戰項目。過程中安全性數據分析監控反作弊繼續發展架構服務化消息隊列任務調度多機房因此任何一個高大上的項目技術架構和開發技術實現不是一蹴而就的。 閱讀本文約 7分鐘 大家都知道,一個真實的企業級項目開發過程、大型企業項目開發的編碼思維、經驗、技巧、高質量的線上作品都是需要耗費人力物力和成本,同樣我們的項目...

    yuanxin 評論0 收藏0
  • Java貓說】項目架構的演進史(大型電商系列)

    摘要:我們本次也要從核心模塊演進細節到核心架構設計思想,最后實現高性能高并發高可用的電商實戰項目。過程中安全性數據分析監控反作弊繼續發展架構服務化消息隊列任務調度多機房因此任何一個高大上的項目技術架構和開發技術實現不是一蹴而就的。 閱讀本文約 7分鐘 大家都知道,一個真實的企業級項目開發過程、大型企業項目開發的編碼思維、經驗、技巧、高質量的線上作品都是需要耗費人力物力和成本,同樣我們的項目...

    sumory 評論0 收藏0
  • Java構建一個簡單的WebSocket聊天項目之新增HTTP接口調度

    摘要:前言大家可以看看上一篇用構建一個簡單的聊天室在上一篇文章中我們已經實現了自我對話好友交流群聊離線消息等的功能。系統通知恭喜您連續登錄超過天,獎勵積分。 本文首發公眾號與個人博客:Java貓說 & 貓叔的博客 | MySelf,轉載請申明出處。 前言 大家可以看看上一篇:用Java構建一個簡單的WebSocket聊天室 在上一篇文章中我們已經實現了:自我對話、好友交流、群聊、離線消息等...

    vvpvvp 評論0 收藏0

發表評論

0條評論

dingding199389

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<