宜信於2019年3月29日正式開源nextsystem4(如下簡稱「NS4」)系列模塊。git
這次開源的NS4系列模塊是圍繞當前支付系統笨重、代碼耦合度高、維護成本高而產生的分佈式業務系統解決方案。NS4系列框架容許建立複雜的流程/業務流,對於業務服務節點的實現可串聯,可分佈式。其精簡、輕量,實現了「脫容器」(不依賴tomcat、jetty等容器)獨立運行。NS4系列框架的設計理念是將業務和邏輯進行分離,開發人員只需經過簡單的配置和業務實現就能夠實現邏輯複雜、性能高效、功能穩定的業務系統。github
NS4系列包括4個開源模塊,分別是:ns4_frame 分佈式服務框架、ns4_gear_idgen ID 生成器組件(NS4框架Demo示例)、ns4_gear_watchdog 監控系統組件(服務守護、應用性能監控、數據採集、自動化報警系統)和ns4_chatbot通信組件。web
NS4系列模塊的核心優點主要體如今如下幾個方面:redis
項目開源地址:https://github.com/newsettle數據庫
開源地址:https://github.com/newsettle/...緩存
ns4_frame是一個高性能優秀的分佈式服務框架,容許建立複雜的流程/業務流,對於業務服務節點的實現可串聯,可分佈式。其精簡、輕量,實現了「脫容器」(不依賴tomcat、jetty等容器)獨立運行。ns4_frame將業務和邏輯進行分離,開發人員只需經過簡單的配置和業務實現就能夠實現邏輯複雜、性能高效、功能穩定的業務系統。tomcat
ns4_frame是一套MAVEN父子項目,由五個子項目組成:微信
上圖展現了NS4每一個系統的層次結構。架構
NS4整套系統本質上其實就是一套消息中間件服務加開發框架,總體的結構圖以下: 框架
上圖展現了一個NS4總體分佈式項目的運行流程。一個消息的運轉流程按以下順序:
開源地址:https://github.com/newsettle/...
ns4_gear_idgen (ID生成器)是基於NS4框架實現的,它支持分佈式部署,生成全局惟一的 ID,其中長度、前綴、後綴、步長、進制也可根據本身的業務自由配置,還能夠經過ns4_gear_idgen對NS4.0框架進行測試。
開源地址:https://github.com/newsettle/...
ns4_gear_watchdog是ns4_frame進程的父進程,守護並管理ns4_frame進程。它的職責包括如下幾個方面:
ns4_gear_watchdog是做爲父進程存在的,經過父進程啓動目標項目(子進程),並針對子進程應用生存的環境因素(包括系統層面的內存消耗、CPU 使用、負載、線程等)、實現功能的代碼因素(代碼健康程度)、業務因素等數據進行實時監控。父子進程經過 jmx 方式進行通信,採集以上因素數據,並將這些數據保存到 ElasticSearch 中,進一步經過分析數據和現實運行狀況總結制定出的指標相結合,將該以上因素數據經過微信機器人實時通知提醒相關負責人。
[ns4_gear_watchdog基本結構圖]
開源地址:https://github.com/newsettle/...
ns4_chatbot是一個機器人的聊天框架,集成了qqbot、WxChat、rasa以及web服務。ns4_chatbot提供微信和qq聊天接口,能夠對某個羣組發送系統監控消息等,還能夠把ns4_gear_watchdog監控信息發送到對應的羣組中。
ns4_chatbot實現的功能:
接受內部系統(如監控系統)的系統調用,從而把消息推送給 QQ 或者微信用戶。內部系統調用服務時,須要提供如下信息:
宜信一直踐行以科技推進金融發展的技術信念,並願意將技術實踐成果開源分享,以期經過宜信的實踐經驗推進金融科技行業的發展和創新。 目前,宜信技術學院已開源了多個宜信的技術成果與研發實踐,面向軟件研發行業分享宜信的技術理念,本次NS4系列模塊的開源將保持長期更新和維護,也但願有更多的技術夥伴加入到開源項目中,共同維護與發展開源成果。
內容來源:宜信技術學院