首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何建立dapr和dapr与状态管理的对接

如何建立dapr和dapr与状态管理的对接
EN

Stack Overflow用户
提问于 2021-05-20 23:32:09
回答 1查看 971关注 0票数 1

对dapr和码头来说非常新。

我跟着dapr开始了。简单的hello状态管理示例运行良好。是的布鲁斯我们都知道你是蝙蝠侠。

所以接下来我构建了.NET堆芯多容器天气预报实例。效果很好。(我把我的前端剃须刀页命名为"wxui“和后端webapi "wxapi")。

最后,我想尝试一下,在天气预报员的例子中加入国家管理。我修改了前端Razor页面应用程序,以存储和检索一些状态,并在我的停靠-撰写文件中添加了一个redis容器。

事情不太顺利。

wxui-dapr容器随此消息退出:

time="2021-05-20T22:47:50.3179068Z“level=fatal msg=”进程组件状态错误: redis存储:在本地主机上连接redis错误:6379:拨号tcp 127.0.0.1:6379:连接:拒绝连接“app_id=wxui instance=69254f9724b0 scope=dapr.runtime type=log ver=1.1.2

我将猜测dapr侧加容器没有将本地端口6379映射到redis容器。但我不知道如何测试或修复。

这是我的docker-compose.yml文件,如果有用的话:

代码语言:javascript
复制
version: '3.4'

services:
  redis:
    image: "redis:alpine"
    ports:
      - "6379:6379"
    networks:
      - wx-hello-world

  wxui:
    image: ${DOCKER_REGISTRY-}wxui
    build:
      context: .
      dockerfile: WxUI/Dockerfile
    ports:
      - "51000:50001"
    networks:
      - wx-hello-world
    depends_on:
      - redis

  wxui-dapr:
    image: "daprio/daprd:latest"
    command: [ "./daprd", "-app-id", "wxui", "-app-port", "80", "-components-path", "/components" ]
    volumes:
      - "./components/:/components"
    depends_on:
      - wxui
    network_mode: "service:wxui"

  wxapi:
    image: ${DOCKER_REGISTRY-}wxapi
    build:
      context: .
      dockerfile: WxAPI/Dockerfile
    ports:
      - "52000:50002"
    networks:
      - wx-hello-world
  
  wxapi-dapr:
    image: "daprio/daprd:latest"
    command: [ "./daprd", "-app-id", "wxapi", "-app-port", "80" ]
    depends_on:
      - wxui
      - wxapi
    network_mode: "service:wxapi"

networks:
  wx-hello-world:

我可以根据需要提供其他日志或数据(请求)。

有人能帮我找出导致wxui-dapr容器退出的原因,以及如何修复它吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-21 19:29:03

因此,在我有限的环境中,利用我对对接者关系网的有限理解,我能够让它发挥作用。请随时提供更好的解决方案!

最后,我更改了docker-compose.yml文件,以便为redis容器提供一个主机名:

代码语言:javascript
复制
version: '3.4'

services:
  redis:
    image: "redis:alpine"
    hostname: wxstate
    ports:
      - "6379:6379"
    networks:
      - wx-hello-world

然后将dapr statestore.yaml组件更改为使用该主机名:

代码语言:javascript
复制
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: statestore
spec:
  type: state.redis
  metadata:
  - name: redisHost
    value: wxstate:6379
  - name: redisPassword
    value: ""
  - name: actorStateStore
    value: "true"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67629176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档