【问题标题】:Pattern matching for messages on IstioIstio 上消息的模式匹配
【发布时间】:2019-10-11 05:43:41
【问题描述】:
我想使用 kubernetes 和 Istio 实现《微服务之道》一书中介绍的方法。换句话说,我希望微服务通过模式匹配的队列消息相互通信,并且我仍然使用 Istio 的路由功能将 5% 的消息发送到新的微服务(Canari 部署)。
我在a rather old article 中读到,Istio 目前不支持队列路由,但我想知道它现在的状态。
有没有人用 Istio/queue 主题实现这个解决方案的例子?即带有以下路由键的消息
store:save
kind:entity
被重新路由到一个微服务,该微服务将自己注册为接受
store:*
kind:entity
【问题讨论】:
标签:
kubernetes
microservices
message-queue
istio
【解决方案1】:
这更像是一个架构建议问题。
对于这种模式,您最好使用像 RabbitMQ 或 Kafka 这样的消息代理,或事件总线(或其他东西)。
本质上,您将在 Istio 背后拥有订阅某些消息主题的服务(在其他地方发布,可能是另一个服务)。
这样,例如,您可以拥有(service 1, queue1/topic1)、(service2, queue2/topic2) 之类的内容。然后在 Istio 上,如果您将 Andriod 和 iOS 流量分开,您将有一个规则将 Android 的所有流量发送到 (service 1, queue1/topic1),并将 iOS 的所有流量发送到 (service2, queue2/topic2)。或者您可以将 80% 的流量发送到 (service 1, queue1/topic1),将 20% 的流量发送到 (service2, queue2/topic2)
您可以在 Kubernetes 或 Kubernetes 外部运行消息代理,具体取决于您希望如何构建解决方案。
希望对你有帮助!