服务注册表和api网关服务知识

时间:2015-10-12 10:05:00

标签: web-services api rest gateway microservices

我实际上正在研究微服务架构,并且有一些我不理解的观点。

事实上,我知道当用户发送请求时,请求(在这种情况下允许/用户)由API网关处理。

此API网关知道当调用/ users / *这样的网址时,它应该从服务注册表(在本例中为ZooKeeper)中发现用户服务信息。

- >这意味着API网关应该知道在每个不同的模式上,它必须得到相关的服务。每次都这样吗?

API网关然后知道如何将请求/用户重定向到正确的服务(通过服务注册表),然后向良好的端点发出良好的请求(想象微服务没有像/ users这样的端点,但/ utilisateurs。网关必须知道

- >它是否意味着API网关具有每个微服务API端点的知识?或者它是否存在更好的(自动化)方式使其有效?

1 个答案:

答案 0 :(得分:0)

网关并不一定必须具体了解每个端点。我想你可能正试图解决这个问题,即知道端点,封装被打破并且存在隐式耦合。

就个人而言,我喜欢通常由下游服务提供的抽象组合。由于所有服务都提供了某人如何对服务进行RPC调用的合同,因此在该场景中也应该为抽象层提供客户端。客户端内部将知道端点,但方法可以是抽象的,例如。列出用户的用户服务可以调用userServiceClient.getUsers或类似的东西。服务注册表的另一个概念也可以存在于此客户端中,因为它应该知道它所代表的服务正在注册的内容。

现在在API网关中,可以将其作为包导入并在不知道端点的情况下使用,但知道存在可以列出用户的某些用户服务。具有抽象的另一个好处是它可以使用协议而不需要上游服务对其实现有任何想法。希望这有帮助!

相关问题