我们现在搭建一个Zuul网关,实现在第9章创建的商品和订单两个微服务的接口通过网关统一访问。同样,先创建一个Spring Boot项目,命名为zuul,如图所示。
然后,在“Dependencies”界面中勾选“Spring Cloud Routing”中的“Zuul [Maintenance]”;并勾选“Spring Cloud Discovery”中的“Eureka Discovery Client”,如图所示。
创建好Spring Boot项目后,我们同样先将配置文件扩展名改成“.yml”。然后在application.yml中写入zuul配置,如程序清单11-1所示。
server.port配置服务的端口号为8000,spring.application.name配置服务的名称为zuul。
service-url.defaultZone和10.4节我们加入安全认证的eureka-server的注册中心地址一样。
zuul.routes配置路由,goods和order为路由ID(可随便命名,不重复就行),
path为匹配的URI,serviceId为转发的目标服务的名字(也可以用服务的URL代替这个字段)。
然后,在启动类上添加@EnableZuulProxy注解开启Zuul,如程序清单11-2所示。
然后我们分别启动eureka-server、order、goods和Zuul项目(如果Eureka开启了安全访问,启动前记得给goods的defaultZone添加用户名和密码)。访问注册中心查看Eureka面板信息,如图所示,可以看到它们都在正常运行。
最后,我们验证测试,通过Zuul路由来调用商品微服务的查询所有商品接口,如图所示,访问“http://localhost:8000/goods-service/goods/all”。
再调用订单微服务的查询所有订单接口,如图所示,访问“http://localhost:8000/order-service/order/all”。
至此,我们便实现了通过网关来统一访问不同的微服务的接口。
当调用这些微服务时,不用再关心具体的IP地址和端口,只需要知道网关指定的路由path即可。
加入网关,可极大地降低前端调用后端不同微服务的复杂性,提高安全性,因为这样只需要对外暴露网关的地址,隐藏了调用的真实的微服务的地址。
标签:网关,goods,Zuul,接口,访问,服务,搭建 From: https://www.cnblogs.com/cnetsa/p/16981763.html