当前位置: 首页 > 知识库问答 >
问题:

微服务架构和层

梁俊友
2023-03-14

让我们讨论一下微服务环境的体系结构。我们正在公司内部进行讨论,我想得到一些反馈。我认真考虑的是编排层(代码复制、更多移动部件改变api)。

网络应用-

原料药-

在这种情况下,服务不允许相互对话。业务流程层中的聚合服务

网络应用-

原料药-

这里允许服务相互对话,这里存在聚合服务。

  • 账单属于哪里

共有1个答案

景修杰
2023-03-14

网络应用-

原料药-

我们能后退一点吗?我想质疑这里使用的术语。

对我来说,上述栈在SOA环境中没有多大意义。

您将服务夹在称为编排和持久性的东西之间。然而,在SOA设计中,所有上述元素都是创建单个服务所必需的。

但在您的示例中,什么是持久性?不管它是什么,它都似乎不在服务范围之内。那么,服务如何持久化数据呢?web应用程序/API似乎也在服务之外。那么,服务如何在屏幕上显示其数据呢?

如果你看一下SOA的原则,特别是第二个原则:

服务是自主的

如果服务应该是自治的,那么服务需要负责持久化它自己的数据。该服务还需要负责通过UI显示其内部状态。

我认真考虑的是一个编排层

从这一点出发,服务还应负责如何将内部状态传达给外部世界,包括自身与其他服务之间的沟通。

如果服务需要使用来自另一个服务的数据,则消费者服务有责任获取该数据。如果服务的状态发生变化,则该服务有责任让外部世界了解状态变化。

编排是一个关注的问题,就像持久性、工具化等一样,因此在SOA环境中,最好以分布式、自治的方式实现,而不是以中心化的方式实现。

因此,在回答您的问题时:

账单属于哪里?

计费属于它自己的垂直服务堆栈,包括UI视图、持久性、编排、通信、部署和管理。

你更喜欢哪种解决方案?优点/缺点。

如上所述,我认为不应该在提出问题的层面上做出选择。我认为任何需要编排的服务都应该对此负责。

其他建议?

如果你还没看过的话,看看这个。

 类似资料:
  • Kubernetes 设计之初就是按照 Cloud Native 的理念设计的,Cloud Native 中有个重要概念就是微服务的架构设计,当将单体应用拆分微服务后, 随着服务数量的增多,如何微服务进行管理以保证服务的 SLA 呢?为了从架构层面上解决这个问题,解放程序员的创造性,避免繁琐的服务发现、监控、分布式追踪等事务,Service mesh 应运而生。 微服务 下图是Bilgin Ibr

  • 我有两个微服务“前端”和“/用户”。当客户端向“前端”发出请求时,它们会与REST API进行通信,它会在内部请求“/用户”微服务。 当 /users回答500错误时,什么样的状态代码应该返回前端服务?

  • 本文向大家介绍详解Java 微服务架构,包括了详解Java 微服务架构的使用技巧和注意事项,需要的朋友参考一下 一、传统的整体式架构 传统的整体式架构都是模块化的设计逻辑,如展示(Views)、应用程序逻辑(Controller)、业务逻辑(Service)和数据访问对象(Dao),程序在编写完成后被打包部署为一个具体的应用。如图所示: 系统的水平扩展 如果要对系统进行水平扩展,通常情况下,只需要

  • 本文向大家介绍什么是微服务架构?相关面试题,主要包含被问及什么是微服务架构?时的应答技巧和注意事项,需要的朋友参考一下 在前面你理解什么是微服务,那么对于微服务架构基本上就已经理解了。 微服务架构 就是 对微服务进行管理整合应用的。微服务架构 依赖于 微服务,是在微服务基础之上的。 例如:上面已经列举了什么是微服务。在医院里,每一个科室都是一个独立的微服务,那么 这个医院 就是 一个大型的微服务架

  • 我正在构建一个基于Spring启动中的微服务架构的项目。该项目分为多个模块,我使用了 maven 依赖项管理。 现在我想在另一个模块中使用一个模块的服务。我有很多Spring申请。例如,我有两个名为A和B的应用程序。我想在B中使用A中的类,在A中使用B中的类。在这种情况下,我使用了maven依赖项,但这并不完全是在另一个应用程序中使用服务的方式,因为我面临循环依赖。 该如何解决这个问题?

  • 我目前正在构建一个具有微服务架构的 Spring 启动应用程序。我正在寻找重用代码的干净方法。 我的想法是在共享模块中提取通用代码。(例如,微服务中的模型类继承的基类,在任何MVC控制器中重用的接口,每个绑定上下文都相同的域代码)。具体的实现和仅服务的模型类等都在子模块(微服务)级别。 我正在与maven一起构建东西,并管理依赖关系。我的问题是如何在这样的设置中构造maven模块和依赖项。 共享库