下午好,
我进入了微服务领域--事实上,我成功地完成了几个基于这个体系结构的完整项目--但它们并不是很强大,所以我无法充分利用微服务。
我正在为与可伸缩性和可靠性相关的两个概念而奋斗,我希望得到一个简单的外行人术语解释。
耽误您时间,实在对不起!
发布于 2022-06-20 02:56:33
在您的服务面前,您通常会有一个API网关,或者反向代理。本质上,您是将URL的部分路由到服务实例。通过适当配置的系统,API网关了解服务和实例的类型。用这样的方式来思考:
Spring生态系统有用于服务发现的工具"Eureka“和用于.嗯..。API网关。
其中许多功能也可以在Kubernetes集群中处理。例如,"service“表示您的服务之一,负载平衡从一个已知名称/端口到运行您的微服务的特定"pod”之间的流量。kubernetes中的"ingress“服务处理服务映射的URL。
简而言之,有很多方法来解决这个问题。如果您的系统需要自我管理,那么您不仅需要能够拆分和删除服务实例,而且还需要根据需要将互联网流量路由到这些实例。
这通常是从前端到后端的同步调用的可伸缩性工作方式。
发布于 2020-11-02 18:05:14
一个有用的模式是消息代理. ,尽管最初创建这些模式是为了方便应用程序之间的通信,但是可以使用消息代理的轻量级版本来确保可靠的消息传递(例如,您可能对消息转换功能不感兴趣)。
这样的中介可能会排队,甚至会持久化消息,从而允许单个服务再次被删除和备份。该中介还可以支持发布/订阅概念,将消息路由给感兴趣的各方,而不必知道实际的端点。中介可以在服务副本之间进行负载平衡,而无需其他微服务了解复制/可伸缩性。
看看卡夫卡,RabbitMQ,Redis等等。
https://softwareengineering.stackexchange.com/questions/418608
复制相似问题