1. 程式人生 > >spring cloud(六):Zuul的集成

spring cloud(六):Zuul的集成

zuul spring cloud java

1、概念

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的集成