通过HTTP用于内部通信,漂亮的URL的microService通信

问题描述 投票:0回答:1

我有两个微服务和网站,我都托管在IIS中这样同一个盒子:

默认Web站点

  1. Microservice1 - GET / API /值 - 需要JWT令牌
  2. Microservice2 - GET / API /价值/ 1 /对象 - 需要JWT令牌
  3. 网站

要求:

  1. 微服务到微服务沟通应该通过HTTP来完成。
  2. 网站的microService通信应该通过HTTPS进行。
  3. 客户端(非网站)的公共API应该是速率的限制。但是流量网站的microService不应该是速率的限制。

我怎样才能做到这一点?我知道IIS速率限制,ARR和URL重复写,但我怎么把所有的这一起?是否有这种类型的微服务行为托管在同一个盒子一个典型的模式?

iis microservices url-rewrite-module arr
1个回答
1
投票

图案

有一个众所周知的模式称为API Gateway,我建议你作为首选。它基本上是一个单一入口点来处理所有的请求,但它不只是作为一个反向代理工作,它也可能包括像节流,限速,认证等资源。

限速

客户端总是从外部网络,这是利率进行监测的地方访问应用程序的公共领域。当你的服务应该由当地的网络,如IP地址或服务名称(容器名称)彼此之间交流,这里没有控制。当然还有,本地通信比外部因素快得多。

SSL

当你有一个中心点来处理请求,可以设置SSL在这种情况下,它会听HTTPS称他们代理到内部服务。如果他们都在同一台服务器,这是很容易配置,让他们一起工作使用docker network

网关API

作为一个API网关,我强烈建议你看看Kong。这是很容易使用,效果真的很好,它可能会解决你的大部分问题,甚至对复杂的场景。

复杂的场景

为了给复杂的场景和可扩展性的概述,你会需要一些service discovery,这将通过集中的服务请求的可用性和分布。例如:当您访问abc.example.com,它可以将请求重定向到三个不同的服务实例(10.0.0.1,10.0.0.2,10.0.0.3)。一个很好的工具,处理它是Consul

© www.soinside.com 2019 - 2024. All rights reserved.