Microservices 微服务分离

Microservices 微服务分离,microservices,Microservices,我有点困惑。在我的公司,我们有很多不同的集成,目前我们在同一个应用程序中有它们。如果我们决定采用微服务体系结构,那么每个集成应该是单独的服务还是都应该在一个服务中 集成的情况是,它们是支付集成,我们与go支付提供商进行通信,并从他们那里获得异步响应,因此我们必须为每个集成打开几个URL,以从支付网关接收答案。所以它们之间没有联系 虽然您可以,但我会非常小心过度设计您的解决方案。例如,使用docker容器来创建微服务对于每个运行的容器仍然有开销。我建议从少量的微服务开始。理想的候选人是,如果你需要

我有点困惑。在我的公司,我们有很多不同的集成,目前我们在同一个应用程序中有它们。如果我们决定采用微服务体系结构,那么每个集成应该是单独的服务还是都应该在一个服务中


集成的情况是,它们是支付集成,我们与go支付提供商进行通信,并从他们那里获得异步响应,因此我们必须为每个集成打开几个URL,以从支付网关接收答案。所以它们之间没有联系

虽然您可以,但我会非常小心过度设计您的解决方案。例如,使用docker容器来创建微服务对于每个运行的容器仍然有开销。我建议从少量的微服务开始。理想的候选人是,如果你需要N-规模一个微服务,相对于另一个

例如:
服务A的负载很高,因此需要扩展到4个实例 Service-B的负载较低,因此只需要2个实例


另一个很好的选择是,如果你有一个可以跨多个项目使用的微服务。

每个集成都应该是不同的服务,这取决于集成的类型。但是,是的,微服务通常意味着构建多个完全独立的小型服务

单片服务的一个大问题是它是一个单点故障。因此,要解决这一风险,您需要在多个小型服务中中断您的服务。这样,当两个服务宕机时,您的集成层不会失败

在您描述的支付示例中,您可以使用微服务的层次结构。您可以使用一个或两个服务连接您的外部出游,并允许其他服务连接一千个或两个内部服务

如果你选择微服务,我强烈建议你考虑一下实现CI/CD(jenkins/chef)、docker和kubernetes。若你们并没有任何的自动化系统,你们很快就会发现自己在做更多的服务维护,而不是开发

最终,您想要微服务的最大原因是确保您的集成层始终可用并且非常畅销。如果没有像docker和kubernetes这样的自动化,您需要大量的手工工作来维护服务的状态