有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java monolith和microservice架构的API/服务消耗之间是否存在技术差异?

我正在研究微服务的概念。 我做了一个小演示&;了解monolith和;微服务应用。(建筑上的差异也很酷!) 演示:使用SpringBoot、Eureka和SpringCloud,它使用客户端服务发现

我还试图了解客户端与服务器端的服务发现。 后来我挣扎着发现很难理解。。。 来自monolith应用程序的API调用。以及从另一个微服务应用程序调用微服务。(比如窗帘下/背后实际发生的事情)

例如, 从一个整块应用程序考虑下面的API。可以从另一个monolith应用程序中使用/微型服务

A)getapi:http://127.0.0.1:8080/projects 作为传统的RESTAPI,这是我所知道的&;我们所期望的

考虑这个来自微服务应用程序的API(例如,尤里卡客户端)

B-初始值)获取API:http://localhost:18082/products 后来转换为用于服务发现用途的

B-新)http://product-info-service:18082/products

因此,据我观察,Eureka服务器在其服务注册表中包含这些服务名称。 每当任何注册的Eureka客户端使用其特定的“服务名称”请求上述微服务时,eurekaServer都会进行查找,如果发现完全匹配,则进行解析&;转发请求,请求得到处理

我的担忧: 那么,同样的,它是在这里内部发生的吗?是整体式还是微型服务? 我的意思是,微服务中的发现服务器是否像API一样在内部调用特定的微服务? 或者monolith API调用与microservice服务调用不同?或者它只是一种抽象

附言:仍在学习,如果我在这里问任何模糊或混乱的问题时犯了错误,请提前道歉。请纠正我。谢谢

我的git集线器链接:https://github.com/aniketrb-github/microservices 我关注的内容是JavaBrains


共 (1) 个答案

  1. # 1 楼答案

    你是对的,它实际上只是服务的抽象和分离。您唯一要介绍的是另一个API请求。在A中,您有client -> projects,而在微服务体系结构中,您有client -> api-gateway -> projects。这意味着您现在已经创建了一个分布式系统,它有许多优点和优点;缺点(如单片架构)

    总的来说,它基本上是在做同样的事情,返回一个产品列表。它只是从另一个服务中获取产品列表,而不是从单一应用程序中获取。Eureka用于发现其他服务的位置,因此它知道微服务相对于网关应用程序的位置

    对于未来,您希望开始学习容错和运行可靠微服务体系结构的其他方面