日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

winserver的consul部署实践与.net core客户端使用(附demo源码)

發布時間:2023/12/4 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 winserver的consul部署实践与.net core客户端使用(附demo源码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

隨著微服務興起,服務的管理顯得極其重要。都知道微服務就是”拆“,把臃腫的單塊應用,拆分成多個輕量級的服務,每個服務可以在短周期內重構、迭代、交付。隨著微服務的數量增多,因量變引起了質量,帶來新的問題其中一個是服務的管理問題。隨著業務發展微服務增多,可能技術負責人也無法清楚記著服務的部署情況,服務的健康也不能時刻關注著,因此服務治理系統的作用必不可少。

本篇文章的源碼:

demo:https://github.com/SkyChenSky/Consul.Demo

封裝:https://github.com/SkyChenSky/Sikiro.Tookits.Consul

Consul

Consul是一款簡單、易用、可伸縮性強的服務治理系統。

主要核心功能有:

  • 服務發現

  • 健康檢查

  • 鍵值存儲

  • 多數據中心

  • consul代理會每個一段時間對注冊中心的服務節點進行訪問,如果響應碼為“20X"認為是健康。

    鍵值存儲可以認為是一個簡易的k/v數據庫,因此可以用此來存放配置信息。

    服務發現

    服務發現分服務注冊和服務查找。

    服務注冊

    將服務節點信息(地址+端口)添加(刪除)到注冊表,注冊表會記錄著服務的節點信息和狀態

    服務查找

    由其他的服務或者系統通過注冊表查詢到指定可用服務的節點信息。

    服務發現的方式

    服務發現的方式又分自主式和代理式。

    自主式

    由各個服務主動的將自己節點信息添加(刪除)到注冊中心。實現是通過統一封裝或者程序庫,由服務各個節點承擔服務發現的功能,與代理式相比由各自節點分擔的訪問壓力。

    代理式

    由一個系統(負載均衡系統)或者服務(API網關)來完成服務發現。因為由一個系統或者服務完成,隨著注冊服務的增加會帶來性能瓶頸,因此需要對此做集群。

    Consul模式

    Consul有兩種模式,Client和Server,無論各種模式都有一個consul agent。

    Client模式

    Client模式是一個輕量級的consul agent,只擁有注冊服務、健康檢查、轉發查詢等功能。

    Server模式

    Server模式與Client模式相比,除了擁有Client模式的功能還多出了數據存儲,leader選舉等。

    ?

    官方建議Server模式應保證3-5個,而且應該是奇數,為什么呢,因為少于3個無法保證高可用,多于5個又會給數據庫同步的一致性帶來壓力,而Client數量控制則沒有講究。

    ?

    集群部署

    下載consul?https://www.consul.io/downloads.html

    在服務器A,打開cmd,

    consul agent -server -bootstrap-expect=1 -bind=192.168.20.80 -client=192.168.20.80 -join=192.168.20.80 -datacenter=dc1 -data-dir=data -ui -node=consul-80

    在服務器B,打開cmd,

    consul agent -server -bind=192.168.20.81 -client=192.168.20.81 -join=192.168.20.80 -data-dir=data -node=consul-81

    打開瀏覽器輸入http://192.168.20.80:8500

    指令簡析

    • -server

      • consul以server模式啟動,不填則默認以client模式

    • -bootstrap-expect=1

      • 集群節點數,當集群節點數達到聲明數量才會進行數據同步

    • -bind=192.168.20.80

      • 當前consul服務綁定地址

    • -client=192.168.20.80

      • http接口綁定地址,客戶端調用需要

    • -join=192.168.20.80

      • 啟動服務時加入目標集群

    • -node=consul-81

      • 服務節點名稱

    • -ui

      • 啟動web管理后臺

    客戶端實踐

    安裝Consul

    封裝擴展

    只貼部分核心代碼,具體可以查看demo源碼。

    注入ConsulClient

    把當前服務注冊到Consul

    添加健康檢查接口

    與上述封裝可以在同一個庫,避免每個web服務都要寫一個

    在Startup.cs對Consul封裝進行調用

    ConfigureServices

    Configure

    K/V擴展

    只實現了put、get、delete,剩下可以自行按需添加

    部署啟動

    修改appsettings.json,填寫目標consul地址和本服務地址

    啟動后,如果服務正常則可以顯示下圖效果。

    原文地址:https://www.cnblogs.com/skychen1218/p/9330870.html

    .NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

    總結

    以上是生活随笔為你收集整理的winserver的consul部署实践与.net core客户端使用(附demo源码)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。