我想部署一组可扩展的微服务。每个服务都应该通过rest相互通信。我还需要请求第三方服务,这将是缓慢和不稳定的。所以我想出了一个想法,让它成为事件驱动的,并使用apachekafka。
比如:
webclient\u x--请求-->负载平衡器--转发-->a服务\u 1--请求-->第三方服务
一个服务需要轮询第三方服务的结果,并将其写入Kafka。
Kafka
现在怎么办?
如何将存储在kafka主题中的结果发送回请求的webclient\u x。记住:-a-service在lb后面部署了n次。-a-service_示例向webclient返回了response.created(uuid)
唯一的解决方案是让webclient使用kafka主题。但这似乎是个愚蠢的想法。
1条答案
按热度按时间quhf5bfb1#
经过深思熟虑,我想到了以下想法:
_服务的所有示例都相等地使用kafka主题(无平衡)
结果存储在缓存中(本地)
webclient需要使用uuid轮询结果。
将来我将用redis集群或集群memcache替换缓存。
投票的另一个选择是websockets。但这似乎有一些缩减。