在微服务中同时使用 api 网关和消息代理

using both api gateway and message broker in microservice

我有一个关于微服务实现的问题。现在我正在使用 api 网关来处理对我个人服务的所有获取请求,并使用 kafka 来处理异步 post 放置和删除请求。这是在微服务架构中处理请求的好方法吗?

你的问题太笼统,无法给出好的答案。什么是 good 架构完全取决于您的用例的细节。您是在提供网页、流媒体、收集用于分析的数据,还是完全不同的东西?我们还需要知道您在并发性、一致性和可扩展性方面有什么要求? budget/size 开发团队、开发难易程度、开发技能等方面的限制是什么?

例如,如果您对大型数据集的高度可扩展输入和非常频繁的数据收集以及支持它的团队有强烈要求,则您做出的决定可能会被考虑 good。但是,如果您只有一个小团队并且正试图为可扩展性要求有限的新服务(因为解决方案的复杂性不必要地减慢了您的开发),则可能会考虑 bad

可能是good,因为开发团队熟悉那些技术,可以有效地利用这些技术进行开发。或者可能是 bad,因为您的团队对这些一无所知,而且从长期收益来看,学习这些方面的投资是不合理的。

不要忘记微服务架构风格的想法之一是每个服务都可以由一个不同的团队拥有,该团队可以自行决定使用哪种技术来实现(无论出于何种原因:易于开发、商业原因等)。所以换句话说,微服务风格包含了旧的 wisdom architecture follows organization.

这里是link to a recommended further read.