我做了很多搜索,但我无法解决这个问题。
我有一个通过以下命令运行的基本 Rabbitmq 容器:
docker run -d --hostname rabbitmqhost --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3-management
我正在使用nameko
创建一个连接到该容器的微服务。这是一个基本的微服务模块main.py
:
from nameko.rpc import rpc
class Service_Name(object):
name = "service_name"
@rpc
def service_endpoint(self, arg=None):
logging.info('service_one endpoint, arg = %s', arg)
该服务运行并使用以下命令从我的主机连接到 rabbitmq:
nameko run main --broker amqp://guest:guest@localhost
我想将服务放入 Docker 容器(称为service_one
),但是当我这样做并运行之前的 nameko 命令时,socket.error: [Errno 111] ECONNREFUSED
无论我如何尝试链接两个容器,我都会得到。
什么是正确的方法?目的是将每个服务都放在一个容器中,所有服务都通过rabbit相互交谈。谢谢。