All Projects → Nepxion → Discoveryguide

Nepxion / Discoveryguide

Licence: apache-2.0
☀️ Nepxion Discovery is a solution for Spring Cloud with blue green, gray, weight, limitation, circuit breaker, degrade, isolation, tracing, dye, failover 蓝绿、灰度、权重、限流、熔断、降级、隔离、追踪、流量染色、故障转移的指南

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Discoveryguide

Spring Cloud Shop
spring cloud 版分布式电商项目,全力打造顶级多模块,高可用,高扩展电商项目
Stars: ✭ 248 (-70.48%)
Mutual labels:  apollo, spring-cloud
Jiiiiiin Security
一个前后端分离的内管基础项目
Stars: ✭ 132 (-84.29%)
Mutual labels:  apollo, spring-cloud
DiscoveryPlatform
☀️ Nepxion DiscoveryPlatform is a platform for Nepxion Discovery with service governance, release orchestration, flow inspection, instance blacklist, gateway route 服务治理、蓝绿灰度编排、流量侦测、实例摘除、网关路由的平台
Stars: ✭ 63 (-92.5%)
Mutual labels:  apollo, spring-cloud
Java Apollo
关于自己的一些学习文档和学习心得都放在这里啦!!!
Stars: ✭ 140 (-83.33%)
Mutual labels:  apollo, spring-cloud
Discovery
☀️ Nepxion Discovery is a solution for Spring Cloud with blue green, gray, route, limitation, circuit breaker, degrade, isolation, tracing, dye, failover 蓝绿、灰度、路由、限流、熔断、降级、隔离、追踪、流量染色、故障转移
Stars: ✭ 4,658 (+454.52%)
Mutual labels:  apollo, spring-cloud
Spring Cloud Consul
Spring Cloud Consul
Stars: ✭ 703 (-16.31%)
Mutual labels:  spring-cloud
Skyeye
对java、scala等运行于jvm的程序进行实时日志采集、索引和可视化,对系统进行进程级别的监控,对系统内部的操作进行策略性的报警、对分布式的rpc调用进行trace跟踪以便于进行性能分析
Stars: ✭ 805 (-4.17%)
Mutual labels:  spring-cloud
Spring Boot Examples
about learning Spring Boot via examples. Spring Boot 教程、技术栈示例代码,快速简单上手教程。
Stars: ✭ 26,812 (+3091.9%)
Mutual labels:  spring-cloud
Offix
GraphQL Offline Client and Server
Stars: ✭ 694 (-17.38%)
Mutual labels:  apollo
Apollo13rt
Apollo 13 in real-time. Flight director's loop, transcript, information, and more.
Stars: ✭ 25 (-97.02%)
Mutual labels:  apollo
Vue Meteor
🌠 Vue first-class integration in Meteor
Stars: ✭ 893 (+6.31%)
Mutual labels:  apollo
Sso
cas单点登录系统,其中包括cas认证服务,配置中心,监控平台,服务管理的高可用项目
Stars: ✭ 797 (-5.12%)
Mutual labels:  spring-cloud
Weixin Shop Spring Cloud
微信商城SpringCloud版本 - 前端vue-shop
Stars: ✭ 717 (-14.64%)
Mutual labels:  spring-cloud
Spring Petclinic Microservices
Distributed version of Spring Petclinic built with Spring Cloud
Stars: ✭ 814 (-3.1%)
Mutual labels:  spring-cloud
Graphql
GraphQL (TypeScript) module for Nest framework (node.js) 🍷
Stars: ✭ 697 (-17.02%)
Mutual labels:  apollo
Spring Cloud Learning
spring-cloud, spring-cloud-alibaba, nacos, feign, ribbon, eurka, cloud-config, hystrix, seata
Stars: ✭ 18 (-97.86%)
Mutual labels:  spring-cloud
Apollo
Apollo is a reliable configuration management system suitable for microservice configuration management scenarios.
Stars: ✭ 26,052 (+3001.43%)
Mutual labels:  spring-cloud
Chimp
Tooling that helps you do quality, faster.
Stars: ✭ 783 (-6.79%)
Mutual labels:  apollo
Onetwo
一个基于spring和spring boot的快速开发框架……
Stars: ✭ 16 (-98.1%)
Mutual labels:  spring-cloud
Storefront Api Examples
Example custom storefront applications built on Shopify's Storefront API
Stars: ✭ 769 (-8.45%)
Mutual labels:  apollo

Discovery【探索】微服务企业级解决方案 · 新手快速入门

