springcloud之服务网关Netflix Zuul与分布式配置Spring Cloud Config
2019-02-24 16:42
826 查看
阅读前须知:[spring cloud入门+注册中心搭建Netflix Eureka](https://blog.csdn.net/qq_38061322/article/details/87474406
一、服务网关——Netflix Zuul
1.1、简介
Zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。
Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门,也要注册入Eureka.
官网资料
https://github.com/Netflix/zuul
1.2、使用
创建maven项目
1.2.1、导包
<!--springboot支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency>
1.2.2、创建并配置application.yml
server: port: 4399 spring: application: name: MICROSERVICE-ZUUL-GATEWAY eureka: client: service-url: defaultZone: http://localhost:7001/eureka #注册到注册中心 instance: instance-id: gateway-9527.com prefer-ip-address: false #不显示ip地址 zuul: routes: springcloud-demo-ehr: /api/** #springcloud-demo-ehr的别名 通过访问http://localhost:4399/api/getEmp/1 ignored-services: springcloud-demo-ehr #忽视不创建路由规则 这样不能访问http://localhost:4399/springcloud-demo-ehr/getEmp/1 prefix: /ehr #前缀 访问http://localhost:4399/ehr/api/getEmp/1
1.2.3、修改入口类
@SpringBootApplication @EnableZuulProxy public class Zull_RunApp { public static void main(String[] args) { SpringApplication.run(Zull_RunApp.class,args); } }
1.2.4、启动测试
启动注册中心
启动服务提供者
启动zuul测试
二、分布式配置——Spring Cloud Config
微服务架构中,每个项目都有一个yml配置,管理起来麻烦。要使用spring cloud config来统一管理。
2.1、简介
2.1.1、介绍
在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。
2.1.2、架构
2.1.3、作用
- 集中管理配置
- 不同环境不同配置,动态化的配置更新,分环境部署
- 运行期间动态调整配置,不需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息
- 当配置发生冲突时,服务不需要重启即可感知到配置的变化并应用新的配置
- 将配置xinxi以REST接口的形式暴露
2.2、与github集成
创建maven项目
2.3、服务端配置
2.3.1、github创建配置文件
2.3.2、导包
<dependencies> <!--springboot支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!--eureka客户端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <!--配置中心支持--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies>
2.3.3、配置application.yml文件
server: port: 1299 eureka: client: service-url: defaultZone: http://localhost:7001/eureka instance: prefer-ip-address: true spring: application: name: spring-cloud-config-server cloud: config: server: git: uri: https://github.com/hpyao/microservice-config.git username: #你的github账号 password: #你的github密码
2.3.4、启动类配置
@SpringBootApplication @EnableDiscoveryClient //标识是一个注册中心客户端 @EnableConfigServer //开启配置服务端 public class ConfigRunApp{ public static void main(String[] args) { SpringApplication.run(ConfigRunApp.class,args); } }`
2.3.5、测试
http://localhost:1299/application-user/test
http://localhost:1299/application-user/dev
2.4、客户端配置
.2.4.1、导包
<!--springboot支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!--配置中心支持--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
2.4.2、配置全局bootstrap.yml
可以不要application.yml,如果有的话,则是合并
spring: cloud: config: name: application-user #github上面名称 profile: test #环境 label: master #分支 uri: http://127.0.0.1:1299 #配置服务器 eureka: client: service-url: defaultZone: http://localhost:7001/eureka #告诉服务提供者要把服务注册到哪儿 #单机环境 instance: prefer-ip-address: true #显示客户端真实ip
2.4.3、测试
开启注册中心
开启服务端配置中心
开启客户端
相关文章推荐
- SpringCloud之分布式服务配置中心(Spring Cloud Config)
- Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务
- 五、Spring Cloud - Netflix(Zuul服务网关构建代码层面)
- SpringCloud微服务云架构构建B2B2C电子商务平台之-(七)高可用的分布式配置中心(Spring Cloud Config)视频教程
- Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务
- spring cloud zuul网关服务重试请求配置和源码分析
- SpringCloud Finchley 实战入门(基于springBoot 2.0.3)【九 zuul 微服务网关配置】
- 《Spring Cloud Netflix》 -- 服务注册和服务发现-Eureka的常用配置
- Spring Cloud构建微服务架构(四)分布式配置中心(续)
- SpringCloud 进阶之分布式配置中心(SpringCloud Config)
- (Spring Cloud微服务实战-书中之坑)spring cloud config优先读取本地配置,其次读取git仓库
- spring-cloud-zuul服务网关(五)
- (九)Java springcloud B2B2C o2o多用户商城 springcloud架构- commonservice-config配置服务搭建
- spring cloud 系列第8篇 —— config+bus 分布式配置中心与配置热刷新 (F版本)
- Spring Cloud云服务架构 - commonservice-config配置服务搭建
- 第六篇: 分布式配置中心(Spring Cloud Config)
- 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 第六章:分布式配置中心(Spring Cloud Config)
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十一):服务网关(Zuul)