Rabbitmq 如何使用kubernetes复制控制器复制基于消息的服务

Rabbitmq 如何使用kubernetes复制控制器复制基于消息的服务,rabbitmq,kubernetes,microservices,Rabbitmq,Kubernetes,Microservices,我们通常使用消息传递将消息发送到解耦的服务。这使得服务发现不再是问题,因为(例如,使用RabbitMQ中的AMQP),您可以使用代理的路由功能将消息分派到提供正确服务的正确队列。负载平衡也由消息代理处理 输入kubernetes 在讨论服务复制和重新生成失败服务时,通常会列出一个用例,即当您的客户端使用一些活动协议(如http)来联系服务时,即使该服务异步处理请求。在这种情况下,自然适合使用复制控制器来管理一组服务和单个入口点,以实现它们之间的负载平衡 我喜欢kubernetes的直观概念,比如

我们通常使用消息传递将消息发送到解耦的服务。这使得服务发现不再是问题,因为(例如,使用RabbitMQ中的AMQP),您可以使用代理的路由功能将消息分派到提供正确服务的正确队列。负载平衡也由消息代理处理

输入kubernetes

在讨论服务复制和重新生成失败服务时,通常会列出一个用例,即当您的客户端使用一些活动协议(如http)来联系服务时,即使该服务异步处理请求。在这种情况下,自然适合使用复制控制器来管理一组服务和单个入口点,以实现它们之间的负载平衡

我喜欢kubernetes的直观概念,比如滚动部署,但是如何控制这个没有http接口的野兽呢

更新: 我并没有试图建立一个消息代理集群。我将消息消费者视为服务。服务客户端不直接连接到服务,而是向消息代理发送消息。MessageBroker以某种方式充当负载平衡器,并将消息分派给订阅的队列使用者。这些消费者实现服务


我的问题是,演示中的大多数使用模式都处理通过http调用的服务,而kubernetes在为这些服务创建服务代理和复制控制器方面做得很好。是否可以为我的服务类型创建复制控制器?这种服务本身没有http接口,并且具有滚动更新和最少实例的所有好处?

我不确定我是否完全理解这个问题。您是在问如何将RabbitMQ与Kubernetes一起使用吗?或者如何设置RabbitMQ群集:?或者滚动更新如何与RabbitMQ交互?还是别的什么


我认为您应该能够为每台服务器创建一个服务和一个复制控制器,然后在集群配置文件中使用服务DNS名称。这也是当前用于运行Zookeeper的方法。我们有一个长期的任务要做,以使它不那么冗长(),但当前的方法应该是直接的。您确实无法使用单个kubectl rolling update命令来更新集群,但是单独更新实例也很简单。

Hi,感谢您的回答。我在我的问题中增加了一部分,以澄清范围。tl:博士……这是一个很长的讨论,但什么是“当前方法”?