Spring cloud zuul

Mave 导入

org.springframework.boot

spring-boot-starter-actuator

org.springframework.boot

spring-boot-starter-web

org.springframework.cloud

spring-cloud-starter-netflix-zuul

开启 zuul

增加 @EnableZuulProxy

整合 ribbon

配置路由规则

server.port = 7070

# zuul.routes.${app-name} = /${app-url-prefix}/**

zuul.routes.person-service = /person-service/**

# 取消ribbon eureka的整合

ribbon.eureka.enable = false

# 配置person-service的负载均衡

person-service.ribbon.listOfServers = http://localhost:8083 //服务提供地址

启动项目

eureka server

provider

zuul

访问测试

localhost:7070/person-service/demo/getHost -> 返回 true,表示成功

/person-service 是服务的名称

/demo/getHost 是 localhost:8083 的服务

调用链路:zuul --> person-service

整合 eureka

zuul 项目

Maven 导入

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

激活服务注册和发现客户端

@EnableDiscoveryClient

配置

spring.application.name = zuul-service

server.port = 7070

# zuul.routes.${app-name} = /${app-url-prefix}/**

zuul.routes.person-service = /person-service/**

# 取消ribbon eureka的整合

ribbon.eureka.enable = false

# 配置person-service的负载均衡

person-service.ribbon.listOfServers = http://localhost:8083 //服务提供地址

# 服务注册和发现客户端地址

eureka.client.service-url.defaultZone = http://localhost:9090/eureka

整合 Hystrix

provider 项目

Maven 导入

org.springframework.cloud

spring-cloud-starter-netflix-hystrix

开启 Hystrix

@EnableHystrix

配置规则

@RestController

public class PersonController {

public Random random = new Random();

@PostMapping("/person/save")

@HystrixCommand(fallbackMethod="fallback",

commandProperties = {

@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",

value = "100")

}

)

boolean save(@RequestBody Person person) throws InterruptedException {

System.out.println("remote request ok !");

int i = random.nextInt(200);

Thread.sleep(i);

System.out.println("随机 : "+i);

return new HashMap<>().put(person.getId(),person)==null;

}

public List fallback(){

return new ArrayList();

}

}

整合 Feign

服务消费方 : person-client

配置

server.port = 8082

spring.application.name = person-consumer

eureka.client.service-url.defaultZone = http://localhost:9090/eureka

management.endpoints.web.exposure.include=*

服务网关 :zuul

增加路由应用到 client

zuul.routes.person-consumer = /person-consumer/**

访问测试

localhost:7070/person-consumer/demo/getHost -> 返回 true,表示成功

调用链路:zuul --> person-consumer --> person-provider

整合 config server

config server 配置

server.port = 9091

spring.application.name = ws

### 拉取远程git中配置

spring.cloud.config.server.git.uri = file:///${user.dir}/src/main/resources/configs

### 关闭actuator验证

management.endpoints.enabled-by-default=true

zuul 增加配置文件

三个 profile 配置文件

zuul.properties

zuul-test.properties

zuul-prod.properties

zuul.properties

zuul.routes.person-service = /person-service/**

zuul-test.properties

zuul.routes.person-consumer = /person-consumer/**

zuul-prod.properties

zuul.routes.person-service = /person-service/**

zuul.routes.person-consumer = /person-consumer/**

file:///${user.dir}/src/main/resources/configs 目录下初始化 git,并提交

增加 eureka 客户端依赖

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

注册到 eureka 服务器

# 注到eureka服务器

eureka.client.service-url.defaultZone = http://localhost:9090/eureka

激活 Eureka

@EnableDiscoveryClient

测试配置

http://localhost:9091/zuul/default

zuul 配置

增加 config client 依赖

org.springframework.cloud

spring-cloud-config

创建 bootstrap.properties 配置项

# 远程地址properties 前缀 [ws.properties]

spring.cloud.config.name = zuul

# 远程地址properties -后缀 [ws-dev.properties]

spring.cloud.config.profile = default

# git仓局分支

spring.cloud.config.label = master

# 采用Discovery client连接方式

spring.cloud.config.discovery.enabled = true

# 通过eureka注册中心选择config服务

spring.cloud.config.discovery.serviceId = config-server

测试访问

访问 : localhost:7070/person-service/person/save

调用路径 : zuul --> person-service --> person-provider

访问 : localhost:7070/person-service/person/save

调用路径 : zuul --> person-provider

所以 config 服务器配置生效

ws配置 zuul_spring cloud zuul 服务网关相关推荐

  1. ws配置 zuul_SpringCloud系列研究---服务网关zuul

    一.zuul简介 服务网关是微服务架构中的入口,微服务平台通过服务网关统一向外部暴露API供客户端调用,网关除了具备服务路由.均衡负载功能之外,它还具备了权限控制等功能.在Spring Cloud中的 ...

  2. springcloud 网关_Spring Cloud 系列之 Netflix Zuul 服务网关(二)

    本篇文章为系列文章,未读第一集的同学请猛戳这里: 哈喽沃德先生:Spring Cloud 系列之 Netflix Zuul 服务网关(一)​zhuanlan.zhihu.com 本篇文章讲解 Zuul ...

  3. Spring Cloud浅谈个人尝鲜------Zuul 服务网关(五)

    Spring Cloud浅谈个人尝鲜------Zuul 服务网关(五) 前面几篇文章我们学习了Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止 ...

  4. Spring Cloud 系列之 Netflix Zuul 服务网关(三)

    本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Netflix Zuul 服务网关(一) Spring Cloud 系列之 Netflix Zuul 服务网关(二) ...

  5. Spring cloud Gateway 服务网关 实战

    Spring cloud Gateway 服务网关 一.简介 优点: 特性: 总结: 二.核心概念 三.路由规则 1.Path 2.Query 3.Method 4.Datetime 5.Romote ...

  6. Zuul服务网关二个功能请求的路由和过滤器使用

    Zuul服务网关 1.理解Zuul ​ Zuul 是从设备和网站到应用程序后端的所有请求的前门.作为边缘服务应用程序,Zuul 旨在实现动 态路由,监视,弹性和安全性.Zuul 包含了对请求的路由和过 ...

  7. Spring Cloud Zuul API 网关服务

    API 网关是一个更为智能的应用服务器,它的定义类似于面向对象设计模式中的 Facade 模式,它的存在就像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来进行调度和过滤.它除了要实 ...

  8. Spring Cloud微服务网关Zuul过滤链和整合OAuth2+JWT入门实战

    一.Spring Cloud Zuul 过滤链 1.1 工作原理 Zuul的核心逻辑是由一系列的Filter来实现的,他们能够在进行HTTP请求或者相应的时候执行相关操作.Zuul Filter的主要 ...

  9. Spring Cloud(六) 服务网关GateWay 入门

    前文回顾: Spring Cloud(一)Eureka Server-单体及集群搭建 Spring Cloud(二) 配置Eureka Client Spring Cloud(三) 熔断器Hystri ...

  10. java分布式api网管关,分布式04-Spring Cloud Zuul Api网关 一

    1.什么是Zuul zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. 熟悉Nginx的朋友可以把zuul理解为一个Nginx,个人认为2者 ...

最新文章

  1. 美国微生物科学院22年院士公布!舒跃龙、黄力、卢洪洲、赵国屏!
  2. 零基础学JAVA]Java SE基础部分-01. Java发展及JDK配置
  3. python学习音频-详解python播放音频的三种方法
  4. 【Linux】目录文件权限的查看和修改【转】
  5. [SOJ1039]Phone Home(深搜,染色问题)
  6. 「 每日一练,快乐水题 」1189. “气球” 的最大数量
  7. nvidia控制面板点了没反应win7_win7系统Nvidia控制面板怎么设置?
  8. 图解 Redis丨这就是 RDB 快照,能记录实际数据的
  9. 云图说丨手把手教你为容器应用配置弹性伸缩策略
  10. 继电器设备改造需要的设备清单
  11. js页面间通信方法实现
  12. perl 语言中的q,qw,qr,qx,qq符号用法总结
  13. 程序员代码面试指南 IT名企算法与数据结构题目最优解.pdf
  14. webstorm使用指南
  15. 六类网线钳能压五类水晶头吗_六类网线可以用五类水晶头不?
  16. ktv服务器几套系统,KTV场所需要哪些设备
  17. Android使用Bugly实现静默安装/自动安装app
  18. sibelius西贝柳斯2023中文版是什么打谱软件?如何下载
  19. android 各类demo链接
  20. 手机投屏电视android限制声音,没有路由器和WiFi,手机投屏电视教程

热门文章

  1. Flash Builder4破解步骤
  2. c语言:新颖的进制灵活应用
  3. 项目管理(二)责任划分
  4. 第一次想真正的认识自己
  5. zookeeper保证单一视图
  6. zookeeper核心原理(Watcher、事件和状态)
  7. 获取一个类的信息(仿YYClassInfo类)
  8. Jenkis maven构建项目实践
  9. 在Visio里加上、下标方法
  10. 一文读懂质量保证和质量控制