网站维护人员,页面设计要点,上海新闻综合频道在线直播,青海公司网站建设前面我们说了在单机模式下和K8S集群下的Dapr实战#xff0c;这次我们来看看如何在不使用K8S的情况下#xff0c;在一个传统的虚拟机集群里来部署Dapr。1.环境准备我们准备两台centos7虚拟机Dapr1#xff1a;192.168.43.131Dapr2#xff1a;192.168.43.1322.Dapr CLI安装分别… 前面我们说了在单机模式下和K8S集群下的Dapr实战这次我们来看看如何在不使用K8S的情况下在一个传统的虚拟机集群里来部署Dapr。1.环境准备我们准备两台centos7虚拟机Dapr1192.168.43.131Dapr2192.168.43.1322.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/bin3.Dapr初始化在Dapr1和Dapr2两台虚机上初始化不依赖Docker的情况下课通过指定--slim选项来启动dapr init --slim初始化好之后查看~/.dapr文件夹下的文件夹与文件其中bin文件夹存放着daprddashboardplacement三个可执行文件[rootlocalhost ~]# 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[rootlocalhost ~]# 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 web4.部署项目我们仍然采用之前的FrontEnd和BackEnd项目在Dapr1与Dapr2两台机器上分别部署BackEnd使其实现负载 发布FrontEnd和BackEnd选择完全发布模式这样我们不需要安装dotnet core运行时即可直接运行FrontEnd与BackeEnd并选择linux-x64目标运行时 发布完成后将BackEnd上传到Dapr1和Dapr2两台机器动将FrontEnd上传到Dapr25.运行BackEnd和FrontEnd在Dapr1上和Dapr2上启动BackEndchmod 777 /usr/local/src/backend/BackEnd
dapr run --dapr-http-port 3511 --app-port 5000 --app-id backend /usr/local/src/backend/BackEnd在Dapr2上启动FrontEndchmod 777 /usr/local/src/frontend/FrontEnd
dapr run --dapr-http-port 3501 --app-port 5001 --app-id frontend /usr/local/src/frontend/FrontEnd6.调用FrontEnd接口Dapr/ip验证发现每次调用获取的ip不一致已经通过mDNS实现负载 7.自定义组件我们在Dapr1和Dapr2两台机器上的~/.dapr/components文件夹中分别新建文件statestore.yamlapiVersion: 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[rootlocalhost ~]# ~/.dapr/bin/placement
INFO[0000] starting Dapr Placement Service -- version 1.4.3 -- commit a8ee30180e1183e2a2e4d00c283448af6d73d0d0 instancelocalhost.localdomain scopedapr.placement typelog verunknown
INFO[0000] log level set to: info instancelocalhost.localdomain scopedapr.placement typelog ver1.4.3
INFO[0000] metrics server started on :9090/ instancelocalhost.localdomain scopedapr.metrics typelog ver1.4.3
INFO[0000] Raft server is starting on 127.0.0.1:8201... instancelocalhost.localdomain scopedapr.placement.raft typelog ver1.4.3
INFO[0000] placement service started on port 50005 instancelocalhost.localdomain scopedapr.placement typelog ver1.4.3
INFO[0000] Healthz server is listening on :8080 instancelocalhost.localdomain scopedapr.placement typelog ver1.4.3
INFO[0001] cluster leadership acquired instancelocalhost.localdomain scopedapr.placement typelog ver1.4.3
INFO[0001] leader is established. instancelocalhost.localdomain scopedapr.placement typelog ver1.4.3
INFO[0004] Start disseminating tables. memberUpdateCount: 1, streams: 1, targets: 1, table generation: 1 instancelocalhost.localdomain scopedapr.placement typelog ver1.4.3
INFO[0004] Completed dissemination. memberUpdateCount: 1, streams: 1, targets: 1, table generation: 1 instancelocalhost.localdomain scopedapr.placement typelog ver1.4.3重新启动FrontEnd与BackEnd并调用api/ActorsClient/123Actors环境启动成功9.Consul名字解析组件前面的负载我们使用了mDNS官方还为我们提供了Consul名字解析组件我们新建一个虚拟机Consul192.168.43.133来安装Consul1.下载
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 -nodeconsul-dev -client192.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: consulconfiguration:client:address: 192.168.43.133:8500selfRegister: 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 实战五ActorDapr .NET 实战六绑定Dapr .NET 实战七SecretsDapr .NET 实战八服务监测Dapr .NET 实战九本地调试Dapr .NET 实战十-终篇K8S运行DaprDapr .NET实战十一单机Dapr集群负载均衡Dapr .NET 实战十二服务调用之GRPCDapr .NET 实战十三跨语言开发为什么 Dapr 如此令人兴奋