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

資訊專欄INFORMATION COLUMN

Nodejs“實現”Dubbo Provider

zhouzhou / 536人閱讀

摘要:背景目前應用越來越廣泛,但和的體系接入困難,所以我們需要實現端的邏輯。使用實現一個可用的完全沒有問題,最簡單的實現則是在對應集群注冊接口與機器的映射關系,便可以訪問對應接口。在評估了各種實現方案后,決定放棄開發端,使用的模式。

背景

目前nodejs應用越來越廣泛,但和java的dubbo體系接入困難,所以我們需要實現node端的dubbo provider邏輯。java的dubbo provider是和consumer在一個jar中,提供了服務配置、注冊、集群與負載均衡、監控和多種協議。使用nodejs實現一個可用的dubbo provider SDK完全沒有問題,最簡單的實現則是在對應ZK集群注冊接口與機器IP的映射關系,consumer便可以訪問對應rpc接口。可是,在可用基礎上,仍然需要提供相關配套設施如配置、注冊和監控等,達到商業上的高可用。在評估了各種實現方案后,決定放棄開發node provider端sdk,使用node+agent的proxy模式。

agent是一個可與node服務交互通信的,并提供dubbo provider功能的java服務。agent部署在nodejs服務機器上,扮演dubbo服務的入口角色,同時node服務返回的數據類型由agent進行轉換映射,如 object(node) -> Map(Java), 具體轉換規則則由node接口提供方提供調用接口jar包,consumer使用jar包進行調用即可。

整體架構

其中 vitamin為基于數據庫的統一配置平臺,解耦各個系統的強依賴。

Node中間件

Node中間件提供dubbo接口上報和服務提供功能。上報http接口要暴露的Dubbo服務配置信息(interface+version+method)即映射關系,node的提供rpc服務以HTTP形式存在(兼容之前業務),由agent進行調用,數據類型為JSON。

Agent

根據Vitamin的實時配置向zookeeper注冊dubbo服務(泛化)

泛化服務每個method會根據Vitamin中的映射關系找到對應的http本地接口(localhost)進行調用

-入參和返回值進行json和Java類型的轉換

Node業務方

Node提供普通的HTTP+JSON服務,可復用歷史接口

提供一個對應dubbo接口的jar包,需保證http接口json和jar中的model轉換關系可行

上游業務

拿到jar包依賴之后,像普通dubbo服務一樣調用即可

類型轉換

Dubbo方法入參轉換成NodeJs的http調用參數:強類型轉弱類型,可直接轉換
NodeJs服務返回的json轉Dubbo方法返回值:弱類型轉強類型
解決方案:Dubbo泛化服務返回Map,consumer端拿到這個Map會自動根據client.jar的方法返回值類型(支持泛型)進行相應的字段注入

可能存在的問題

agent不會在調用nodejs服務進行熔斷,即nodejs服務大量超時可能會讓agent連接池或線程池占滿

agent進程的生命周期由node進程維護,通過基于配置中心的心跳機制檢測agent進程是否存活

錯誤排查定位由于多了一層調用,更為復雜

可能存在的單機性能問題

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

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

相關文章

  • Nodejs實現Dubbo Provider

    摘要:背景目前應用越來越廣泛,但和的體系接入困難,所以我們需要實現端的邏輯。使用實現一個可用的完全沒有問題,最簡單的實現則是在對應集群注冊接口與機器的映射關系,便可以訪問對應接口。在評估了各種實現方案后,決定放棄開發端,使用的模式。 背景 目前nodejs應用越來越廣泛,但和java的dubbo體系接入困難,所以我們需要實現node端的dubbo provider邏輯。java的dubbo ...

    Charles 評論0 收藏0
  • 分布式軟件架構整合(二)

    摘要:續上篇所需技術等說明本編講解一個分布式架構的整個流程,首先對上編中的工程作一些小小的改動,以支持接下來的實驗。本篇中,定義了服務提供者,注冊中心及客戶端消費者三者關系。一服務提供者這里首先對服務端進行改造。 (續上篇) 所需技術:spring、mybatis、druid、flyway、logback、nodejs,zookeeper,dubbo,dubbo-admin等;說明:本編講解...

    you_De 評論0 收藏0
  • 分布式系統的負載均衡 | 架構干貨

    摘要:是的默認負載均衡策略。一致性哈希負載均衡。所以負載均衡是分布式系統架構設計中必須考慮的因素之一。考慮主要是如何讓下游接收到的請求是均勻分布的第層客戶端層反向代理層的負載均衡。通過輪詢第層反向代理層層的負載均衡。 一、 什么是負載均衡? 什么是負載均衡? 記得第一次接觸 Nginx 是在實驗室,那時候在服務器部署網站需要用 Nginx 。Nginx 是一個服務組件,用來反向代理、負載平衡...

    twohappy 評論0 收藏0
  • Dubbo學習筆記

    摘要:學習筆記的設計目的動態注冊發現服務,軟負載均衡和服務降級。一下是整個工程的內容公共定義一般和共享的接口應該單獨一個包進行定義,方便雙方的共享。暴露的服務實現如下入口類的實現如下實現其文件和類似其配置如下,聲明了對服務的引用。 Dubbo學習筆記 Dubbo的設計目的 動態注冊、發現服務,軟負載均衡和服務降級。 描述服務依賴關系,描述整體服務架構。 統計服務負載,按需擴展容量。 簡單...

    BlackHole1 評論0 收藏0
  • 自己動手實現dubbo接口測試工具

    摘要:一前言框架對于開發來說并不陌生,通常新增一個接口,我們可以直接用測試。但是工作中有時遇到一些接口的實現會獲取上下文中的信息,如果需要測試的話就只能另外編寫代碼設置上下文,調用接口實現,相對來說會比較麻煩。 一、前言 dubbo框架對于java開發來說并不陌生,通常新增一個dubbo接口,我們可以直接用telnet測試。但是工作中有時遇到一些dubbo接口的實現會獲取上下文中的信息,如果...

    fox_soyoung 評論0 收藏0

發表評論

0條評論

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