RedKale --一個全新Java微服務框架

xpbu7558 8年前發布 | 24K 次閱讀 Java 微服務 Java開發

來自: http://www.iteye.com/news/31318-RedKale-Java

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的結合、讀寫分離、數據庫熱切換、本地/遠程部署、進程間緩存自動同步等功能。

 本文由用戶 xpbu7558 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!