准备工作

请注意,新手快速入门,用的是6.x.x-simple分支

环境搭建

① 下载代码,Git clone https://github.com/Nepxion/DiscoveryGuide.git,分支为6.x.x-simple

② 代码导入IDE

③ 下载Nacos服务器

④ 启动Nacos服务器

  • Windows环境下,运行bin目录下的startup.cmd
  • Linux环境下,运行bin目录下的startup.sh

启动服务

  • 在IDE中,启动四个应用服务和两个网关服务,如下
类名 微服务 服务端口 版本 区域 环境 可用区
DiscoveryGuideServiceA1.java A1 3001 1.0 dev env1 zone1
DiscoveryGuideServiceA2.java A2 3002 1.1 qa common zone2
DiscoveryGuideServiceB1.java B1 4001 1.0 qa env1 zone1
DiscoveryGuideServiceB2.java B2 4002 1.1 dev common zone2
DiscoveryGuideGateway.java Gateway 5001 1.0
DiscoveryGuideZuul.java Zuul 5002 1.0
  • 部署拓扑图

全链路路径, 如下

API网关 -> 服务A(两个实例) -> 服务B(两个实例)

环境验证

通过Postman工具验证

  • 导入Postman的测试脚本postman.json(位于根目录下)

  • 在Postman中执行目录结构下〔Nepxion〕->〔Discovery指南网关接口〕->〔Gateway网关调用示例〕,调用地址为http://localhost:5001/discovery-guide-service-a/invoke/gateway,相关的Header值已经预设,供开发者修改。执行通过Spring Cloud Gateway网关发起的调用,结果为如下格式

gateway 
-> [ID=discovery-guide-service-a][T=service][P=Nacos][H=192.168.0.107:3001][V=1.0][R=dev][E=env1][Z=zone1][G=discovery-guide-group][TID=48682.7508.15870951148324081][SID=49570.77.15870951148480000] 
-> [ID=discovery-guide-service-b][T=service][P=Nacos][H=192.168.0.107:4001][V=1.0][R=qa][E=env1][Z=zone2][G=discovery-guide-group][TID=48682.7508.15870951148324081][SID=49571.85.15870951189970000]
  • 在Postman中执行目录结构下〔Nepxion〕->〔Discovery指南网关接口〕->〔Zuul网关调用示例〕,调用地址为http://localhost:5002/discovery-guide-service-a/invoke/zuul,相关的Header值已经预设,供开发者修改。执行通过Zuul网关发起的调用,结果为如下格式
zuul 
-> [ID=discovery-guide-service-a][T=service][P=Nacos][H=192.168.0.107:3001][V=1.0][R=dev][E=env1][Z=zone1][G=discovery-guide-group][TID=48682.7508.15870951148324081][SID=49570.77.15870951148480000] 
-> [ID=discovery-guide-service-b][T=service][P=Nacos][H=192.168.0.107:4001][V=1.0][R=qa][E=env1][Z=zone2][G=discovery-guide-group][TID=48682.7508.15870951148324081][SID=49571.85.15870951189970000]
  • 上述步骤在下面每次更改规则策略的时候执行,并验证结果和规则策略的期望值是否相同

执行蓝绿发布

有如下两种简单方式,最终执行结果一致

基于Header传递方式的蓝绿发布策略

在Postman上,设置Header为如下值

n-d-version={"discovery-guide-service-a":"1.0", "discovery-guide-service-b":"1.1"}

执行调用,根据返回值,验证discovery-guide-service-a是否选择1.0版本进行调用,discovery-guide-service-b是否选择1.1版本进行调用

基于网关配置的蓝绿发布策略

分别对Spring Cloud Gateway和Zuul增加蓝绿发布策略

① 对于Spring Cloud Gateway,它的Group为discovery-guide-group,Data Id为discovery-guide-gateway

② 对于Zuul,它的Group为discovery-guide-group,Data Id为discovery-guide-zuul

③ 蓝绿发布策略内容统一如下

<?xml version="1.0" encoding="UTF-8"?>
<rule>
    <strategy>
        <version>{"discovery-guide-service-a":"1.0", "discovery-guide-service-b":"1.1"}</version>
    </strategy>
</rule>

执行调用,根据返回值,验证discovery-guide-service-a是否选择1.0版本进行调用,discovery-guide-service-b是否选择1.1版本进行调用

上述简单示例以版本匹配蓝绿发布为例,更多的使用方式,请参考官方主页文档

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].