zoukankan      html  css  js  c++  java
  • 订阅消息组件由 redis 改为 rabbitmq

    刚开始测试 dapr 时为了图省事,使用了 pubsub.redis,现在准备上生产环境,改用支持消息持久化的 pubsub.rabbitmq。

    之前使用的 pubsub.redis 资源清单如下

    apiVersion: dapr.io/v1alpha1
    kind: Component
    metadata:
      name: pubsub
      namespace: production
    spec:
      type: pubsub.redis
      version: v1
      metadata:
        - name: redisHost
          value: redis-master.production.svc.cluster.local:6379
        - name: redisPassword
          secretKeyRef:
            name: redis
            key: redis-password
    

    用 helm 安装 rabbitmq,使用 chart 的是 bitnami/rabbitmq

    $ helm repo add bitnami https://charts.bitnami.com/bitnami
    $ helm install rabbitmq bitnami/rabbitmq
    

    Persistent volume 是通过 kubernets dynamic volume provisioning 动态创建,StorageClass 用的是阿里云 nas。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: sc-nas-production-pvs
      annotations:
        storageclass.kubernetes.io/is-default-class: "true"
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      volumeAs: subpath
      server: xxxxxx.cn-hangzhou.extreme.nas.aliyuncs.com:/production/k8s-pvs/
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    

    pubsub.rabbitmq 的资源清单如下

    apiVersion: dapr.io/v1alpha1
    kind: Component
    metadata:
      name: pubsub
      namespace: production
    spec:
      type: pubsub.rabbitmq
      version: v1
      metadata:
        - name: host
          value: "amqp://user:password@rabbitmq.production.svc.cluster.local:5672"
        - name: durable
          value: true
    

    需要注意的是 host 参数部分,user:password 是连接 rabbitmq 的用户名与密码, 用 bitnami/rabbitmq chart 创建的 rabbitmq 默认用户名就是 user,密码在 secret 中,可以通过下面的命令获取

    kubectl get secret --namespace "production" rabbitmq -o jsonpath="{.data.rabbitmq-password}" | base64 --decode
    

    Apply 上面的 rabbitmq-pubsub.yaml,发布/订阅消息组件就变成 rabbitmq,不用改1行应用代码,dapr 的优势立马体现。

  • 相关阅读:
    CentOS 7.3报Centos7_Base库缺少GPG公钥
    nginx重写(隐藏)index.php目录
    工作经历简写
    Centos7.4安装htop
    nginx 超时时间配置说明
    c#中数据从数据库到客户端主要几种的导出方式(导出到excel,导出到word)
    C#操作word文档如何设置表格的行高
    Windows计划任务定时启动程序运行时发生错误的解决办法
    Asp.Net MVC中请求json文件时返回404 not found的解决办法
    Angularjs 如何自定义Img的ng-load 事件
  • 原文地址:https://www.cnblogs.com/dudu/p/15640056.html
Copyright © 2011-2022 走看看