Dapr牵手.NET学习笔记:状态管理进阶(二)
生活随笔
收集整理的這篇文章主要介紹了
Dapr牵手.NET学习笔记:状态管理进阶(二)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
為了防止并發(fā)對(duì)數(shù)據(jù)修改造成差異,dapr使用了etag標(biāo)簽來(lái)作為版本號(hào),對(duì)數(shù)據(jù)修改進(jìn)行驗(yàn)證。
下面是對(duì)etag的一個(gè)demo
appsettings.json中的url配置
"StateUrl": "http://localhost:3500/v1.0/state/statestore"在PaymentSystem項(xiàng)目中添加兩個(gè)action
實(shí)體類
docker-compose.yml
version: '3.4'services:#┌─────────────────────────┐#│ Dapr placement1 service │#└─────────────────────────┘ placement:image: "daprio/dapr"command: ["./placement", "-port", "50006"]ports:- "50006:50006"networks:- b2c-dapr#┌────────────────────┐#│ Redis1 state store │#└────────────────────┘ redis:image: "redis:latest"ports:- "6380:6379"networks:- b2c-dapr#┌───────────────────────────────────┐#│ paymentsystem1 app + Dapr sidecar │#└───────────────────────────────────┘ paymentsystem1:image: ${DOCKER_REGISTRY-}paymentsystemdepends_on:- redis- placementbuild:context: ../dockerfile: /PaymentSystem/Dockerfileports:- "3601:3500"volumes: - ../PaymentSystem:/PaymentSystem networks:- b2c-dapr paymentsystem1-dapr:image: "daprio/daprd:latest"command: [ "./daprd", "-app-id", "pay", "-app-port", "80","-placement-host-address", "placement:50006","-components-path","/components" ]build:context: ../depends_on:- paymentsystem1network_mode: "service:paymentsystem1"volumes: - ../components:/components #┌───────────────────────────────────┐#│ paymentsystem2 app + Dapr sidecar │#└───────────────────────────────────┘ paymentsystem2:image: ${DOCKER_REGISTRY-}paymentsystemdepends_on:- redis- placement build:context: ../dockerfile: /PaymentSystem/Dockerfilevolumes: - ../PaymentSystem:/PaymentSystem ports:- "3602:3500"networks:- b2c-dapr paymentsystem2-dapr:image: "daprio/daprd:latest"command: [ "./daprd", "-app-id", "pay", "-app-port", "80" ,"-placement-host-address", "placement:50006","-components-path","/components"]build:context: ../depends_on:- paymentsystem2network_mode: "service:paymentsystem2"volumes: - ../components:/components networks:b2c-dapr:提交帶有etag標(biāo)簽的數(shù)據(jù),多提交幾次,可以把etag頂起來(lái)
查看etag為非1
這時(shí)再次提交就會(huì)報(bào)錯(cuò),如果另外的服務(wù)更新了這個(gè)值,本次提交就會(huì)失敗,需要再次查詢后更新,或作別的業(yè)務(wù)邏輯處理。
總結(jié)
以上是生活随笔為你收集整理的Dapr牵手.NET学习笔记:状态管理进阶(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C# VS生成后事件命令行
- 下一篇: WPF过渡面板