<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          RedkaleJava 分布式微服務(wù)框架

          聯(lián)合創(chuàng)作 · 2023-09-28 05:55

          Redkale 介紹

          Redkale (中文名: 紅菜苔,湖北武漢的一種特產(chǎn)蔬菜) 是基于Java 8全新的微服務(wù)框架, 包含HTTP、WebSocket、TCP/UDP、數(shù)據(jù)序列化、數(shù)據(jù)緩存、依賴注入等功能。               

          本框架致力于簡(jiǎn)化集中式和微服務(wù)架構(gòu)的開發(fā),在增強(qiáng)開發(fā)敏捷性的同時(shí)保持高性能。

          RedKale 有如下主要特點(diǎn):
                      1、大量使用Java 8新特性(接口默認(rèn)值、Stream、Lambda、JDk8內(nèi)置的ASM等)
                      2、提供HTTP服務(wù),同時(shí)內(nèi)置JSON功能與限時(shí)緩存功能
                      3、TCP層完全使用NIO.2,并統(tǒng)一TCP與UDP的接口
                      4、提供分布式與集中式部署的無(wú)縫切換
                      5、提供類似JPA功能,并包含數(shù)據(jù)緩存自動(dòng)同步與簡(jiǎn)潔的數(shù)據(jù)層操作接口
                      6、可以動(dòng)態(tài)修改已依賴注入的資源
                     

          設(shè)計(jì)理念

                  作為一個(gè)全新的微服務(wù)框架,不僅是使用了Java8的新語(yǔ)法,更多是設(shè)計(jì)上與主流框架有所不同。Redkale是按組件形式設(shè)計(jì)的,而非以容器為主,幾乎每個(gè)子包都是能提供獨(dú)立功能的組件。如Tomcat是按容器設(shè)計(jì)的,所有web資源/配置由Tomcat控制,開發(fā)者很能難控制到Tomcat內(nèi)部,而Redkale的HTTP服務(wù)只是個(gè)組件,開發(fā)者既可以自己?jiǎn)?dòng)和配置HttpServer,也可以把Redkale當(dāng)成容器通過(guò)Redkale進(jìn)程來(lái)初始化服務(wù)。Spring的Ioc容器也是如此,Redkale提供的依賴注入僅通過(guò)ResouceFactory一個(gè)類來(lái)控制,非常輕量,而且也可以動(dòng)態(tài)更改已注入的資源。Spring提倡控制反轉(zhuǎn)思想,偏偏自身的容器卻讓開發(fā)者很難控制。Redkale是一個(gè)既能以組件形式也能以容器形式存在的框架。從整體上看,Redkale的架構(gòu)分兩層:接口和默認(rèn)實(shí)現(xiàn)。若開發(fā)者不想使用Redkale內(nèi)置的HTTP服務(wù)而使用符合JavaEE規(guī)范的HttpServlet, 可以采用自定義協(xié)議基于JSR 340(Servlet 3.1)來(lái)實(shí)現(xiàn)自己的HTTP服務(wù);若開發(fā)者想使用Hibernate作為數(shù)據(jù)庫(kù)操作,可以寫一個(gè)自己的DataSource實(shí)現(xiàn)類;JSON的序列化和反序列化也可以使用第三方的實(shí)現(xiàn)。這其實(shí)包含了控制反轉(zhuǎn)的思想,讓框架里的零件可以讓開發(fā)者控制。
                  與主流框架比,功能上Redkale顯得很簡(jiǎn)單,這也是Redkale的一個(gè)特點(diǎn)并非不足,從一個(gè)良好的設(shè)計(jì)習(xí)慣或架構(gòu)上來(lái)看,有些常用功能是不需要提供的,比如Redkale的HTTP服務(wù)不支持HTTPS和JSP,HTTPS比HTTP多了一層加密解密,這種密集的數(shù)字計(jì)算不是Java的專長(zhǎng),同時(shí)一個(gè)稍好的提供HTTP服務(wù)的架構(gòu)不會(huì)將Java動(dòng)態(tài)服務(wù)器放在最前端,通常前面會(huì)放nginx或apache,除了負(fù)載均衡還能靜動(dòng)分離,既然Java服務(wù)器前面有C寫的服務(wù)器,那么HTTPS的加解密就應(yīng)該交給前面的服務(wù)器處理。Redkale再提供HTTPS服務(wù)就顯得雞肋。JSP其實(shí)算是一個(gè)落后的技術(shù),現(xiàn)在是一個(gè)多樣化終端的時(shí)代,終端不只局限于桌面程序和PC瀏覽器,還有原生App、混合式App、微信端、移動(dòng)H5、提供第三方接口等各種形式的終端,這些都不是JSP能兼顧的,而HTTP+JSON作為通用性接口可以避免重復(fù)開發(fā),模版引擎的功能加上各種強(qiáng)大的JS框架足以取代JSP(如果初級(jí)程序員還花大量時(shí)間去學(xué)習(xí)基于JSP的Struts或Spring MVC框架,就有點(diǎn)跟不上時(shí)代了)。Redkale在功能上做了篩選,不會(huì)只因?yàn)橛现髁鞫峁且粤己玫脑O(shè)計(jì)思想為指導(dǎo)。這也是Redkale很重要的一個(gè)思想。

          亮點(diǎn)一. 序列化與反序列化

                  Convert包是RedKale內(nèi)一個(gè)獨(dú)立的組件, 用于數(shù)據(jù)的序列化與反序列化。包分三塊:基本包、JSON包、BSON(Binary Stream Object Notation)包?;景梢杂糜跀U(kuò)展其他序列化格式(如: XML),其JSON性能是其他任何JSON框架不能媲美的,對(duì)于非常規(guī)的POJO類也提供了方便的自定義接口。BSON用于數(shù)據(jù)的二進(jìn)制序列化與反序列 化,支持很復(fù)雜的泛型數(shù)據(jù),是SNCP協(xié)議的基礎(chǔ)。

          亮點(diǎn)二. 輕量級(jí)HTTP

                  Redkale 的HTTP是基于異步NIO.2實(shí)現(xiàn)的,所提供的HttpResponse的輸出接口也是異步的,因此并不遵循JSR 340規(guī)范(Servlet 3.1)且也沒(méi)有實(shí)現(xiàn)JSP規(guī)范。 HTTP只提供四個(gè)對(duì)象:HttpContext、HttpRequest、HttpResponse、HttpServlet。 傳統(tǒng)Session則由數(shù)據(jù)層實(shí)現(xiàn)。RedKale提倡HTTP+JSON接口(無(wú)論網(wǎng)站、PC客戶端、APP移動(dòng)端、第三方接口都可使用統(tǒng)一接口), 因此HTTP層內(nèi)置了JSON序列化與反序列化接口,同時(shí)內(nèi)置HTTP緩存機(jī)制。
                  Redkale 的WebSocket服務(wù)接口不同于JSR 340(Servlet 3.1), 除了提供基本的WebSocket功能, 還提供分布式與集中式部署, 當(dāng)部署多個(gè)WebSocket進(jìn)程時(shí),通過(guò)配置文件可以實(shí)現(xiàn)WebSocket之間連接信息的數(shù)據(jù)同步。

          亮點(diǎn)三. SNCP協(xié)議

                  SNCP(Service Node Communicate Protocol)是Redkale獨(dú)有的協(xié)議, 類似RMI與WebService的功能結(jié)合,主要用于進(jìn)程間的數(shù)據(jù)傳輸。使用者通過(guò)配置文件可以輕易的將Service由本地模式變成遠(yuǎn)程模式。遠(yuǎn)程模式Service使用SNCP協(xié)議與其他進(jìn)程的Service通信。使用者無(wú)需對(duì)遠(yuǎn)程通信接口使用類似Mina的第三方包自行開發(fā)。SNCP是RedKale的核心功能,其微服務(wù)架構(gòu)都是基于本地模式Service遠(yuǎn)程模式Service。

          亮點(diǎn)四. DataSource

                  Redkale提供DataSource類對(duì)數(shù)據(jù)層進(jìn)行操作,其功能類似JPA+Memcached。最 大程度的簡(jiǎn)化數(shù)據(jù)層的操作,免去SQL/JPQL語(yǔ)句的編寫。同時(shí)提供過(guò)濾查詢與JavaBean的結(jié)合、讀寫分離、數(shù)據(jù)庫(kù)熱切換、本地/遠(yuǎn)程部署、進(jìn)程 間緩存自動(dòng)同步等功能。

           

          詳情請(qǐng)?jiān)L問(wèn):    https://redkale.org

           

          瀏覽 20
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉视频伊人 | 骚碰91 | 天天操天天久久精品 | 97xxxxx | 国产天堂在线 |