6.17.0(SEP 30, 2022)
发布日志
发布策略
提醒:版本号右边, ↑
表示>=该版本号, ↓
表示<=该版本号
表示维护中 | 表示不维护,但可用,强烈建议升级 | 表示不维护,不可用,已废弃
- 8.x.x版本(适用于2021.x.x)将继续维护
- 7.x.x版本(适用于2020.x.x)将继续维护
- 6.x.x版本(同时适用于Finchley、Greenwich和Hoxton)将继续维护
- 5.x.x版本(适用于Greenwich)已废弃
- 4.x.x版本(适用于Finchley)已废弃
- 3.x.x版本(适用于Edgware)不维护,但可用,强烈建议升级
- 2.x.x版本(适用于Dalston)已废弃
- 1.x.x版本(适用于Camden)已废弃
版本变更
无
功能迭代
新增运维平台进行蓝绿灰度发布接口
基于简化版的Json格式,实现蓝绿灰度发布
① 新增创建版本蓝绿灰度发布接口
String createVersionRelease(String group, ConditionStrategy conditionStrategy);
String createVersionRelease(String group, String serviceId, ConditionStrategy conditionStrategy);
Json格式如下:
- 兜底策略
{
"service": ["discovery-guide-service-a", "discovery-guide-service-b"]
}
- 蓝绿发布策略
{
"service": ["discovery-guide-service-a", "discovery-guide-service-b"],
"blueGreen": [
{
"expression": "#H['a'] == '1'",
"route": "green"
},
{
"expression": "#H['a'] == '2'",
"route": "blue"
}
]
}
- 灰度发布策略
{
"service": ["discovery-guide-service-a", "discovery-guide-service-b"],
"gray": [
{
"weight": [0, 100]
}
]
}
② 新增解析版本蓝绿灰度发布接口
String parseVersionRelease(ConditionStrategy conditionStrategy);
③ 新增清除蓝绿灰度发布接口
String clearRelease(String group);
String clearRelease(String group, String serviceId);
更多详情,请参考https://github.com/Nepxion/Discovery/wiki/
的如何对接DevOps运维平台实施蓝绿灰度发布最佳企业级实践
新增运维平台进行故障转移API接口
① 新增创建故障转移接口
String createFailover(FailoverType failoverType, String group, String failoverValue);
String createFailover(FailoverType failoverType, String group, String serviceId, String failoverValue);
② 新增清除故障转移接口
String clearFailover(String group, FailoverType failoverType);
String clearFailover(String group, String serviceId, FailoverType failoverType);
新增运维平台进行无损下线API接口
① 新增屏蔽黑名单接口。除了IP地址和端口外,增加直接添加serviceUUId
的接口
该两个接口不仅可以支持单个UUId,也可以支持UUId的通配。例如:
- A服务有两个实例,实例1的UUId为
20220920-113301-033-4289-533-056
,实例2的UUId为20220920-113259-190-5762-550-884
,代表它们同一天2022年09月20日
上线 - 通过
20220920*
通配符的方式,表示屏蔽2022年09月20日
上线的指定服务的所有实例,如果希望更精确,20220920-11*
,表示屏蔽2022年09月20日11点
上线的指定服务的所有实例
String addBlacklist(String group, String targetServiceId, String targetServiceUUId);
String addBlacklist(String group, String serviceId, String targetServiceId, String targetServiceUUId);
② 新增清除黑名单接口
boolean clearBlacklist(String group);
boolean clearBlacklist(String group, String serviceId);
新增运维平台进行网关动态路由API接口
boolean updateRemoteRoute(GatewayType gatewayType, String group, String serviceId, String route);
boolean clearRemoteRoute(GatewayType gatewayType, String group, String serviceId);
String getRemoteRoute(GatewayType gatewayType, String group, String serviceId);
新增运维平台进行Sentinel限流熔断API接口
boolean updateRemoteSentinel(SentinelRuleType ruleType, String group, String serviceId, String rule);
boolean clearRemoteSentinel(SentinelRuleType ruleType, String group, String serviceId);
String getRemoteSentinel(SentinelRuleType ruleType, String group, String serviceId);
新增运维平台进行规则配置对象获取API接口
boolean updateRemoteRuleEntity(String group, String serviceId, RuleEntity ruleEntity) throws Exception;
RuleEntity getRemoteRuleEntity(String group, String serviceId) throws Exception;
新增运维平台进行流量侦测API接口
String inspect(String protocol, String portalId, String contextPath, String services);
新增UUId和AppId作为路由侦测的属性
gateway
-> [ID=discovery-guide-service-a][UID=20220920-113259-190-5762-550-884][AID=11798][T=service][P=Nacos][H=192.168.31.237:3002][V=1.1][R=qa][E=common][Z=zone2][G=discovery-guide-group][A=true][TID=6f6addfd51494ff6][SID=403c9410afcfae78]
-> [ID=discovery-guide-service-b][UID=20220920-113300-733-9197-181-332][AID=11799][T=service][P=Nacos][H=192.168.31.237:4002][V=1.1][R=dev][E=common][Z=zone2][G=discovery-guide-group][A=false][TID=6f6addfd51494ff6][SID=517d61bdbb2013b1]
AppId是Apollo配置中心独有的,如果使用的不是Apollo配置中心,将不会显示这个属性
补全运维接口数据
- 补全InstanceEntity属性,暴露给运维平台的接口数据更加齐全
- 暴露注册到元数据的AppID给运维平台
- 为避免注册中心元数据冲突,app_id更名为spring_application_app_id,使其与spring_application_name和spring_application_uuid统一
增加服务端点精细化控制
增加新的开关配置
# 启动和关闭服务相关操作端点。缺失则默认为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
去除旧的无意义的开关配置
# 开启和关闭服务注册层面的控制。一旦关闭,服务注册的黑/白名单过滤功能将失效,最大注册数的限制过滤功能将失效。缺失则默认为true
spring.application.register.control.enabled=true
# 开启和关闭服务发现层面的控制。一旦关闭,服务多版本调用的控制功能将失效,动态屏蔽指定IP地址的服务实例被发现的功能将失效。缺失则默认为true
spring.application.discovery.control.enabled=true
# 开启和关闭通过Rest方式对规则配置的控制和推送。一旦关闭,只能通过远程配置中心来控制和推送。缺失则默认为true
spring.application.config.rest.control.enabled=true
去除不成熟的负载均衡时找不到服务的重试功能
去除开关配置
# 负载均衡下,消费端尝试获取对应提供端初始服务实例列表为空的时候,进行重试。缺失则默认为false
spring.application.no.servers.retry.enabled=false
# 负载均衡下,消费端尝试获取对应提供端初始服务实例列表为空的时候,进行重试的次数。缺失则默认为5
spring.application.no.servers.retry.times=5
# 负载均衡下,消费端尝试获取对应提供端初始服务实例列表为空的时候,进行重试的时间间隔。缺失则默认为2000
spring.application.no.servers.retry.await.time=2000
增强和优化Swagger
除了提供基本的Swagger功能之外,内置模块还对使用者提供扩展
自定义Swagger接口利用内置的SwaggerConfiguration来初始化,这样使用者可以不需要定义自己的SwaggerConfiguration。通过如下配置实现
# 启动和关闭Swagger。缺失则默认为true
swagger.enabled=true
# 业务服务Swagger Docket组名
swagger.service.group=Your group
# 业务服务Swagger扫描目录
swagger.service.packages=your-package1;your-package2
# 业务服务Swagger描述
swagger.service.description=Your service Restful APIs
# 业务服务Swagger版本
swagger.service.version=1.0.0
# 业务服务Swagger License名称
swagger.service.license.name=Apache License 2.0
# 业务服务Swagger License链接
swagger.service.license.url=http://www.apache.org/licenses/LICENSE-2.0
# 业务服务Swagger联系人名称
swagger.service.contact.name=Nepxion
# 业务服务Swagger联系人网址
swagger.service.contact.url=https://github.com/Nepxion/Discovery
# 业务服务Swagger联系人邮件
[email protected]
# 业务服务Swagger服务条件网址
swagger.service.termsOfService.url=http://nepxion.com/discovery
增加蓝绿灰度混合发布自动化测试用例
重构优化
- 优化PluginAdapter
- 优化InstanceEntityWrapper
- 优化和精简元数据Metadata
缺陷修复
无
相关发布
DiscoveryAgent发布
无
DiscoveryDesktop发布
无
相关下载
DiscoveryAgent下载
访问https://github.com/Nepxion/DiscoveryAgent/releases
获取最新版本
DiscoveryDesktop下载
访问https://github.com/Nepxion/DiscoveryDesktop/releases
获取最新版本