Skip to content

如何正确集成管理中心

HaojunRen edited this page Dec 21, 2022 · 4 revisions

本文档只适用于Discovery 6.20.0及以上版本的集成方式

管理中心,通过暴露Http Rest Endpoint的方式,向外提供服务实例内存相关信息的查询、更新和删除等操作

有些Endpoint比较重要,象InspectorEndpoint提供全链路侦测和自动化蓝绿灰度发布模拟流程测试功能

集成方式

管理中心,提供集成Swagger组件版和不集成Swagger组件

  • 如果业务服务自身使用的Swagger版本过高或者过低,引入管理中心会引起不兼容的问题,则可以考虑使用不集成Swagger组件版的管理中心
  • 如果业务服务想通过Swagger方便使用和测试Http Rest Endpoint,且Swagger版本是兼容的,则可以考虑使用集成Swagger组件版的管理中心

框架默认集成的Swagger版本

<swagger.version>1.5.21</swagger.version>
<springfox.swagger.version>2.9.2</springfox.swagger.version>

集成依赖

<dependency>
    <groupId>com.nepxion</groupId>
    <!-- 不集成Swagger组件的管理中心 -->
    <artifactId>discovery-plugin-admin-center-starter</artifactId>
    <!-- 集成Swagger组件的管理中心 -->
    <artifactId>discovery-plugin-admin-center-starter-swagger</artifactId>
</dependency>

安全问题

对于内网向外网暴露接口控制不严格的企业,暴露Http Rest Endpoint可能存在一些风险

管理中心,提供相关开关关闭对应的Endpoint

# 启动和关闭服务相关操作端点。缺失则默认为true
spring.application.admin.service.endpoint.enabled=true
# 启动和关闭配置相关操作端点。缺失则默认为true
spring.application.admin.config.endpoint.enabled=true
# 启动和关闭版本相关操作端点。缺失则默认为true
spring.application.admin.version.endpoint.enabled=true
# 启动和关闭侦测相关操作端点。缺失则默认为true
spring.application.admin.inspector.endpoint.enabled=true
# 启动和关闭路由相关操作端点。缺失则默认为true
spring.application.admin.router.endpoint.enabled=true
# 启动和关闭策略相关操作端点。缺失则默认为true
spring.application.admin.strategy.endpoint.enabled=true
# 启动和关闭Sentinel相关操作端点。缺失则默认为true
spring.application.admin.sentinel.endpoint.enabled=true
# 启动和关闭Git相关操作端点。缺失则默认为true
spring.application.admin.git.endpoint.enabled=true
# 启动和关闭Spring Cloud Gateway相关操作端点。缺失则默认为true
spring.application.admin.gateway.endpoint.enabled=true
# 启动和关闭Zuul相关操作端点。缺失则默认为true
spring.application.admin.zuul.endpoint.enabled=true
# 启动和关闭策略操作端点的验证SPEL表达式方法。缺失则默认为true
# 该端点方法使用Spring StandardEvaluationContext类,StandardEvaluationContext支持全部的Spel语法且功能齐全,但GitHub Security报告其存在一定的注入风险,推荐使用SimpleEvaluationContext,而SimpleEvaluationContext并不能满足当前框架的需求
# 如果未使用验证SPEL表达式方法,可以通过下面开关关闭在方法在策略端点上的暴露,规避风险
spring.application.admin.strategy.endpoint.validate-expression.enabled=true

关闭和重用Swagger

如果业务服务引入了集成Swagger组件版的管理中心,也提供关闭Swagger的功能,同时也可以通过自定义重用框架内置的Swagger模块的方式,业务服务不需要再写Swagger自动装配类

具体用法,请参考




2017-2050 ©Nepxion Studio Apache License

           

Total visits

讲义篇

集成篇

概念篇

实践篇

功能篇

配置篇

扩展篇

测试篇

升级篇

贡献篇

Clone this wiki locally