# springcloud **Repository Path**: hqs_java_application/springcloud ## Basic Information - **Project Name**: springcloud - **Description**: Springcloud Hoxton SR6 环境 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2020-07-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Springcloud Hoxton SR6 环境搭建 ### 一. 注册中心和配置中心 Nacos - 服务发现和服务健康监测: 支持基于 DNS 和基于 RPC 的服务发现, 支持对服务的实时的健康检查, 阻止向不健康的主机或服务实例发送请求; - 动态配置服务: 动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置; - 动态DNS服务: 动态 DNS 服务支持权重路由, 让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单 DNS 解析服务; - 服务及其元数据管理: 支持从微服务平台建设的视角管理数据中心的所有服务及元数据. ### 二. 服务网关 Gateway - 基于 Spring Framework 5, Project Reactor 和 Spring Boot 2.0 进行构建; - 动态路由:能够匹配任何请求属性; - 可以对路由指定 Predicate(断言)和 Filter(过滤器); - 集成 CircuitBreaker的断路器功能; - 集成 Spring Cloud 服务发现功能; - 易于编写的 Predicate(断言)和 Filter(过滤器); - 请求限流功能; - 支持路径重写。 > * Route(路由): 路由是构建网关的基本模块, 它由ID, 目标URI, 一系列的断言和过滤器组成, 如果断言为 true 则匹配该路由; > * Predicate(断言): 指的是 Java 8 的 Function Predicate. 输入类型是Spring框架中的 ServerWebExchange. 这使开发人员可以匹配 HTTP 请求中的所有内容, 例如请求头或请求参数, 如果请求与断言相匹配,则进行路由; > * Filter(过滤器): 指的是Spring框架中 GatewayFilter 的实例, 使用过滤器, 可以在请求被路由前后对请求进行修改. ##### 查看路由配置 添加Spring Boot Actuator依赖并将 gateway 端点暴露 端点都在路径 /actuator/gateway/, 例如routes全路径 | ID | HTTP Method | Description | | ------------- | --------------- | -------------------- | | globalfilters | GET | 展示所有的全局过滤器 | | routefilters | GET | 展示所有的过滤器工厂(GatewayFilterFactory)| | refresh | POST[无消息体] | 清空路由缓存 | | routes | GET | 展示路由列表 | | routes/{id} | GET | 展示指定id的路由信息 | | routes/{id} | POST[消息体如下] | 新增一个路由 | | routes/{id} | DELETE[无消息体] | 删除一个路由 | 其中,要想动态添加路由配置,只需发送POST请求,消息体如下: ```json { "predicates": [ { "name": "Path", "args": { "_genkey_0": "/test" } } ], "filters": [ { "name": "AddRequestHeader", "args": { "_genkey_0": "X-Request-Foo", "_genkey_1": "Bar" } } ], "uri": "https://www.google.com", "order": 0 } ``` ##### 内置Gateway过滤器工厂 详细介绍 https://blog.csdn.net/ooyhao/article/details/102810320 ### 三. 服务调用 OpenFeign ### 四. 熔断与限流 Hystrix 和 Sentinel ### 五. 安全保护 Spring Cloud Security ### 六. 监控中心 Spring Boot Admin ### 七. 分布式事务解决 Seata