博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
企业级 SpringCloud 教程 (五)路由网关(zuul)
阅读量:6712 次
发布时间:2019-06-25

本文共 3744 字,大约阅读时间需要 12 分钟。

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

Azure (1).png

注意:A服务和B服务是可以相互调用的,作图的时候忘记了。并且配置服务也是注册到服务注册中心的。

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

一、Zuul简介

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

zuul有以下功能:

  • Authentication
  • Insights
  • Stress Testing
  • Canary Testing
  • Dynamic Routing
  • Service Migration
  • Load Shedding
  • Security
  • Static Response handling
  • Active/Active traffic management

二、准备工作

继续使用上一节的工程。在原有的工程上,创建一个新的工程。

 

三、创建service-zuul工程

其pom.xml文件如下:

4.0.0
com.forezp
service-zuul
0.0.1-SNAPSHOT
jar
service-zuul
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
UTF-8
UTF-8
1.8
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-starter-zuul
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
Dalston.RC1
pom
import
org.springframework.boot
spring-boot-maven-plugin
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false

  在其入口applicaton类加上注解@EnableZuulProxy,开启zuul的功能:

@EnableZuulProxy@EnableEurekaClient@SpringBootApplicationpublic class ServiceZuulApplication {    public static void main(String[] args) {        SpringApplication.run(ServiceZuulApplication.class, args);    }}

  加上配置文件application.yml加上以下的配置代码:

eureka:  client:    serviceUrl:      defaultZone: http://localhost:8761/eureka/server:  port: 8769spring:  application:    name: service-zuulzuul:  routes:    api-a:      path: /api-a/**      serviceId: service-ribbon    api-b:      path: /api-b/**      serviceId: service-feign

  

首先指定服务注册中心的地址为,服务的端口为8769,服务名为service-zuul;以/api-a/ 开头的请求都转发给service-ribbon服务;以/api-b/开头的请求都转发给service-feign服务;

依次运行这五个工程;打开浏览器访问: ;浏览器显示:

hi forezp,i am from port:8762

  打开浏览器访问: ;浏览器显示:

hi forezp,i am from port:8762

  这说明zuul起到了路由的作用

转载于:https://www.cnblogs.com/xiamudaren/p/8383974.html

你可能感兴趣的文章
8Manage装配式一体化管理如何解决集成窘境
查看>>
一文看清深圳云栖阿里云重磅产品发布
查看>>
对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)
查看>>
关于sql语句的优化问题
查看>>
SQL Server 2016新特性:数据库级别配置
查看>>
中美贸易战升级 医疗器械行业影响大
查看>>
嵌入的iframe框架自适应宽度代码
查看>>
IPTABLES常用命令之配置生产环境IPTABLES及优化
查看>>
linux服务ssh详解
查看>>
cat命令一些不常用但很有用的参数
查看>>
双色球 脱壳加去效验
查看>>
#22 系统进程调度、at、batch、mail、crontab
查看>>
Intellij IDEA Debug调试技巧
查看>>
PHP Warning: PHP Startup: unable to load dynamic library
查看>>
metasploit(MSF)终端命令大全
查看>>
Linux下php安装Redis扩展
查看>>
管理信息系统测试方法总结(二)
查看>>
EMC与NetApp NAS对比
查看>>
linux系统的启动流程
查看>>
CRLF注入漏洞
查看>>