6

我有一个基于 .net 核心的微服务架构。我选择了ocelot作为api网关。我的前端应用程序基于 vue js 并托管在 nginx 容器上。在今天的讨论中,得知nginx已经可以作为网关使用了,有人建议“你应该使用nginx作为网关,因为你已经使用了服务前端,nginx也可以部署为网关”我搜索了互联网比较这两个网关(我知道 nginx 的主要目的不是网关),但找不到任何关于它们的优缺点的信息,比如性能、可扩展性可用性等......

使用这两种技术的人可以与我分享我应该选择哪一种的信息吗?

4

2 回答 2

5

Ocelot 是.NET API 网关,但与云无关。它具有这里文章中提到的以下功能。它是一个免费的简单 Nuget 包,用于简单安装,没有太高级的功能或性能要求,但它总是在 .net 环境中完美地完成这项工作,并且还提供了一些功能。它是轻量级、快速、可扩展的,除了所有网关功能外,还提供路由和身份验证。在 Azure 上,Azure API 管理提供了这些功能以及许多更高级的网关功能。

NGinx 有一个开源版本和一个 plus 版本。

NGINX 是一个高性能、可扩展、安全、可靠的 Web 服务器和反向代理。NGINX 支持所有主要的 Web 加速技术来管理 HTTP 连接和流量。多年来,NGINX 的负载均衡、SSL 终止、连接和请求监管、静态内容卸载和内容缓存等功能帮助 NGINX 用户快速高效地构建可靠、快速的网站。

NGINX 还可以充当安全的应用程序网关,提供许多专用的内置接口来将流量从用户传递到应用程序。因此,正如您所见,NGinx 不仅仅是一个 API 网关。使用服务器,您可以集成许多其他服务,如流量分配、策略、监控、警报、通知、自定义配置等。Ocelot 对于企业级应用程序的性能或可配置性可能有限。

Nginx 是与 Ocelot 不同的软件。NGinx 上的 Kong 是更流行的 API 管理网关软件,不是 .NET 特定的。

如果您的公司已经在使用它,并且已经将其用于部署,那么您应该继续使用 Nginx。

Ocelot vs Kong vs Azure API 管理 vs Nginx

在正常情况下,Ocelot 可能会出现比 Nginx 更好的软件。但是 Nginx 是一个成熟的软件。几个原因:您的公司已经拥有 Nginx plus 的许可证,为什么要使用其他软件进行 API 管理。湾。Nginx 可配置以获得高性能,而 ocelot 则不然。如果你使用的线程池是 nginx,性能可以调优。 十个 Nginx 性能调优技巧。. 在 Ocelot 中,您可以做的仅限于此类事情。它有自己的一堆未解决的问题为网关。NGinx plus 用户将接受培训以及现有的团队支持。Nginx 将成为您所有应用程序的一个 API 网关(独立于技术)。Ocelot 依赖于技术。鉴于利弊,您的公司可能已经拥有 Nginx plus 许可证和用于多个应用程序的通用 API,这就是他们可能会推动它的原因。

于 2020-09-14T16:33:28.390 回答
0

首先,Nginx 和 Ocelot 是非常不同的软件。使用 Nginx 最终将对您的基础设施有好处,因为它可以用作 API 网关,而且它是开源的、安全的,并提供许多其他好处。

从长远来看,使用 Ocelot 会有缺点。您需要额外处理一个软件。为什么要在这上面浪费时间?开发人员需要了解它们。

我建议您使用 Nginx,因为它已经实现并完成您的工作

于 2020-09-14T19:44:50.673 回答