# DiscoveryPlatform **Repository Path**: rockyhua/DiscoveryPlatform ## Basic Information - **Project Name**: DiscoveryPlatform - **Description**: ☀️ Nepxion DiscoveryPlatform is a platform for Nepxion Discovery with service governance, blue green and gray release orchestration, modelling, flow inspection 服务治理、蓝绿灰度发布编排建模、流量侦测的平台 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: feature - **Homepage**: http://www.nepxion.com - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 48 - **Created**: 2021-11-11 - **Last Updated**: 2021-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![](http://nepxion.gitee.io/discovery/docs/discovery-doc/Banner.png) # Discovery【探索】云原生微服务解决方案 ![Total visits](https://visitor-badge.laobi.icu/badge?page_id=Nepxion&title=total%20visits) [![Total lines](https://tokei.rs/b1/github/Nepxion/Discovery?category=lines)](https://tokei.rs/b1/github/Nepxion/Discovery?category=lines) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?label=license)](https://github.com/Nepxion/Discovery/blob/6.x.x/LICENSE) [![Maven Central](https://img.shields.io/maven-central/v/com.nepxion/discovery.svg?label=maven)](https://search.maven.org/artifact/com.nepxion/discovery) [![Javadocs](http://www.javadoc.io/badge/com.nepxion/discovery-plugin-framework-starter.svg)](http://www.javadoc.io/doc/com.nepxion/discovery-plugin-framework-starter) [![Build Status](https://travis-ci.org/Nepxion/Discovery.svg?branch=6.x.x)](https://travis-ci.org/Nepxion/Discovery) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/5c42eb719ef64def9cad773abd877e8b)](https://www.codacy.com/gh/Nepxion/Discovery/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Nepxion/Discovery&utm_campaign=Badge_Grade) [![Stars](https://img.shields.io/github/stars/Nepxion/Discovery.svg?label=Stars&tyle=flat&logo=GitHub)](https://github.com/Nepxion/Discovery/stargazers) [![Stars](https://gitee.com/Nepxion/Discovery/badge/star.svg?theme=gvp)](https://gitee.com/Nepxion/Discovery/stargazers) [![Spring Boot](https://img.shields.io/maven-central/v/org.springframework.boot/spring-boot-dependencies.svg?label=Spring%20Boot&logo=Spring)](https://search.maven.org/artifact/org.springframework.boot/spring-boot-dependencies) [![Spring Cloud](https://img.shields.io/maven-central/v/org.springframework.cloud/spring-cloud-dependencies.svg?label=Spring%20Cloud&logo=Spring)](https://search.maven.org/artifact/org.springframework.cloud/spring-cloud-dependencies) [![Spring Cloud Alibaba](https://img.shields.io/maven-central/v/com.alibaba.cloud/spring-cloud-alibaba-dependencies.svg?label=Spring%20Cloud%20Alibaba&logo=Spring)](https://search.maven.org/artifact/com.alibaba.cloud/spring-cloud-alibaba-dependencies) [![Nepxion Discovery](https://img.shields.io/maven-central/v/com.nepxion/discovery.svg?label=Nepxion%20Discovery&logo=Anaconda)](https://search.maven.org/artifact/com.nepxion/discovery) [![Discovery PPT](https://img.shields.io/badge/Discovery%20-PPT-brightgreen?logo=Microsoft%20PowerPoint)](http://nepxion.gitee.io/discovery/docs/link-doc/discovery-ppt.html) [![Discovery WIKI](https://img.shields.io/badge/Discovery%20-WIKI-brightgreen?logo=Microsoft%20Edge)](http://nepxion.gitee.io/discovery/) [![Discovery Platform WIKI](https://img.shields.io/badge/Discovery%20Platform%20-WIKI-brightgreen?logo=Microsoft%20Edge)](http://nepxion.gitee.io/discoveryplatform) [![Polaris WIKI](https://img.shields.io/badge/Polaris%20-WIKI-brightgreen?logo=Microsoft%20Edge)](http://polaris-paas.gitee.io/polaris-sdk)             如果您觉得本框架具有一定的参考价值和借鉴意义,请帮忙在页面右上角 [**Star**] ![](http://nepxion.gitee.io/discovery/docs/icon-doc/star1.png) 首席作者简介 - Nepxion开源社区创始人 - 2020年阿里巴巴中国云原生峰会出品人 - 2020年被Nacos和Spring Cloud Alibaba纳入相关开源项目 - 2021年阿里巴巴技术峰会上海站演讲嘉宾 - 2021年荣获陆奇博士主持的奇绩资本,进行风险投资的关注和调研 - 2021年入选Gitee最有价值开源项目 - Nacos Group Member、Spring Cloud Alibaba Member - Spring Cloud Alibaba、Nacos、Sentinel、OpenTracing Committer & Contributor ![](http://nepxion.gitee.io/discovery/docs/icon-doc/star4.png) 商业化合作 ① Discovery系列 | 框架名称 | 框架版本 | 支持Spring Cloud版本 | 使用许可 | | --- | --- | --- | --- | | Discovery | 1.x.x ~ 6.x.x | Camden ~ Hoxton | 开源,永久免费 | | DiscoveryX | 7.x.x | 202x | 闭源,商业许可 | ② Polaris系列 Polaris为Discovery高级定制版,特色功能 - 基于Nepxion Discovery集成定制 - 多云、多活、多机房流量调配 - 跨云动态域名、跨环境适配 - DCN、DSU、SET单元化部署 - 组件灵活装配、配置对外屏蔽 - 极简低代码PaaS平台 | 框架名称 | 框架版本 | 支持Discovery版本 | 支持Spring Cloud版本 | 使用许可 | | --- | --- | --- | --- | --- | | Polaris | 1.x.x | 6.x.x | Finchley ~ Hoxton | 闭源,商业许可 | | Polaris | 2.x.x | 7.x.x | 202x | 闭源,商业许可 | 有商业版需求的企业和用户,请添加微信1394997,联系作者,洽谈合作事宜 ![](http://nepxion.gitee.io/discovery/docs/discovery-doc/Logo64.png) Discovery【探索】企业级云原生微服务开源解决方案 ① 解决方案 - [解决方案WIKI版](http://nepxion.com/discovery) - [解决方案PPT版](http://nepxion.gitee.io/discovery/docs/link-doc/discovery-ppt.html) ② 平台界面 - [平台界面WIKI版](http://nepxion.com/discovery-platform) ③ 快速入门 - [快速入门Github版](https://github.com/Nepxion/Discovery/wiki) - [快速入门Gitee版](https://gitee.com/Nepxion/Discovery/wikis/pages) ④ 框架源码 - [框架源码Github版](https://github.com/Nepxion/Discovery) - [框架源码Gitee版](https://gitee.com/Nepxion/Discovery) ⑤ 指南示例源码 - [指南示例源码Github版](https://github.com/Nepxion/DiscoveryGuide) - [指南示例源码Gitee版](https://gitee.com/Nepxion/DiscoveryGuide) ⑥ 指南示例说明 - 对于入门级玩家,参考[6.x.x指南示例极简版](https://github.com/Nepxion/DiscoveryGuide/tree/6.x.x-simple),分支为6.x.x-simple - 对于熟练级玩家,参考[6.x.x指南示例精进版](https://github.com/Nepxion/DiscoveryGuide/tree/6.x.x),分支为6.x.x。除上述《极简版》功能外,涉及到指南篇里的绝大多数高级功能 - 对于骨灰级玩家,参考[6.x.x指南示例高级版](https://github.com/Nepxion/DiscoveryGuide/tree/6.x.x-complex),分支为6.x.x-complex。除上述《精进版》功能外,涉及到指南篇里的ActiveMQ、MongoDB、RabbitMQ、Redis、RocketMQ、MySQL等高级调用链和蓝绿灰度调用链的整合 - 上述指南实例分支是针对Spring Cloud旧版本。对于Spring Cloud 202x版本,参考[7.x.x指南示例精进版](https://github.com/Nepxion/DiscoveryGuide/tree/master),分支为master ![](http://nepxion.gitee.io/discovery/docs/polaris-doc/Logo64.png) Polaris【北极星】企业级云原生微服务商业解决方案 ① 解决方案 - [解决方案WIKI版](http://nepxion.com/polaris) ② 框架源码 - [框架源码Github版](https://github.com/polaris-paas/polaris-sdk) - [框架源码Gitee版](https://gitee.com/polaris-paas/polaris-sdk) ③ 指南示例源码 - [指南示例源码Github版](https://github.com/polaris-paas/polaris-guide) - [指南示例源码Gitee版](https://gitee.com/polaris-paas/polaris-guide) ④ 指南示例说明 - Spring Cloud旧版本,参考[1.x.x指南示例](https://github.com/polaris-paas/polaris-guide/tree/1.x.x),分支为1.x.x - Spring Cloud新版本,参考[2.x.x指南示例](https://github.com/polaris-paas/polaris-guide/tree/master),分支为master ![](http://nepxion.gitee.io/discovery/docs/icon-doc/Logo64.png) Discovery【探索】和Polaris【北极星】架构体系 ① Discovery【探索】和Polaris【北极星】联合架构图 ![](http://nepxion.gitee.io/discovery/docs/polaris-doc/Architecture.jpg) ② Discovery【探索】和Polaris【北极星】联合拓扑图 ![](http://nepxion.gitee.io/discovery/docs/polaris-doc/Topology.jpg) ③ Polaris【北极星】分层架构图 ![](http://nepxion.gitee.io/discovery/docs/polaris-doc/Layer.jpg) ④ Discovery【探索】实施方案图 ![](http://nepxion.gitee.io/discovery/docs/polaris-doc/All.jpg) ⑤ Discovery【探索】域网关实施图 ![](http://nepxion.gitee.io/discovery/docs/polaris-doc/DomainEnable.jpg) ⑥ Discovery【探索】非域网关实施图 ![](http://nepxion.gitee.io/discovery/docs/polaris-doc/DomainDisable.jpg) ⑦ Discovery【探索】全局订阅实施图 ![](http://nepxion.gitee.io/discovery/docs/polaris-doc/GlobalSub.jpg) ⑧ Discovery【探索】配置中心发布订阅图 ![](http://nepxion.gitee.io/discovery/docs/polaris-doc/Config.jpg) ## 简介 ### 功能概述 Nepxion Discovery Platform基于Nepxion Discovery 6.x.x版和Spring Cloud Hoxton版制作,也支持和兼容Spring Cloud Edgware版 ~ 202x版接入,支持如下功能 - 支持四个注册中心 - 支持六个配置中心 - 支持MySQL数据库和H2内存数据库,用户可以无缝扩展到其它数据库(例如,Oracle) - 支持数据库方式登录和Ldap方式登录 - 支持Shiro和JWT的登录以及鉴权 - 支持管理员/角色/权限配置 - 支持页面配置,在线添加、删除、修改各类中间件主页或者业务系统主页的集成以及跳转 - 支持蓝绿灰度链路编排 - 支持链路单写数据,采用类似Apollo版本控制模式,界面标识增/删/改标识,通过发布方式达到数据库和配置中心最终数据一致性 - 支持版本和区域维度链路编排 - 支持蓝绿灰度混合发布 - 支持蓝绿灰度策略双写数据库和配置中心,采用类似Apollo版本控制模式,界面标识增/删/改标识,通过发布方式达到数据库和配置中心最终数据一致性 - 支持版本和区域维度蓝绿灰度 - 支持蓝绿灰度策略启用/禁用模式 - 支持蓝绿灰度策略多实例动态路由一致性检查 - 支持网关、服务、组为入口 - 支持全局兜底、蓝绿兜底、灰度兜底策略编排 - 支持无限级蓝绿灰度策略编排 - 支持自定义蓝绿条件策略 - 支持蓝绿条件策略校验 - 支持内置Header - 支持双网关动态路由 - 支持网关动态路由双写数据库和配置中心,采用类似Apollo版本控制模式,界面标识增/删/改标识,通过发布方式达到数据库和配置中心最终数据一致性 - 支持网关动态路由启用/禁用模式 - 支持网关动态路由多实例一致性检查 - 支持Spring Cloud Gateway内置断言器(基于Path、Host、Header、Cookie、Query、Method、RemoteAddr、Weight等无代码方式)和过滤器(基于StripPrefix、PrefixPath、RewritePath、RequestRateLimiter、CircuitBreaker、AddRequestHeader、AddRequestParameter、AddResponseHeader、RedirectTo等无代码方式) - 支持用户自定义断言器和过滤器,可以实现类似Access Token、网页访问黑/白名单,自定义用户数据(List和Map结构)过滤等低代码方式 - 支持Zuul网关内置动态路由 - 支持服务负载屏蔽的黑名单实例摘除 - 支持黑名单双写数据库和配置中心,采用类似Apollo版本控制模式,界面标识增/删/改标识,通过发布方式达到数据库和配置中心最终数据一致性 - 支持黑名单启用/禁用模式 - 支持黑名单多实例一致性检查 - 基于时间戳前缀的全局唯一ID黑名单 - 基于IP地址和端口黑名单 - 支持界面显示所连的注册中心和配置中心 请访问[https://github.com/Nepxion/DiscoveryPlatform](https://github.com/Nepxion/DiscoveryPlatform)获取源码和示例 ### 郑重致谢 感谢如下小伙伴参与本平台的开发、测试和部署。下面名单根据加入次序进行排序 - 张宁 - 付向阳 - 刘辉 - 赵胜杰 - 任学会 - 肖龙 - 伊安娜 ### 请联系我 微信、钉钉、公众号和文档 ![](http://nepxion.gitee.io/discovery/docs/contact-doc/wechat-1.jpg)![](http://nepxion.gitee.io/discovery/docs/contact-doc/dingding-1.jpg)![](http://nepxion.gitee.io/discovery/docs/contact-doc/gongzhonghao-1.jpg)![](http://nepxion.gitee.io/discovery/docs/contact-doc/document-1.jpg) ## 目录 - [简介](#简介) - [功能概述](#功能概述) - [郑重致谢](#郑重致谢) - [请联系我](#请联系我) - [工程架构](#工程架构) - [工程清单](#工程清单) - [配置清单](#配置清单) - [架构核心](#架构核心) - [依赖引入](#依赖引入) - [环境搭建](#环境搭建) - [云环境体验](#云环境体验) - [云环境平台登录](#云环境平台登录) - [云环境调用验证](#云环境调用验证) - [本地环境搭建](#本地环境搭建) - [运行示例](#运行示例) - [启动平台](#启动平台) - [本地环境平台登录](#本地环境平台登录) - [本地环境调用验证](#本地环境调用验证) - [平台登录](#平台登录) - [主页](#主页) - [服务发布](#服务发布) - [链路编排](#链路编排) - [新增链路](#新增链路) - [发布链路](#发布链路) - [删除链路](#删除链路) - [编辑链路](#编辑链路) - [蓝绿灰度发布](#蓝绿灰度发布) - [新增蓝绿灰度](#新增蓝绿灰度) - [发布蓝绿灰度](#发布蓝绿灰度) - [删除蓝绿灰度](#删除蓝绿灰度) - [编辑蓝绿灰度](#编辑蓝绿灰度) - [启用和禁用蓝绿灰度](#启用和禁用蓝绿灰度) - [查看蓝绿灰度拓扑图](#查看蓝绿灰度拓扑图) - [查看正在工作的蓝绿灰度](#查看正在工作的蓝绿灰度) - [流量侦测](#流量侦测) - [实例管理](#实例管理) - [实例信息](#实例信息) - [实例摘除](#实例摘除) - [新增黑名单](#新增黑名单) - [发布黑名单](#发布黑名单) - [删除黑名单](#删除黑名单) - [启用和禁用黑名单](#启用和禁用黑名单) - [查看正在工作的黑名单](#查看正在工作的黑名单) - [路由配置](#路由配置) - [Gateway网关路由](#Gateway网关路由) - [新增Gateway网关路由](#新增Gateway网关路由) - [发布Gateway网关路由](#发布Gateway网关路由) - [删除Gateway网关路由](#删除Gateway网关路由) - [编辑Gateway网关路由](#编辑Gateway网关路由) - [启用和禁用Gateway网关路由](#启用和禁用Gateway网关路由) - [查看正在工作的Gateway网关路由](#查看正在工作的Gateway网关路由) - [Zuul网关路由](#Zuul网关路由) - [新增Zuul网关路由](#新增Zuul网关路由) - [发布Zuul网关路由](#发布Zuul网关路由) - [删除Zuul网关路由](#删除Zuul网关路由) - [编辑Zuul网关路由](#编辑Zuul网关路由) - [启用和禁用Zuul网关路由](#启用和禁用Zuul网关路由) - [查看正在工作的Zuul网关路由](#查看正在工作的Zuul网关路由) - [基础应用](#基础应用) - [系统设置](#系统设置) - [页面设置](#页面设置) - [授权配置](#授权配置) - [管理员配置](#管理员配置) - [新增管理员](#新增管理员) - [删除管理员](#删除管理员) - [编辑管理员](#编辑管理员) - [重置管理员密码](#重置管理员密码) - [角色配置](#角色配置) - [新增角色](#新增角色) - [删除角色](#删除角色) - [编辑角色](#编辑角色) - [权限配置](#权限配置) - [Star走势图](#Star走势图) ## 工程架构 ### 工程清单 | 工程名 | 描述 | | --- | --- | | discovery-platform-server | 平台服务端模块目录 | |    discovery-platform-starter-server | 平台服务端的Starter | |    discovery-platform-starter-server-mysql | 平台服务端数据库MySQL插件的Starter | |    discovery-platform-starter-server-h2 | 平台服务端H2插件的Starter| |    discovery-platform-starter-server-ldap | 平台服务端Ldap插件的Starter| |    discovery-platform-starter-server-ui | 平台服务端界面 | | discovery-platform-client | 平台服务端模块目录 | |    discovery-platform-starter-client | 平台客户端的Starter | | discovery-platform-common | 平台通用模块目录 | |    discovery-platform-starter-common-dingding | 封装钉钉通用操作逻辑的Starter | |    discovery-platform-starter-common-mail | 封装邮件通用操作逻辑的Starter | | discovery-platform-application | 平台服务端可执行应用 | ### 配置清单 配置文件位于discovery-platform-application/目录下 | 配置文件 | 描述 | | --- | --- | | pom.xml | 切换注册中心、配置中心、数据库等依赖引入 | | src/main/resources/bootstrap.properties | 平台微服务配置,例如:注册中心和配置中心等跟微服务相关的配置 | | src/main/resources/application.properties | 平台通用配置,例如:JWT和Ldap等配置 | | src/main/resources/application-mysql.properties | 平台MySQL数据库、HikariCP连接池配置 | | src/main/resources/application-h2.properties | 平台H2内存数据库、HikariCP链接池配置 | | src/main/resources/META-INF/schema-mysql.sql | 平台MySQL数据库创库脚本 | | src/main/resources/META-INF/schema-h2.sql | 平台H2内存数据库创库脚本 | ### 架构核心 ![](http://nepxion.gitee.io/discovery/docs/polaris-doc/Platform.jpg) ### 依赖引入 ① 服务注册发现依赖引入 服务注册发现中间件的四个插件,必须引入其中一个 ```xml com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery ``` ② 配置中心依赖引入 配置中心中间件的六个插件,选择引入其中一个 ```xml com.nepxion discovery-console-starter-nacos ``` ③ 数据库依赖引入 MySQL数据库和H2内存数据库,选择引入其中一个 ```xml com.nepxion discovery-platform-starter-server-mysql ``` ④ Ldap依赖引入 如果使用者希望通过Ldap方式登录平台,那么需要引入如下依赖 ```xml com.nepxion discovery-platform-starter-server-ldap ``` ## 环境搭建 使用者可以直接使用云环境进行体验,也可以通过本地环境搭建进行体验 ### 云环境体验 #### 云环境服务注册发现和配置中心 采用Nacos作为服务注册发现和配置中心 [http://218.78.55.64:8848/nacos](http://218.78.55.64:8848/nacos) #### 云环境平台登录 浏览器上输入[http://218.78.55.64:6001/platform](http://218.78.55.64:6001/platform),初始用户名和密码为admin/admin 登录页面底部为重要的链接以及快速联系我们的方式 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Login.jpg) #### 云环境调用验证 通过改变Http Parameter参数验证蓝绿灰度等一系列功能,例如,在浏览器上输入如下地址,根据a值的改变,观测返回的调用结果是否符合预期 [http://218.78.55.64:5001/discovery-guide-service-a/invoke/gateway?a=1](http://218.78.55.64:5001/discovery-guide-service-a/invoke/gateway?a=1) ### 本地环境搭建 #### 运行示例 参考《如何快速搭建和运行示例》的Wiki文章 [Gitee Wiki](https://gitee.com/Nepxion/Discovery/wikis/pages?sort_id=4034835&doc_id=1124387) [Github Wiki](https://gitee.com/Nepxion/Discovery/wikis/pages?sort_id=4034835&doc_id=1124387) #### 启动平台 使用者可以复制discovery-platform-application目录单独导入IDE或者编译成可执行包运行 选择下面其中一个运行,需要实现确认相关配置的正确性 - PlatformMySqlApplication.java,基于MySql数据库的运行入口 - PlatformH2Application.java,基于H2内存数据库的运行入口 ![](http://nepxion.gitee.io/discovery/docs/icon-doc/tip.png) 提醒:基于H2内存数据库模式的平台,需要事先启动H2内存数据库服务器,从如下链接下载、安装并运行 [http://h2database.com/html/download.html](http://h2database.com/html/download.html) #### 本地环境平台登录 参考[云环境平台登录](#云环境平台登录),把IP地址改成localhost即可 #### 本地环境调用验证 参考[云环境调用验证](#云环境调用验证),把IP地址改成localhost即可 ## 主页 ## 服务发布 ### 链路编排 链路编排,即在全链路蓝绿发布或者灰度发布的过程中,把若干个服务的实例按照版本/区域维度实现编排成N个逻辑链路。举个例子,根据生产环境上服务的版本新旧,编排成新版本链路和旧版本链路,供蓝绿发布进行条件驱动,或者供灰度发布进行百分比驱动 链路编排功能引入,具有如下的意义 - 蓝绿发布和灰度发布混合实施的时候,编排的链路可以供两种发布规则策略共享 - 蓝绿发布和灰度发布结束后,使用者不需要删除发布的规则策略,而是`禁用`它,以便于下一轮发布,不再重复配置,只需要`开启`它,并`发布`即可 - 蓝绿发布和灰度发布下一轮开始时,条件策略等未改变,只是改变链路中的服务列表,使用者只需要直接编辑`链路编排`中的相关链路,并`发布`即可 导航栏上选择〔服务发布〕/〔链路编排〕,进入链路编排界面 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/RouteArrange-1.jpg) #### 新增链路 ①〔链路编排〕界面的工具栏上,点击 按钮,弹出相应的对话框 ② 产生〔链路标识〕 链路标识由系统自动产生,格式为route-`序号`,全局唯一,它将作为蓝绿灰度发布时候被策略绑定的唯一标识 ③ 确定〔策略类型〕 策略类型,包括`版本`和`区域`。如果选择`版本`,则按照`版本`维度进行链路编排;如果选择`区域`,则按照`区域`维度进行链路编排。下文以〔版本〕为例 ④ 编辑链路列表 包括如下步骤 - 选择〔服务名〕,通过下拉的服务列表进行选择,使用者也可以通过手工输入自动匹配方式进行选择 - 选择〔版本〕,通过下拉的版本号列表进行选择,使用者也可以通过手工输入自动匹配方式进行选择 - 刷新链路〔服务名〕和〔版本〕下拉列表,点击〔操作〕列下的 按钮进行刷新 - 增加链路,点击〔操作〕列下的 按钮进行增加 - 删除链路,点击〔操作〕列下的 按钮进行删除 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/RouteArrange-2.jpg) ⑤ 执行保存 上述操作执行完毕后,点击 按钮进行保存 #### 发布链路 执行保存后,主界面会把该条数据进行标识,〔状态〕列上显示 ,〔链路标识〕列上显示 〔链路编排〕界面的工具栏上,点击 按钮进行发布 执行发布后,主界面会把该条数据进行标识,〔状态〕列上显示 ![](http://nepxion.gitee.io/discovery/docs/icon-doc/tip.png) 提醒:一般情况下,新增链路不需要执行发布,当蓝绿灰度发布的时候,会连带执行链路发布。但是,当链路进行了修改的时候,可以通过链路发布自下而上进行蓝绿灰度发布 #### 删除链路 〔链路编排〕界面的表格上,打勾选择需要删除的一项或者多项 〔链路编排〕界面的工具栏上,点击 按钮进行删除 执行删除后,主界面会把该条数据进行标识,〔状态〕列上显示 ,〔链路标识〕列上显示 接下去执行[发布链路](#发布链路) ![](http://nepxion.gitee.io/discovery/docs/icon-doc/tip.png) 提醒:当链路被蓝绿灰度绑定的时候,不能执行删除 #### 编辑链路 〔链路编排〕界面的表格上,点击〔操作〕列下的 按钮进行编辑,操作模式和过程与[新增链路](#新增链路)类似 执行编辑后,主界面会把该条数据进行标识,〔状态〕列上显示 ,〔入口名称〕列上显示 接下去执行[发布链路](#发布链路) ### 蓝绿灰度 导航栏上选择〔服务发布〕/〔蓝绿灰度〕,进入蓝绿灰度发布界面 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/BlueGreenGray-1.jpg) #### 新增蓝绿灰度 ①〔蓝绿灰度〕界面的工具栏上,点击 或者 按钮,弹出相应的对话框。下文以〔版本蓝绿灰度〕为例 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/BlueGreenGray-2.jpg) ② 确定〔入口类型〕和〔入口名称〕 入口类型,包括`网关`、`服务`和`组`,使用者在三个选项中选择一个,大多数场景会采用`网关`为入口类型 - `网关`和`服务`属于局部订阅模式,即把蓝绿灰度的规则策略推送到指定的网关或者服务上,只有`入口名称`下拉框所选择的网关(或者服务)才能订阅该规则策略 - `组`属于全局订阅模式,即把蓝绿灰度的规则策略推送到指定的组上,只有`入口名称`下拉框所选择的组下的所有网关和服务才能订阅该规则策略 入口名称,通过下拉的网关、服务或者组列表进行选择,使用者也可以通过手工输入自动匹配方式进行选择。使用者可以通过右边的 按钮进行刷新 ③ 添加和删除策略 策略,包括`全局兜底策略`、`蓝绿兜底策略`、`蓝绿策略`、`灰度兜底策略`和`灰度策略`,平台默认给出一个`蓝绿兜底策略`和两个`蓝绿策略`的经典场景,使用者可以根据实际场景,增加和删除策略 兜底策略和非兜底策略的区别是,前者不带条件驱动,后者带条件驱动。为增加不同策略的辨识度,每个选项卡上前置图标用来区分,参考下表 | 图标 | 标识 | | --- | --- | | | 兜底策略 | | | 蓝绿策略 | | | 灰度策略 | ![](http://nepxion.gitee.io/discovery/docs/icon-doc/tip.png) 提醒:所有`全局兜底策略`、`蓝绿兜底策略`和`灰度兜底策略`可以缺失,但只能生效一个;`蓝绿策略`和`灰度策略`可以缺失,但可以无数个。这五种策略的执行逻辑和优先级,参考如下的蓝绿灰度混合发布执行逻辑图 ![](http://nepxion.gitee.io/discovery/docs/discovery-doc/Strategy.jpg) 〔策略配置〕工具栏上,点击如下按钮进行相关操作 1.〔添加全局兜底策略〕,点击 按钮,添加全局兜底策略 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/BlueGreenGray-3.jpg) 〔链路选取〕在[链路编排](#链路编排)中创建的链路标识,通过下拉的列表进行选择,使用者也可以通过手工输入自动匹配方式进行选择。使用者可以通过右边的 按钮进行刷新 2.〔添加蓝绿兜底策略〕,点击 按钮,添加蓝绿兜底策略 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/BlueGreenGray-4.jpg) 操作模式和过程跟`〔添加全局兜底策略〕`一致 3.〔添加蓝绿策略〕,点击 按钮,添加蓝绿策略。当使用者每添加一个蓝绿策略,选项卡会自动在蓝绿策略标题后数字加一 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/BlueGreenGray-5.jpg) 蓝绿策略配置,包括`条件设置`和`链路选取`两部分 `条件设置`,包括如下步骤 - 输入〔参数名〕,参数名即进行条件驱动的`Header`、`Parameter`、`Cookie`参数 - 选择〔运算符〕,通过下拉的运算符列表进行选择,包括等于`=`、不等于`!=`、大于`>`、大于等于`>=`、小于`<`、小于等于`<=`、匹配`matches`七种运算符 - 选择〔关系符〕,通过下拉的关系符进行选择,包括与`and`、或`or`两种关系符 - 输入〔值〕,值即进行条件驱动的`Header`、`Parameter`、`Cookie`参数的值 - 增加〔条件〕,点击〔操作〕列下的 按钮进行增加 - 删除〔条件〕,点击〔操作〕列下的 按钮进行删除 - 执行〔聚合〕条件,条件文本框里的表达式会通过上述操作自动聚合,如果一旦鼠标键盘事件事件问题,使用者也可以点击 按钮进行手工聚合 - 执行〔校验〕条件,当表达式组合项很多,使用者难以确定组合表达式是否正确,可以通过〔校验〕功能进行校验,点击 按钮弹出对话框,给参数赋值,看校验条件是否能通过 - 执行〔自定义条件〕,当上述〔运算符〕和〔关系符〕仍旧无法满足使用者的需求,那么使用者可以自定义条件,在条件文本框输入符合`Spel`规范的表达式即可 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/BlueGreenGray-6.jpg) `链路选取`,操作模式和过程跟`〔添加全局兜底策略〕`一致 4.〔添加灰度兜底策略〕,点击 按钮,添加灰度兜底策略 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/BlueGreenGray-7.jpg) 只需要〔流量配比〕若干条链路的百分比即可,包括如下步骤 - 选取在[链路编排](#链路编排)中创建的链路标识,通过下拉的列表进行选择,使用者也可以通过手工输入自动匹配方式进行选择。使用者可以通过右边的 按钮进行刷新 - 〔流量配比〕所选择链路,配比值必须是0 ~ 100的整数,所有链路的配比值加起来必须等于100 - 增加〔流量配比〕,点击〔操作〕列下的 按钮进行增加 - 删除〔流量配比〕,点击〔操作〕列下的 按钮进行删除 5.〔添加灰度策略〕,点击 按钮,添加灰度策略。当使用者每添加一个灰度策略,选项卡会自动在灰度策略标题后数字加一 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/BlueGreenGray-7.jpg) `条件设置`,操作模式和过程跟`〔添加蓝绿策略〕`一致;`流量配比`,操作模式和过程跟`〔添加灰度兜底策略〕`一致 6.〔删除策略〕,点击 按钮,删除当前选项卡上的策略 ⑥ 设置〔内置参数〕 当前版本内置参数仅支持`Header`,但内置`Header`也具备代替`Parameter`、`Cookie`的作用。内置参数的应用场景多见于定时服务的蓝绿灰度发布场景 内置参数配置包括如下步骤 - 输入〔请求头〕 - 输入〔值〕 - 增加〔内置参数〕,点击〔操作〕列下的 按钮进行增加 - 删除〔内置参数〕,点击〔操作〕列下的 按钮进行删除 ⑦ 执行保存 上述操作执行完毕后,点击 按钮进行保存 #### 发布蓝绿灰度 执行保存后,主界面会把该条数据进行标识,〔状态〕列上显示 ,〔入口名称〕列上显示 上述保存步骤,只是保存到数据库中,并未推送到配置中心,需要在〔蓝绿灰度〕界面的工具栏上,点击 按钮进行推送 执行发布后,主界面会把该条数据进行标识,〔状态〕列上显示 ![](http://nepxion.gitee.io/discovery/docs/icon-doc/tip.png) 提醒:任何增、删、改蓝绿灰度,最终都必须通过点击 按钮进行生效 #### 删除蓝绿灰度 〔蓝绿灰度〕界面的表格上,打勾选择需要删除的一项或者多项 〔蓝绿灰度〕界面的工具栏上,点击 按钮进行删除 执行删除后,主界面会把该条数据进行标识,〔状态〕列上显示 ,〔入口名称〕列上显示 接下去执行[发布蓝绿灰度](#发布蓝绿灰度) #### 编辑蓝绿灰度 〔蓝绿灰度〕界面的表格上,点击〔操作〕列下的 按钮进行编辑,操作模式和过程与[新增蓝绿灰度](#新增蓝绿灰度)类似,但〔入口类型〕和〔入口名称〕不可修改 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/BlueGreenGray-9.jpg) 执行编辑后,主界面会把该条数据进行标识,〔状态〕列上显示 ,〔入口名称〕列上显示 接下去执行[发布蓝绿灰度](#发布蓝绿灰度) #### 启用和禁用蓝绿灰度 〔蓝绿灰度〕界面的表格上,点击〔操作〕列下的 或者 按钮进行禁用或者启用 `禁用`只是清除配置中心对应的规则策略,并不删除数据库中的规则策略,以便下一次`启用` 执行禁用或者启用后,主界面会把该条数据进行标识,〔状态〕列上显示 ,〔入口名称〕列上显示 接下去执行[发布蓝绿灰度](#发布蓝绿灰度),主界面会把该条数据进行标识,〔状态〕列上显示 或者 #### 查看蓝绿灰度拓扑图 待补充 #### 查看正在工作的蓝绿灰度 〔蓝绿灰度〕界面的工具栏上,点击 按钮进行查看 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/BlueGreenGray-10.jpg) ① 选择〔入口类型〕和〔入口名称〕。使用者可以通过右边的 按钮进行刷新 ② 界面自动给出符合所选择的〔入口类型〕和〔入口名称〕的服务实例列表,通过选项卡方式呈现出所属该服务实例的规则策略。如果所有服务实例的规则策略是一致的,那么会给出 的一致性提示,否则给出不一致性提示 ![](http://nepxion.gitee.io/discovery/docs/icon-doc/tip.png) 提醒:一致性问题,可能是由于网络抖动、配置中心等多种原因,导致若干个服务实例订阅同一个配置,有些服务实例收到规则策略的更新,有些服务实例未收到规则策略的更新 ### 流量侦测 待补充 ## 实例管理 ### 实例信息 待补充 ### 实例摘除 #### 新增黑名单 ① 导航栏上选择〔实例管理〕/〔实例摘除〕,进入实例摘除配置界面。通过把服务实例放置到黑名单的方式达到服务实例摘除的目的 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Blacklist-1.jpg) ② 〔实例摘除〕界面的工具栏上,点击 按钮,弹出相应的对话框。黑名单类型,包括`UUID`(全局唯一ID)和`IP地址和端口`,使用者根据实际应用场景来选择 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Blacklist-2.jpg) #### 发布黑名单 〔实例摘除〕界面的工具栏上,点击 ,操作模式和过程与[发布蓝绿灰度](#发布蓝绿灰度)类似 #### 删除黑名单 〔实例摘除〕界面的工具栏上,点击 ,操作模式和过程与[删除蓝绿灰度](#删除蓝绿灰度)类似 #### 启用和禁用黑名单 操作模式和过程与[启用和禁用蓝绿灰度](#启用和禁用蓝绿灰度)类似 #### 查看正在工作的黑名单 〔实例摘除〕界面的工具栏上,点击 ,操作模式和过程与[查看正在工作的蓝绿灰度](#查看正在工作的蓝绿灰度)类似 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Blacklist-3.jpg) 截图不对,待补充 ## 路由配置 ### Gateway网关路由 #### 新增Gateway网关路由 ① 导航栏上选择〔路由配置〕/〔Gateway网关路由〕,进入Spring Cloud Gateway动态路由配置界面 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/RouteGateway-1.jpg) ② 〔Gateway网关路由〕界面的工具栏上,点击 按钮,弹出相应的对话框 根据Spring Cloud Gateway网关的官方配置规范,结合如下界面进行配置。其中,断言器和过滤器包括内置和自定义两种模式 内置断言器和过滤器模式是通过Spring Cloud Gateway网关内置相关类和解析模块来实现的,请参照界面提示进行配置 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/RouteGateway-2.jpg) 自定义断言器和过滤器是通过Spring Cloud Gateway网关使用者自定义和解析模块相关类来实现的,请参照界面提示进行配置 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/RouteGateway-3.jpg) #### 发布Gateway网关路由 〔Gateway网关路由〕界面的工具栏上,点击 ,操作模式和过程与[发布蓝绿灰度](#发布蓝绿灰度)类似 #### 删除Gateway网关路由 〔Gateway网关路由〕界面的工具栏上,点击 ,操作模式和过程与[删除蓝绿灰度](#删除蓝绿灰度)类似 #### 编辑Gateway网关路由 操作模式和过程与[编辑蓝绿灰度](#编辑蓝绿灰度)类似 #### 启用和禁用Gateway网关路由 操作模式和过程与[启用和禁用蓝绿灰度](#启用和禁用蓝绿灰度)类似 #### 查看正在工作的Gateway网关路由 〔Gateway网关路由〕界面的工具栏上,点击 ,操作模式和过程与[查看正在工作的蓝绿灰度](#查看正在工作的蓝绿灰度)类似 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/RouteGateway-4.jpg) 截图不对,待补充 ### Zuul网关路由 #### 新增Zuul网关路由 ① 导航栏上选择〔路由配置〕/〔Zuul网关路由〕,进入Zuul动态路由配置界面 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/RouteZuul-1.jpg) ② 〔Zuul网关路由〕界面的工具栏上,点击 按钮,弹出相应的对话框 根据Zuul网关的官方配置规范,结合如下界面进行配置 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/RouteZuul-2.jpg) #### 发布Zuul网关路由 〔Zuul网关路由〕界面的工具栏上,点击 ,操作模式和过程与[发布蓝绿灰度](#发布蓝绿灰度)类似 #### 删除Zuul网关路由 〔Zuul网关路由〕界面的工具栏上,点击 ,操作模式和过程与[删除蓝绿灰度](#删除蓝绿灰度)类似 #### 编辑Zuul网关路由 操作模式和过程与[编辑蓝绿灰度](#编辑蓝绿灰度)类似 #### 启用和禁用Zuul网关路由 操作模式和过程与[启用和禁用蓝绿灰度](#启用和禁用蓝绿灰度)类似 #### 查看正在工作的Zuul网关路由 〔Zuul网关路由〕界面的工具栏上,点击 ,操作模式和过程与[查看正在工作的蓝绿灰度](#查看正在工作的蓝绿灰度)类似 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/RouteZuul-3.jpg) ## 基础应用 基础应用,一般为企业的内部中间件聚合模块,通过平台的左侧菜单入口进行页面弹出方式的跳转 新增、删除、修改基础应用外链,请参考[页面设置](#页面设置) ## 系统设置 ### 页面设置 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Page-1.jpg) 待补充 ## 授权配置 ### 管理员配置 #### 新增管理员 ① 导航栏上选择〔授权配置〕/〔管理员配置〕,进入管理员配置界面 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Admin-1.jpg) ② 〔管理员配置〕界面的工具栏上,点击 按钮,弹出相应的对话框 输入相关信息完成〔新增管理员〕 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Admin-2.jpg) #### 删除管理员 〔管理员配置〕界面的表格上,打勾选择需要删除的一项或者多项 〔管理员配置〕界面的工具栏上,点击 按钮进行删除 #### 编辑管理员 〔管理员配置〕界面的表格上,点击〔操作〕列下的 按钮,弹出相应的对话框 输入相关信息完成〔编辑管理员〕 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Admin-3.jpg) #### 重置管理员密码 〔管理员配置〕界面的表格上,点击〔操作〕列下的 按钮进行重置 ### 角色配置 #### 新增角色 ① 导航栏上选择〔授权配置〕/〔角色配置〕,进入角色配置界面 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Role-1.jpg) ② 〔角色配置〕界面的工具栏上,点击 按钮,弹出相应的对话框 输入相关信息完成〔新增角色〕 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Role-2.jpg) #### 删除角色 〔角色配置〕界面的表格上,打勾选择需要删除的一项或者多项 〔角色配置〕界面的工具栏上,点击 按钮进行删除 #### 编辑角色 〔角色配置〕界面的表格上,点击〔操作〕列下的 按钮,弹出相应的对话框 输入相关信息完成〔编辑角色〕 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Role-3.jpg) ### 权限配置 #### 新增权限 ① 导航栏上选择〔授权配置〕/〔权限配置〕,进入权限配置界面 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Permission-1.jpg) ② 〔权限配置〕界面的工具栏上,点击 按钮,弹出相应的对话框 输入相关信息完成〔新增权限〕 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Permission-2.jpg) #### 删除权限 〔权限配置〕界面的表格上,打勾选择需要删除的一项或者多项 〔权限配置〕界面的工具栏上,点击 按钮进行删除 #### 编辑权限 〔权限配置〕界面的表格上,点击〔操作〕列下的 按钮,完成权限编辑 ![](http://nepxion.gitee.io/discoveryplatform/docs/discovery-doc/Permission-3.jpg) ## Star走势图 [![Stargazers over time](https://starchart.cc/Nepxion/Discovery.svg)](https://starchart.cc/Nepxion/Discovery)