路由网关(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)

最新文章

  1. PHP中多线程处理
  2. CURL命令详解
  3. window 10 用composer安装 基于 Laravel 5.3 的 Coaster CMS Curl错误77解决
  4. Vector_h
  5. 5.POST中文乱码解决方案
  6. HDU 4737 A Bit Fun 2013成都 网络赛 1010
  7. grub2手动引导ubuntu
  8. [译]Java 设计模式之装饰器
  9. Hooking Android System Calls for Pleasure and Benefit
  10. PgSql on Docker with HaProxy 反向代理
  11. asp.net 发布程序到iis后无法连接到oralce数据库问题
  12. js事件流机制冒泡和捕获
  13. npm -g -D -s的区别
  14. 一个强大的VS代码搜索工具
  15. 深度学习原理与框架-Tfrecord数据集的读取与训练(代码) 1.tf.train.batch(获取batch图片) 2.tf.image.resize_image_with_crop_or_pad(图片压缩) 3.tf.train.per_image_stand..(图片标准化) 4.tf.train.string_input_producer(字符串入队列) 5.tf.TFRecord(读
  16. Ubuntu 16.04安装sogou 拼音输入法
  17. 前端之前端介绍或html的常用标签1
  18. 关于电商ERP的想法
  19. 第七章 ReentrantLock总结
  20. 300. Longest Increasing Subsequence_算法有误

热门文章

  1. MyBatis探究-----为实体类Bean取别名,配置typeAliases
  2. MyBatis探究-----配置数据源的几种方式
  3. java基础语法-char数据类型
  4. 浅谈USB驱动架构 转载
  5. 2018-2019-2 20165335 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
  6. PyTorch进行深度学习入门
  7. 最新QT4.8+kernel_3.2.5+uboot_2010.06+tslib移植成功-问题小结
  8. mongo 修改器
  9. CenOS 6.4下安装中文输入法
  10. 回车\r与换行\n