spring boot 集成 zookeeper 搭建微服務架構

来源:https://www.cnblogs.com/fengyumeng/archive/2018/10/30/9874565.html
-Advertisement-
Play Games

PRC原理 RPC 遠程過程調用(Remote Procedure Call) 一般用來實現部署在不同機器上的系統之間的方法調用,使得程式能夠像訪問本地系統資源一樣,通過網路傳輸去訪問遠程系統資源,RPC框架實現的原理都是類似的,如下圖: Client Code:客戶端調用方代碼實現,負責發起RPC ...


PRC原理

  RPC 遠程過程調用(Remote Procedure Call)

  一般用來實現部署在不同機器上的系統之間的方法調用,使得程式能夠像訪問本地系統資源一樣,通過網路傳輸去訪問遠程系統資源,RPC框架實現的原理都是類似的,如下圖:

  Client Code:客戶端調用方代碼實現,負責發起RPC調用,為調用方用戶提供使用API。

  Serialization/Deserialization:負責對RPC調用通過網路傳輸的內容進行序列化與反序列化,不同的RPC框架有不同的實現機制,主要分為文本與二進位兩大類。(文本序列化機制主要有XML與JSON兩種格式,二進位類別的序列化機制常見的有Java原生的序列化機制,以及Hessian、protobuf、Thrift、Avro、Kryo、MessagePack等),不同的序列化方式在可讀性,碼流大小,支持的數據類型以及性能等方面都存在較大差異,需要根據實際情況進行篩選。

  Stub Proxy:可以看做是一種代理對象,屏蔽RPC調用過程中複雜的網路處理邏輯,使得RPC調用透明化,能夠保持與本地調用一樣的代碼風格。

  Transport:作為RPC框架底層的通信傳輸模塊,一般通過Socket在客戶端與服務端之間傳遞請求與應答消息。

  Server Code:服務端服務業務邏輯具體的實現。

服務註冊中心介紹

我和你都有表達的能力,但是我們怎麼溝通呢?見面聊?電話談?還是微信語音呢?

顯然,註冊中心來解決這個問題:

ZooKeeper介紹

  zookeeper是dubbo中的註冊中心,dubbo是一個分散式服務框架,自帶RPC,dubbo使用maven引入。

  要運行dubbo,首先需要一個註冊中心,可供選擇的註冊中心有Zookeeper、Multicast、Redis、Simple。

下載從官網去下載

解壓後進入conf目錄,裡面有一個zoo.cfg (如果沒有就自己創建)  配置說明如下:

  tickTime=2000  #單位毫秒 zk中最小時間單位長度

  dataDir=/user/local/zookeeper/data  #zk伺服器存儲快照文件目錄

  dataLogDir=/user/local/zookeeper/logs  #zk伺服器存儲事務日誌文件目錄

  clientPort=2181  #服務端對外的服務埠

  initLimit=5  #tickTime的倍數  Leader等待Follower啟動並完成數據同步的時間

  syncLimit=2  #tickTime的倍數  Leader與Follower之間心跳最大延時時間

 

進入bin目錄下 運行 sh zkServer.sh start  (Windows直接雙擊)

spring boot 集成 zookeeper

稍微介紹一下設計

一共有3個模塊:

web:服務消費者,包含入口層與業務邏輯層。  (war包)

service.user:服務提供者,用戶服務層  (war包)

base.core:共用層  包含對象實體  interface  (jar包)

多的我就不說了,都在代碼里

源碼分享

Fork me on Gitee

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 開心一刻 老師對小明說:"乳就是小的意思,比如乳豬就是小豬,乳名就是小名,請你用乳字造個句" 小明:"我家很窮,只能住在40平米的乳房" 老師:"..., 這個不行,換一個" 小明:"我每天上學都要跳過我家門口的一條乳溝" 老師:"......, 這個也不行,再換一個" 小明:"老師,我想不出 ...
  • Spring Boot 提供了一個發送郵件的簡單抽象,使用的是下麵這個介面。 org.springframework.mail.javamail.JavaMailSender Spring Boot 提供了一個 ,並能自動配置,下麵來做個小例子,順便解析它做了什麼工作。 0、你所需具備的基礎 "什麼 ...
  • 我最近在學習python3,基礎不是很好,所以準備在Leetcode上刷題,這個作為筆記記錄我的,如果大家看到有錯誤,拜托大家幫我指出,謝謝啦~ ...
  • RxJava2 Flowable以及背壓 前述 java maven rxjava 背壓 背壓是指在非同步場景中,被觀察者發送事件速度遠快於觀察者的處理速度的情況下,一種告訴上游的被觀察者降低發送速度的策略。 https://www.jianshu.com/p/0cd258eecf60 的官方介紹: ...
  • 題意 "題目鏈接" 給出$n$個數,問最少選幾個數,使他們的$gcd = 1$ Sol 好神仙啊qwq。 首先,如果答案存在,那麼最多為$7$(因為前$7$個質數乘起來$ = 3e5$) 考慮dp,設$f[i][j]$表示選了$i$個數,他們$gcd = j$的方案數! 沒錯是方案數! 那麼我們只要 ...
  • 題意 "題目鏈接" Sol 考場上做完前四題的時候大概還剩半個小時吧,那時候已經困的不行了。 看了看E發現好像很可做?? 又仔細看了幾眼發現這不是sb題麽。。。 先考慮兩個人,假設貢獻分別為$(x, y) (a, b)$ 有兩種組合方式,一種是$x + b$,另一種是$y + a$ 若$x + b ...
  • 1. 有如下變數(tu 是個元祖),請實現要求的功能 tu = {"alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44]} 2. 字典 dic,dic={'k1':"v1",'k2':"v2",'k3':[11,22,33] ...
  • JDBC 筆記 作者:晨鐘暮鼓c個人微信公眾號:程式猿的月光寶盒 Day1 JDBC概述+JDBC完成CRUD+DAO設計 1.JDBC概述 1.1 什麼是持久化( persistence ): 持久化(persistence):把數據保存到可掉電式存儲設備中以供之後使用。 ​ 保存數據: ​ 記憶體 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...