spring cloud(六):Zuul的集成
Zuul 是在雲平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架。Zuul 相當於是設備和 Netflix 流應用的 Web 網站後端所有請求的前門。另外需要理解的概念就是反向代理和負載均衡,反向代理:就是外網向內網請求資源,並把資源返回給客戶端,正向代理相反;負載均衡就是多個客戶端請求,會如果有多個相同的serviceid,網關則會進行輪詢的方式進行訪問。
2、搭建
2.1、添加依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
<version>1.3.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.3.2.RELEASE</version>
</dependency>
2.2、具體實現
@EnableZuulProxy
@SpringCloudApplication
public class ZuulApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ZuulApplication.class).web(true).run(args);
}
}
2.3、配置
spring.application.name=api-gateway
server.port=9412
# routes to serviceId 這裏邊是通過serviceid來綁定地址,當在路徑後添加/xx-a/ 則是訪問service-A對應的服務。
zuul.routes.xx-a.path=/xx-a/**
zuul.routes.xx-a.serviceId=service-A
zuul.routes.yy-b.path=/yy-b/**
zuul.routes.yy-b.serviceId=service-B
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
2.4、新建微服務service-A和微服務service-B
可以在controller裏面註入 @Autowired private DiscoveryClient client;然後通過client獲得主機及端口號
2.5、對A、B服務復制一份,修改端口,進行啟動,然後分別請求,會發現兩次請求A服務,獲得端口號不同的微服務,從而實現了客戶端負載均衡。
3、總結
zuul簡化客戶端調用復雜度;負載均衡功能減少了單臺服務器的壓力,把請求壓力分發到相同的服務。
spring cloud(六):Zuul的集成