微服务API网关与微服务机箱

时间:2018-11-02 14:45:25

标签: .net api asp.net-core microservices

我是微服务的新手,听说微服务机箱,但是我无法在线找到足够的资源。我想知道微服务机箱框架和API网关之间有什么区别,因为据我所知,机箱框架解决了跨领域的关注问题,其中一些已经由API网关解决了。

对于.net的微服务机箱框架有什么建议吗?

3 个答案:

答案 0 :(得分:3)

跨部门关注点:在任何企业应用程序中,除了主要业务逻辑之外,还需要解决许多关注点。 ...这些问题包括日志记录,事务处理,性能监视,安全性等。这些问题被称为应用程序的交叉问题。

要澄清这一点,这意味着几乎所有微服务都存在一些共同的问题。这些问题以及如何解决它们是机箱。微服务框架是实现这些跨领域关注点的一种方式。构建可重复使用的机箱可以帮助节省时间,在各个团队之间实现一致性,并确保每个服务都具有相同的运营特征。

API网关在微服务中还有其他作用。每个服务在发现服务中注册后,API网关必须使用发现服务在客户端和每个服务之间建立连接。

请参见以下示例:

Micro service architecture

上面的示例来自Spring实现(Java)。

想象一下每种服务位于不同端口和地址的情况。然后,客户端必须知道每个服务的所有地址和端口才能调用它们。如果其中任何一个发生变化,会发生什么?一切都毁了。

要变通解决此问题,每个服务将其自身注册在发现服务器上(在本示例中为Eureka)。然后,API-Gateway必须使用该发现服务并为每个服务创建API地址。例如,它可以将以下任何形式的请求转发到/{micro_service_name}/**到相关的注册服务。 这意味着,如果order-service具有/orders/get/{order-id} API,则客户必须使用/order-service/orders/get/{order-id}来访问订单。 API网关使用发现服务器将请求重定向到匹配的服务。

答案 1 :(得分:0)

Azure Service Fabric,奥尔良计划很好使用。您也可以尝试Akka.Net,但对于微服务而言,它的用法有些限制。

答案 2 :(得分:0)

微服务体系结构中的API网关主要与服务发现有关,这意味着要知道从哪个端点调用哪个服务,一种简单但不足的方法是使用API​​网关,将所有服务及其相关信息简化为数据库地址和端口,将其与诸如Ducker之类的容器化技术进行比较。以下是在代码项目中发布的有关微服务的一系列文章,您可以根据需要阅读和评论您的问题。
https://www.codeproject.com/Articles/1264113/Dive-into-Microservices-Architecture-Part-I https://www.codeproject.com/Articles/1264113/Dive-into-Microservices-Architecture-Part-II https://www.codeproject.com/Articles/1264113/Dive-into-Microservices-Architecture-Part-III