1 Star 0 Fork 47

liangtao / DiscoveryPlatform

forked from Nepxion / DiscoveryPlatform 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

Discovery【探索】云原生微服务解决方案

Total visits Total lines License Maven Central Javadocs Build Status Codacy Badge Stars Stars

Spring Boot Spring Cloud Spring Cloud Alibaba Nepxion Discovery

Discovery PPT Discovery WIKI Discovery Platform WIKI Polaris WIKI

           

如果您觉得本框架具有一定的参考价值和借鉴意义,请帮忙在页面右上角 [Star]

首席作者简介

  • 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

商业化合作

① 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,联系作者,洽谈合作事宜

Discovery【探索】企业级云原生微服务开源解决方案

① 解决方案

② 平台界面

③ 快速入门

④ 框架源码

⑤ 指南示例源码

⑥ 指南示例说明

  • 对于入门级玩家,参考6.x.x指南示例极简版,分支为6.x.x-simple
  • 对于熟练级玩家,参考6.x.x指南示例精进版,分支为6.x.x。除上述《极简版》功能外,涉及到指南篇里的绝大多数高级功能
  • 对于骨灰级玩家,参考6.x.x指南示例高级版,分支为6.x.x-complex。除上述《精进版》功能外,涉及到指南篇里的ActiveMQ、MongoDB、RabbitMQ、Redis、RocketMQ、MySQL等高级调用链和蓝绿灰度调用链的整合
  • 上述指南实例分支是针对Spring Cloud旧版本。对于Spring Cloud 202x版本,参考7.x.x指南示例精进版,分支为master

Polaris【北极星】企业级云原生微服务商业解决方案

① 解决方案

② 框架源码

③ 指南示例源码

④ 指南示例说明

Discovery【探索】和Polaris【北极星】架构体系

① Discovery【探索】和Polaris【北极星】联合架构图

② Discovery【探索】和Polaris【北极星】联合拓扑图

③ Polaris【北极星】分层架构图

④ Discovery【探索】实施方案图

⑤ Discovery【探索】域网关实施图

⑥ Discovery【探索】非域网关实施图

⑦ Discovery【探索】全局订阅实施图

⑧ Discovery【探索】配置中心发布订阅图

简介

功能概述

郑重致谢

感谢如下小伙伴参与本平台的开发和测试

  • Pegasus
  • 星河
  • Ayang
  • Rottenmu

请联系我

微信、钉钉、公众号和文档

目录

工程架构

工程清单

工程名 描述
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/src/main/resources目录下

配置文件 描述
bootstrap.properties 平台微服务配置,例如:注册中心和配置中心等配置
application.properties 平台通用配置,例如:JWT和Ldap等配置
application-mysql.properties 平台MySQL数据库配置
application-h2.properties 平台H2内存数据库配置
META-INF/schema-mysql.sql 平台MySQL数据库创库脚本
META-INF/schema-h2.sql 平台H2内存数据库创库脚本

架构核心

依赖引入

① 服务注册发现依赖引入

服务注册发现中间件的四个插件,必须引入其中一个

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <!-- <groupId>org.springframework.cloud</groupId> -->
    <!-- <artifactId>spring-cloud-starter-consul-discovery</artifactId> -->
    <!-- <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> -->
    <!-- <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> -->
</dependency>

② 配置中心依赖引入

配置中心中间件的六个插件,选择引入其中一个

<dependency>
    <groupId>com.nepxion</groupId>
    <artifactId>discovery-console-starter-nacos</artifactId>
    <!-- <artifactId>discovery-console-starter-apollo</artifactId> -->
    <!-- <artifactId>discovery-console-starter-redis</artifactId> -->
    <!-- <artifactId>discovery-console-starter-zookeeper</artifactId> -->
    <!-- <artifactId>discovery-console-starter-consul</artifactId> -->
    <!-- <artifactId>discovery-console-starter-etcd</artifactId> -->
</dependency>

③ 数据库依赖引入

MySQL数据库和H2内存数据库,选择引入其中一个

<dependency>
    <groupId>com.nepxion</groupId>
    <artifactId>discovery-platform-starter-server-mysql</artifactId>
    <!-- <artifactId>discovery-platform-starter-server-h2</artifactId> -->
</dependency>

④ Ldap依赖引入

如果使用者希望通过Ldap方式登录平台,那么需要引入如下依赖

<dependency>
    <groupId>com.nepxion</groupId>
    <artifactId>discovery-platform-starter-server-ldap</artifactId>
</dependency>

环境搭建

使用者可以直接使用云环境进行体验,也可以通过本地环境搭建进行体验

云环境体验

云环境服务注册发现和配置中心

采用Nacos作为服务注册发现和配置中心

http://218.78.55.64:8848/nacos

云环境平台登录

浏览器上输入http://218.78.55.64:6001/platform,初始用户名和密码为admin/admin

登录页面底部为重要的链接以及快速联系我们的方式

云环境调用验证

通过改变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=2

本地环境搭建

运行示例

参考《如何快速搭建和运行示例》的Wiki文章

Gitee Wiki

Github Wiki

启动平台

使用者可以复制discovery-platform-application目录单独导入IDE或者编译成可执行包运行

选择下面其中一个运行,需要实现确认相关配置的正确性

  • PlatformMySqlApplication.java,基于MySql数据库的运行入口
  • PlatformH2Application.java,基于H2内存数据库的运行入口

提醒:基于H2内存数据库模式的平台,需要事先启动H2内存数据库服务器,从如下链接下载、安装并运行

http://h2database.com/html/download.html

本地环境平台登录

参考云环境平台登录,把IP地址改成localhost即可

本地环境调用验证

参考云环境调用验证,把IP地址改成localhost即可

操作手册

界面介绍

服务发布

蓝绿发布

灰度发布

流量侦测

实例管理

实例信息

实例摘除

路由配置

Gateway网关路由

Zuul网关路由

Star走势图

Stargazers over time

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

☀️ Nepxion DiscoveryPlatform is a platform for Nepxion Discovery with service governance, blue green and gray release orchestration, modelling, flow inspection 服务治理、蓝绿灰度发布编排建模、流量侦测的平台 展开 收起
Java
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/liangjtao/DiscoveryPlatform.git
git@gitee.com:liangjtao/DiscoveryPlatform.git
liangjtao
DiscoveryPlatform
DiscoveryPlatform
feature

搜索帮助