SpringCloud学习笔记 (18)

image-20210201155510913

注意:Zuul 服务最终还是会注册进 Eureka

提供:代理 + 路由 + 过滤 三大功能!

Zuul 能干嘛?

路由

过滤

官方文档:https://github.com/Netflix/zuul/

9.2 入门案例

新建springcloud-zuul模块,并导入依赖

<dependencies> <!--导入zuul依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> <version>1.4.6.RELEASE</version> </dependency> <!--Hystrix依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> <version>1.4.6.RELEASE</version> </dependency> <!--dashboard依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix-dashboar</artifactId> <version>1.4.6.RELEASE</version> </dependency> <!--Ribbon--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> <version>1.4.6.RELEASE</version> </dependency> <!--Eureka--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> <version>1.4.6.RELEASE</version> </dependency> <!--实体类+web--> <dependency> <groupId>com.haust</groupId> <artifactId>springcloud-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies>

application.yml

server: port: 9527 spring: application: name: springcloud-zuul #微服务名称 # eureka 注册中心配置 eureka: client: service-url: defaultZone: :7001/eureka/,:7002/eureka/,:7003/eureka/ instance: #实例的id instance-id: zuul9527.com prefer-ip-address: true # 显示ip info: app.name: haust.springcloud # 项目名称 company.name: 河南科技大学西苑校区 # 公司名称 # zull 路由网关配置 zuul: # 路由相关配置 # 原来访问路由 eg::9527/springcloud-provider-dept/dept/get/1 # zull路由配置后访问路由 eg::9527/haust/mydept/dept/get/1 routes: mydept.serviceId: springcloud-provider-dept # eureka注册中心的服务提供方路由名称 mydept.path: /mydept/** # 将eureka注册中心的服务提供方路由名称 改为自定义路由名称 # 不能再使用这个路径访问了,*: 忽略,隐藏全部的服务名称~ ignored-services: "*" # 设置公共的前缀 prefix: /haust

主启动类

/** * @Auther: csp1999 * @Date: 2020/05/20/20:53 * @Description: Zull路由网关主启动类 */ @SpringBootApplication @EnableZuulProxy // 开启Zuul public class ZuulApplication_9527 { public static void main(String[] args) { SpringApplication.run(ZuulApplication_9527.class,args); } }

测试:

image-20210201155638125

上图是没有经过Zull路由网关配置时,服务接口访问的路由,可以看出直接用微服务(服务提供方)名称去访问,这样不安全,不能将微服务名称暴露!

所以经过Zull路由网关配置后,访问的路由为:

image-20210201155658157

我们看到,微服务名称被替换并隐藏,换成了我们自定义的微服务名称mydept,同时加上了前缀haust,这样就做到了对路由fan访问的加密处理!

详情参考springcloud中文社区zuul组件 :

10. Spring Cloud Config 分布式配置

Dalston.RELEASE

Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用。随着应用程序通过从开发人员到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运行的一切。服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。很容易添加替代实现,并使用Spring配置将其插入。

10.1 概述

分布式系统面临的–配置文件问题

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssppz.html