📅  最后修改于: 2021-01-11 02:34:48             🧑  作者: Mango
步骤1:运行netflix-eureka-naming-server。
步骤2:在端口8000上运行currency-exchange-service 。
步骤3:在端口8100上运行currency-conversion-service 。
步骤4:运行netflix-zuul-api-gateway-server。
步骤5:打开浏览器并调用URL http:// localhost:8761 。它显示了在Eureka命名服务器上注册的所有服务。
第6步:调用URL http:// localhost:8000 / currency-exchange / from / EUR / to / INR 。我们得到了响应,但是请求没有通过Zuul API网关。
让我们通过Zuul API网关调用请求。我们使用以下URL: http:// localhost:8765 / {application-name} / {uri} 。端口8765是Zuul API网关服务器的默认端口。
在我们的例子中,应用程序名称为currency-exchange-service,而URI为/ currency-exchange / from / EUR / to / INR 。因此,完整的URL如下所示:
http:// localhost:8765 / currency-exchange-service / currency-exchange / from / EUR / to / INR
第7步:复制上述URL并将其粘贴到浏览器中。我们得到与上述相同的响应,但是此时,请求正在通过Zuul API Gateway进行。
我们还可以看到在Zuul API Gateway服务器上打印的请求的内容。该请求将打印请求URI。
我们已经通过Zuul API网关发送了请求,而不是直接调用微服务。
在上一步中,我们使用了直接URL通过Zuul API Gateway代理执行currency-exchange-service。当我们使用URL http:// localhost:8765 / currency-exchange-service / currency-exchange / from / EUR / to / INR时,它使用的端口8765是API网关的代理。
在本节中,我们将调用称为currency-exchange-service的currency-calculation-service(currency-conversion-service)。到目前为止,我们正在直接致电该服务。现在,我们将通过Zuul API网关调用它,而不是直接调用currency-exchange-service。
步骤1:选择项目currency-conversion-service 。
步骤2:打开CurrencyExchangeServiceProxy.java文件。
步骤3:通过使用注释@FeignClient与属性名=“Netflix的-zuul-API网关服务器”启用佯。
@FeignClient(name="netflix-zuul-api-gateway-server")
切记:删除或注释CurrencyExchangeServiceProxy.java文件中的所有其他注释@FeignClient。
步骤4:为Zuul API Gateway服务器定义映射。
@GetMapping("/currency-exchange-service/currency-exchange/from/{from}/to/{to}")
切记:删除或注释currency-exchange-service的映射。
步骤5:以我们编写的相同顺序运行netflix-eureka命名服务器,currency-exchange-service,currency-conversion-service和netflix-zuul-api-gateway-server。
切记:确保所有四个服务均正常运行。
第6步:打开浏览器,并调用URL http:// localhost:8100 / currency-converter-feign / from / USD / to / INR / quantity / 1000 。它返回以下响应:
让我们看一下NetflixZullApiGatewayServerApplication的日志。
步骤7:单击控制台图标旁边的箭头,然后选择NetflixZullApiGatewayServerApplication。
它显示了几个日志,如下图所示。
步骤8:再次刷新URL。它在控制台上显示单个日志。
每当我们通过Feign调用CurrencyClaculationService(currency-converter-service)时,都会通过API网关服务器进行路由。网关执行一个名为ZuulLoggingFilter的过滤器,该过滤器将调用currency-exchange-service。
现在,让我们拦截Currency Converter-service和Currency-exchange-service之间的调用。这意味着当我们调用URL时,API网关执行两次。
让我们在项目中实现拦截。
通过API网关发送请求http:// localhost:8765。 URI为/ {application-name} / {uri}。完整的URL如下所示:
调用上述URL。它返回的响应与URL http:// localhost:8100 / currency-converter-feign / from / USD / to / INR / quantity / 1000返回的响应相同。
我们可以在日志中看到日志过滤器执行了两次。第一次调用货币转换器服务,第二次调用货币转换器服务。
在本节中,我们通过Zuul API网关服务器执行了这两个服务。