c# – 带API网关的微服务

对于我的新项目,我必须使用Micro服务和Api网关.所以我收集了有关Micro Service的详细信息,但Api Gateway部分并不清楚.

我的问题是,

>有人知道如何在Api中完成请求路由部分
网关?
>这可以通过简单的if条件来完成[伪代码
if(keyword ==“product”)then route(“product service”)]?
>或者这是更好的方法吗?

我正在使用C#.Net来开发Api.
我从https://www.nginx.com/blog/building-microservices-using-an-api-gateway/获得了一些关于Api Gateway的信息

解决方法

你几乎问了三个问题,他们都有点相关,所以我会尽力解决这三个问题.

例如,API网关中的请求路由不仅仅是一个代理,并且实现不会涉及在将请求发送到下游服务之前检查请求的条件. API网关可能是您服务的唯一入口点,在该服务中,还将在层上处理身份验证,以确保请求具有转到下游服务的权限.身份验证可能是另一项服务本身. API网关的高级实现可能会整合所有下游服务上的大多数(如果不是全部)端点.

让我们举一个小例子,例如电子商务应用程序,其中包括用于列出产品,搜索产品和购物车的服务.然后,API网关也将具有这些相同的端点,并将请求进一步委托给负责该请求的服务.此示例中的API可能有/ products列出所有产品,/ products?query = …来搜索产品,最后/ carts::id / products列出购物车中的产品.希望这能回答你的问题.

除此之外,我知道你已经提到它用于一个新项目并且只想给你2美分,如果你的团队非常小,因为它有一个大的,这可能不是用于你的新项目的最佳架构运营开销.需要标准化,自动化部署,集成等的开销.最好从传统的MVC架构开始,并在项目启动时慢慢将其发展为微服务.

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString("x2"));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable<Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include "WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...