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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Dapr + .NET 实战(十四)虚拟机集群部署 mDNS + Consul

發布時間:2023/12/4 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dapr + .NET 实战(十四)虚拟机集群部署 mDNS + Consul 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面我們說了在單機模式下和K8S集群下的Dapr實戰,這次我們來看看如何在不使用K8S的情況下,在一個傳統的虛擬機集群里來部署Dapr。

1.環境準備

我們準備兩臺centos7虛擬機

Dapr1:192.168.43.131

Dapr2:192.168.43.132

2.Dapr CLI安裝

分別在Dapr1和Dapr2兩臺虛機上安裝Dapr CLI

方式1 wget命令安裝

wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash

方式2 二進制方式手動安裝
從https://github.com/dapr/cli/releases下載Dapr腳手架,并解壓后放入/usr/local/bin目錄

tar -xzvf dapr_linux_amd64.tar.gzmv dapr /usr/local/bin

3.Dapr初始化

在Dapr1和Dapr2兩臺虛機上初始化,不依賴Docker的情況下課通過指定--slim選項來啟動

dapr init --slim

初始化好之后查看~/.dapr文件夾下的文件夾與文件,其中bin文件夾存放著daprd,dashboard,placement三個可執行文件

[root@localhost ~]# ll ~/.dapr 總用量 4 drwxrwxrwx 3 root root 64 10月 15 10:37 bin drwxrwxrwx 2 root root 29 10月 15 15:33 components -rw-r--r-- 1 root root 224 10月 15 18:34 config.yaml[root@localhost ~]# ll ~/.dapr/bin/ 總用量 135632 -rwxrwxrwx 1 root root 94117888 10月 15 11:08 daprd -rwxrwxrwx 1 root root 30007296 10月 15 11:08 dashboard -rwxrwxrwx 1 root root 14761984 10月 15 11:07 placement drwxr-xr-x 3 root root 18 10月 15 11:08 web

4.部署項目

我們仍然采用之前的FrontEnd和BackEnd項目,在Dapr1與Dapr2兩臺機器上分別部署BackEnd,使其實現負載

?發布FrontEnd和BackEnd,選擇完全發布模式,這樣我們不需要安裝dotnet core運行時即可直接運行FrontEnd與BackeEnd,并選擇linux-x64目標運行時

?發布完成后,將BackEnd上傳到Dapr1和Dapr2兩臺機器動;將FrontEnd上傳到Dapr2

5.運行BackEnd和FrontEnd

Dapr1上和Dapr2上啟動BackEnd

chmod 777 /usr/local/src/backend/BackEnd dapr run --dapr-http-port 3511 --app-port 5000 --app-id backend /usr/local/src/backend/BackEnd

Dapr2上啟動FrontEnd

chmod 777 /usr/local/src/frontend/FrontEnd dapr run --dapr-http-port 3501 --app-port 5001 --app-id frontend /usr/local/src/frontend/FrontEnd

6.調用FrontEnd接口Dapr/ip驗證

發現每次調用獲取的ip不一致,已經通過mDNS實現負載

?

7.自定義組件

我們在Dapr1和Dapr2兩臺機器上的~/.dapr/components文件夾中分別新建文件statestore.yaml

apiVersion: dapr.io/v1alpha1 kind: Component metadata:name: statestore spec:type: state.redisversion: v1metadata:- name: redisHostvalue: 192.168.43.102:6379- name: redisPasswordvalue: "123456"- name: actorStateStorevalue: "true"

重新啟動FrontEnd,調用api/State接口,發現組件設置成功

8.Actors使用

因為我們初始化時指定了--slim選項,這種模式下placement需要我們手動啟動,我們啟動FrontEnd中的~/.dapr/bin/placement

[root@localhost ~]# ~/.dapr/bin/placement INFO[0000] starting Dapr Placement Service -- version 1.4.3 -- commit a8ee30180e1183e2a2e4d00c283448af6d73d0d0 instance=localhost.localdomain scope=dapr.placement type=log ver=unknown INFO[0000] log level set to: info instance=localhost.localdomain scope=dapr.placement type=log ver=1.4.3 INFO[0000] metrics server started on :9090/ instance=localhost.localdomain scope=dapr.metrics type=log ver=1.4.3 INFO[0000] Raft server is starting on 127.0.0.1:8201... instance=localhost.localdomain scope=dapr.placement.raft type=log ver=1.4.3 INFO[0000] placement service started on port 50005 instance=localhost.localdomain scope=dapr.placement type=log ver=1.4.3 INFO[0000] Healthz server is listening on :8080 instance=localhost.localdomain scope=dapr.placement type=log ver=1.4.3 INFO[0001] cluster leadership acquired instance=localhost.localdomain scope=dapr.placement type=log ver=1.4.3 INFO[0001] leader is established. instance=localhost.localdomain scope=dapr.placement type=log ver=1.4.3 INFO[0004] Start disseminating tables. memberUpdateCount: 1, streams: 1, targets: 1, table generation: 1 instance=localhost.localdomain scope=dapr.placement type=log ver=1.4.3 INFO[0004] Completed dissemination. memberUpdateCount: 1, streams: 1, targets: 1, table generation: 1 instance=localhost.localdomain scope=dapr.placement type=log ver=1.4.3

重新啟動FrontEnd與BackEnd,并調用api/ActorsClient/123,Actors環境啟動成功

9.Consul名字解析組件

前面的負載我們使用了mDNS,官方還為我們提供了Consul名字解析組件,我們新建一個虛擬機Consul(192.168.43.133)來安裝Consul

1.下載 wget https://releases.hashicorp.com/consul/1.3.0/consul_1.3.0_linux_amd64.zip 2.解壓 unzip consul_1.3.0_linux_amd64.zip 3.拷貝到/usr/local/bin mv consul /usr/local/bin 4.驗證 consul 5.啟動 consul agent -dev -ui -node=consul-dev -client=192.168.43.133 6.訪問192.168.43.133:8500

?下面修改Dapr1和Dapr2機器上的~/.dapr/config.yaml配置,讓其使用Consul來解析名字

apiVersion: dapr.io/v1alpha1 kind: Configuration metadata:name: daprConfig spec:nameResolution:component: "consul"configuration:client:address: "192.168.43.133:8500"selfRegister: true

重啟FrontEnd與BackEnd并調用api/Dapr/ip接口,發現只能調用到后啟動的BackEnd,無法實現負載

?針對這個問題我像dapr官方提了issue,靜等回復

https://github.com/dapr/components-contrib/issues/1199

相關文章:

  • Dapr實戰(一) 基礎概念與環境搭建

  • Dapr + .NET Core實戰(二) 服務調用

  • Dapr + .NET Core實戰(三)狀態管理

  • Dapr + .NET 實戰(四)發布和訂閱

  • Dapr + .NET 實戰(五)Actor

  • Dapr + .NET 實戰(六)綁定

  • Dapr + .NET 實戰(七)Secrets

  • Dapr + .NET 實戰(八)服務監測

  • Dapr + .NET 實戰(九)本地調試

  • Dapr + .NET 實戰(十-終篇)K8S運行Dapr

  • Dapr + .NET實戰(十一)單機Dapr集群負載均衡

  • Dapr + .NET 實戰(十二)服務調用之GRPC

  • Dapr + .NET 實戰(十三)跨語言開發

  • 為什么 Dapr 如此令人興奮

總結

以上是生活随笔為你收集整理的Dapr + .NET 实战(十四)虚拟机集群部署 mDNS + Consul的全部內容,希望文章能夠幫你解決所遇到的問題。

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