温馨提示:本文翻译自stackoverflow.com,查看原文请点击:scala - Prisma rabbitmq deployment on kubernetes not working
akka kubernetes prisma rabbitmq scala

scala - kubernetes上的Prisma Rabbitmq部署不起作用

发布于 2020-05-12 22:47:56

我正在尝试在kubernetes集群上安装prismarabbitmq,但出现此错误,提示“无法声明兔子交换”。

这是我用于Rabbitmq的连接字符串

amqp:// user:ypvibil8QM@rabbitmq.default.svc.cluster.local:5672

请注意:Rabbitmq已安装为舵图。我还提供了我的prisma部署kubernetes文件。

Caused by: java.lang.Exception: Unable to declare rabbit exchange: java.net.SocketTimeoutException
        at com.prisma.messagebus.utils.RabbitUtils$.declareExchange(RabbitUtils.scala:18)
        at com.prisma.messagebus.pubsub.rabbit.RabbitAkkaPubSub.<init>(RabbitAkkaPubSub.scala:36)
        at com.prisma.prod.PrismaProdDependencies.invalidationPubSub$lzycompute(PrismaProdDependencies.scala:78)
        at com.prisma.prod.PrismaProdDependencies.invalidationPubSub(PrismaProdDependencies.scala:75)
        at com.prisma.prod.PrismaProdDependencies.invalidationSubscriber$lzycompute(PrismaProdDependencies.scala:81)
        at com.prisma.prod.PrismaProdDependencies.invalidationSubscriber(PrismaProdDependencies.scala:81)
        at com.prisma.subscriptions.resolving.SubscriptionsManager.<init>(SubscriptionsManager.scala:58)
        at com.prisma.websocket.WebSocketHandler.$anonfun$subscriptionsManager$1(WebSocketHandler.scala:24)
        at akka.actor.TypedCreatorFunctionConsumer.produce(IndirectActorProducer.scala:87)
        at akka.actor.Props.newActor(Props.scala:212)
        at akka.actor.ActorCell.newActor(ActorCell.scala:624)
        at akka.actor.ActorCell.create(ActorCell.scala:650)
        ... 9 more
Caused by: java.net.SocketTimeoutException
        at java.net.SocksSocketImpl.remainingMillis(SocksSocketImpl.java:111)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at com.rabbitmq.client.impl.SocketFrameHandlerFactory.create(SocketFrameHandlerFactory.java:50)
        at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:60)
        at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:99)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:911)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:870)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:828)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:996)
        at com.prisma.rabbit.PlainRabbit$.$anonfun$connect$1(PlainRabbit.scala:25)
        at scala.util.Try$.apply(Try.scala:209)
        at com.prisma.rabbit.PlainRabbit$.connect(PlainRabbit.scala:11)
        at com.prisma.rabbit.Rabbit$.channel(Queue.scala:21)
        at com.prisma.rabbit.Rabbit$.channel(Queue.scala:13)
        at com.prisma.messagebus.utils.RabbitUtils$.declareExchange(RabbitUtils.scala:11)
        ... 20 more

[Telemetry] Warning: Telemetry call failed with akka.stream.StreamTcpException: Connection failed.
[INFO] [02/24/2020 04:48:18.670] [single-server-akka.actor.default-dispatcher-9] [akka://single-server/system/IO-TCP/selectors/$a/1] Message [akka.io.Dns$Resolved] from Actor[akka://single-serve
r/system/IO-DNS/inet-address/$d#-1722408340] to Actor[akka://single-server/system/IO-TCP/selectors/$a/1#-615185858] was not delivered. [1] dead letters encountered. This logging can be turned of
f or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] [02/24/2020 04:48:21.970] [single-server-akka.actor.default-dispatcher-4] [akka://single-server/system/IO-TCP/selectors/$a/0] Message [akka.io.Dns$Resolved] from Actor[akka://single-serve
r/system/IO-DNS/inet-address/$d#-1722408340] to Actor[akka://single-server/system/IO-TCP/selectors/$a/0#-2083961340] was not delivered. [2] dead letters encountered. This logging can be turned o
ff or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[Telemetry] Warning: Telemetry call failed with javax.net.ssl.SSLException: Received close_notify during handshake

这是我的prisma的kubernetes部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: primary-deployment
  #namespace: prisma
spec:
  replicas: 1
  selector:
    matchLabels:
      app: prisma-primary
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: prisma-primary
    spec:
      containers:
        - name: prisma-primary
          image: prismagraphql/prisma-prod:1.34
          imagePullPolicy: Always
          resources: # CHANGE THIS AS NEEDED
            requests:
              memory: "1Gi"
              cpu: "10m"
            limits:
              memory: "1Gi"
              cpu: "10m"
          env:
            - name: SLOW_QUERIES_LOGGING
              value: "true"
            - name: JAVA_OPTS
              value: "-Xmx800m" # CHANGE THIS AS NEEDED
              - name: ENV
              value: "prod"
            - name: PRISMA_CONFIG
              value: | # CHANGE THIS AS NEEDED
                port: 4466
                managementApiSecret: "MuchSecret"
                enableManagementApi: "true"
                server2serverSecret: "SuperSecretWow"
                rabbitUri: "amqp://user:ypvibil8QM@rabbitmq.default.svc.cluster.local:5672"
                databases:
                  default:
                    connector: mongo
                    uri: mongodb://mongodb-mongodb-replicaset.default.svc.cluster.local:5672
                    active: "true"
                    connectionLimit: 20
                    database: "prisma"
                    managementSchema: "prisma"
                    ssl: false
          ports:
            - containerPort: 4466
---
apiVersion: v1
kind: Service
metadata:
  name: prisma-primary-service
  #namespace: prisma
spec:
  selector:
    app: prisma-primary
  type: ClusterIP

查看更多

提问者
jeril
被浏览
24
jeril 2020-02-24 14:50

对于面临相同问题的人....我在values.yaml中的Rabbitmq舵图中禁用了此插件,它开始正常工作

 ## Extra plugins to enable
  ## Use this instead of `plugins` to add new plugins
  # extraPlugins: "rabbitmq_auth_backend_ldap"