交流做病理切片的网站,网站在线推广,网站开发需要多少钱新闻,网站接入空间在上一篇文章中说到#xff0c;dapr默认的状态是不可能跨appid的#xff0c;也就是只能在相同的应用内访问自己设置的状态数据#xff0c;dapr支持三种状态的共享配置#xff1a;appid#xff0c;nam#xff0c;none#xff0c;是通过修改components下的statestore.yaml… 在上一篇文章中说到dapr默认的状态是不可能跨appid的也就是只能在相同的应用内访问自己设置的状态数据dapr支持三种状态的共享配置appidnamnone是通过修改components下的statestore.yaml文件中的keyPrefix配置项来实现的。说明本篇所有demo都是接上一篇的代码和配置不同部分会罗列出来。appid模式这种配置是默认的在上篇中有涉及到这里为了明确比对所以列举了出来。1、statestore.yamlapiVersion: dapr.io/v1alpha1
kind: Component
metadata:name: statestore
spec:type: state.redisversion: v1metadata:- name: redisHostvalue: redis:6379- name: redisPasswordvalue: - name: actorStateStorevalue: true- name: keyPrefixvalue: appid2、通过order访问pay设置的key访问不到数据3、查看redis中的keys以各服务的appid作为前缀name模式1、statestore.yamlapiVersion: dapr.io/v1alpha1
kind: Component
metadata:name: statestore
spec:type: state.redisversion: v1metadata:- name: redisHostvalue: redis:6379- name: redisPasswordvalue: - name: actorStateStorevalue: true- name: keyPrefixvalue: name2、通过order访问pay设置的key能访问到数据3、查看redis中的keys有状态存储的名称作为前缀多个name的情况该如何实现呢下面是order服务和pay服务分别有自己的组件配置文件文件夹分别是components_ordercomponents_pay状态组件的名称分别是statestore_order和statestore_pay参见下面的配置文件。1、docker-compose.ymlversion: 3.4services:#┌────────────────────────────────┐#│ ordersystem app Dapr sidecar │#└────────────────────────────────┘ordersystem:image: ${DOCKER_REGISTRY-}ordersystemdepends_on:- redis- placementbuild:context: ../dockerfile: /OrderSystem/Dockerfileports:- 3500:3500volumes: - ../OrderSystem:/OrderSystem networks:- b2c-daprordersystem-dapr:image: daprio/daprd:latestcommand: [ ./daprd, -app-id, order, -app-port, 80,-placement-host-address, placement:50006,-components-path,/components]build:context: ../depends_on:- ordersystemnetwork_mode: service:ordersystemvolumes: - ../components_order:/components #┌─────────────────────────┐#│ Dapr placement1 service │#└─────────────────────────┘ placement:image: daprio/daprcommand: [./placement, -port, 50006]ports:- 50006:50006networks:- b2c-dapr#┌────────────────────┐#│ Redis1 state store │#└────────────────────┘ redis:image: redis:latestports:- 6380:6379networks:- b2c-dapr################################################################################################################### #┌───────────────────────────────────┐#│ paymentsystem1 app Dapr sidecar │#└───────────────────────────────────┘ paymentsystem1:image: ${DOCKER_REGISTRY-}paymentsystemdepends_on:- redis- placementbuild:context: ../dockerfile: /PaymentSystem/Dockerfileports:- 3601:3500volumes: - ../PaymentSystem:/PaymentSystem networks:- b2c-dapr paymentsystem1-dapr:image: daprio/daprd:latestcommand: [ ./daprd, -app-id, pay, -app-port, 80,-placement-host-address, placement:50006,-components-path,/components ]build:context: ../depends_on:- paymentsystem1network_mode: service:paymentsystem1volumes: - ../components_pay:/components #┌───────────────────────────────────┐#│ paymentsystem2 app Dapr sidecar │#└───────────────────────────────────┘ paymentsystem2:image: ${DOCKER_REGISTRY-}paymentsystemdepends_on:- redis- placement build:context: ../dockerfile: /PaymentSystem/Dockerfilevolumes: - ../PaymentSystem:/PaymentSystem ports:- 3602:3500networks:- b2c-dapr paymentsystem2-dapr:image: daprio/daprd:latestcommand: [ ./daprd, -app-id, pay, -app-port, 80 ,-placement-host-address, placement:50006,-components-path,/components]build:context: ../depends_on:- paymentsystem2network_mode: service:paymentsystem2volumes: - ../components_pay:/components networks:b2c-dapr:2、components_order文件夹下的statstore.yamlapiVersion: dapr.io/v1alpha1
kind: Component
metadata:name: statestore_order
spec:type: state.redisversion: v1metadata:- name: redisHostvalue: redis:6379- name: redisPasswordvalue: - name: actorStateStorevalue: true- name: keyPrefixvalue: name3、components_pay文件夹下的statstore.yamlapiVersion: dapr.io/v1alpha1
kind: Component
metadata:name: statestore_pay
spec:type: state.redisversion: v1metadata:- name: redisHostvalue: redis:6379- name: redisPasswordvalue: - name: actorStateStorevalue: true- name: keyPrefixvalue: name4、通过order访问pay设置的key能访问到数据5、查看redis中的keys有状态存储的名称作为前缀none模式1、statestore.yamlapiVersion: dapr.io/v1alpha1
kind: Component
metadata:name: statestore
spec:type: state.redisversion: v1metadata:- name: redisHostvalue: redis:6379- name: redisPasswordvalue: - name: actorStateStorevalue: true- name: keyPrefixvalue: none2、通过order访问pay设置的key能访问到数据3、查看redis中的keys没有任何前缀dapr通过简单的配置实现了三种状态数据的共享机制方便简捷。所以在使用dapr前就要把各服务的数据共用规划好方便配置使用。