1. 程式人生 > >Java一個全新的微服務框架(RedKale)

Java一個全新的微服務框架(RedKale)

RedKale (中文名: 紅菜薹,湖北武漢的一種特產蔬菜) 是基於Java 8全新的微服務框架, 包含HTTP、WebSocket、TCP/UDP、資料序列化、資料快取、依賴注入等功能。 本框架致力於簡化集中式和微服務架構的開發,在增強開發敏捷性的同時保持高效能。
RedKale 有如下主要特點:

1、大量使用Java 8新特性(介面預設值、Stream、Lambda、JDk8內建的ASM等)

2、提供HTTP服務,同時內建JSON功能與限時快取功能

3、TCP層完全使用NIO.2,並統一TCP與UDP的介面

4、提供分散式與集中式部署的無縫切換

5、提供類似JPA功能,幷包含資料快取自動同步與簡潔的資料層操作介面

6、可以動態修改已依賴注入的資源

亮點一. 序列化與反序列化
Convert包是RedKale內一個獨立的元件, 用於資料的序列化與反序列化。包分三塊:基本包、JSON包、BSON(Binary Stream Object Notation)包。基本包可以用於擴充套件其他序列化格式(如: XML),其JSON效能是其他任何JSON框架不能媲美的,對於非常規的POJO類也提供了方便的自定義介面。BSON用於資料的二進位制序列化與反序列化,支援很複雜的泛型資料,是SNCP協議的基礎。

亮點二. 輕量級HTTP
RedKale 的HTTP是基於非同步NIO.2實現的,所提供的HttpResponse的輸出介面也是非同步的,因此並不遵循JSR 340規範(Servlet 3.1)且也沒有實現JSP規範。 HTTP只提供四個物件:HttpContext、HttpRequest、HttpResponse、HttpServlet。 傳統Session則由資料層實現。RedKale提倡HTTP+JSON介面(無論網站、PC客戶端、APP移動端、第三方介面都可使用統一介面), 因此HTTP層內建了JSON序列化與反序列化介面,同時內建HTTP快取機制。

RedKale 的 WebSocket服務 介面不同於JSR 340(Servlet 3.1), 除了提供基本的WebSocket功能, 還提供分散式與集中式部署, 當部署多個WebSocket程序時,通過配置檔案可以實現WebSocket之間連線資訊的資料同步。

亮點三. SNCP協議
SNCP(Service Node Communicate Protocol)是RedKale獨有的協議, 類似RMI與WebService的功能結合,主要用於程序間的資料傳輸。使用者通過配置檔案可以輕易的將Service由 本地模式 變成 遠端模式 。 遠端模式Service 使用SNCP協議與其他程序的Service通訊。使用者無需對遠端通訊介面使用類似Mina的第三方包自行開發。SNCP是RedKale的核心功能,其微服務架構都是基於 本地模式Service 和 遠端模式Service 。

亮點四. DataSource
RedKale提供DataSource類對資料層進行操作,其功能類似JPA+Memcached。最大程度的簡化資料層的操作,免去SQL/JPQL語句的編寫。同時提供過濾查詢與JavaBean的結合、讀寫分離、資料庫熱切換、本地/遠端部署、程序間快取自動同步等功能。
**學習Java的同學注意了!!!
學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入Java學習交流群,群號碼:521352947 我們一起學Java!**