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简化客户端调用复杂度;负载均衡功能减少了单台服务器的压力,把请求压力分发到相同的服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。