• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
AGENTFITZ
博客园    首页    新随笔    联系   管理    订阅  订阅
springcloud-zuul路由网关

路由网关(zuul)

在微服务架构中,需要多个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能
路由、配置管理等,由这个基础组件相互协作,共同组建了一个简单的微服务系统。一个简单的微服务系统如下
图

总结:在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求先先经过负载均衡(zuul、
Ngnix),再到达服务网关(zuul集群),然后再到具体的服务。服务统一注册到高可用的服务注册中心集群,服务的所有的配置文件由配置服务管理,配置服务的配置文件仓库,方便开发人员随时改配置。

1.Zuul 简介

Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/user转发到到user服
务,/api/shop转发到到shop服务。zuul默认和Ribbon结合实现了负载均衡的功能

1.搭建Zull
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zuul</artifactId>
 </dependency>
2.编写Zuul的入口类
 @EnableZuulProxy
 @EnableEurekaClient
 @SpringBootApplication
 public class ServiceZuulApplication {

 public static void main(String[] args) {
 SpringApplication.run(ServiceZuulApplication.class, args);
 }
}
3.application.yml配置文件
eureka.client.serviceUrl.defaultZone: http://localhost:8080/eureka/
server.port: 8769
spring.application.name: service-zuul

#关闭安全认证		
management.security.enabled=false
#设置断路时间
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000		

注意:zuul中默认有hystrix断路器,如果响应时间超过1秒,断路器打开,这几乎是不可能的,所以必须调整断路时间
使用:当前zuul使用默认路由规则,访问:http:zuul端口/服务实例名/控制器方法
这是单节点的主流配置,如果需要配置zuul集群,需要配置Nginx代理,配置分发规则。从图一可以看出微服务当前的架构经过三次的负载均衡:

  • Nginx--->Zuul
  • Zuul----->Client(分发)
  • Client--->Client (Ribbon)
posted on 2019-01-13 11:00  agentfitz  阅读(791)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3