MCPcopy Index your code
hub / github.com/SpringCloud/spring-cloud-gray

github.com/SpringCloud/spring-cloud-gray @2.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.1.0 ↗ · + Follow
1,600 symbols 3,806 edges 313 files 318 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Spring Cloud版本控制和灰度发布

在我们使用spring mvc单体架构时,我们可以通过uri,或者请求头做多版本路由,虽然同一个功能需要维护多个版本的接口,但是对于系统而言,不会因为新增一个接口版本而影响到老用户。当我们使用spring cloud构建微服务平台时,也希望能做到这一点,然而spring cloud并没有提供这个功能。

在spring cloud的微服务体系中,大多是使用eureka做为注册中心,ribbon做为负载均衡,hystrix做为断路器。但是在国内网络中却鲜少关于spring-cloud的接口多版本控制的开源项目,而在国内,spring cloud做为越来越被创业公司认同的微服务框架,多版本控制的需求也越来越明显,于是就有了开发多版本控制和灰度管理的想法。

不足

没有界面化, 仅仅只有接口列表。

扩展思考

gray目前仅仅只支持spring cloud eureka, 但是在spring cloud中,eureka只是做为其中一个注册中心, 如果要做spring cloud的灰度管理, 就还需要兼容其他的注册中心, 比如zookeeper, consul, nacos等。

Extension points exported contracts — how you extend this code

ConfigurationPropertiesBindHandlerAdvisor (Interface)
Allows additional functionality to be applied to the BindHandler used by the {@link ConfigurationPropertiesBindi [9 implementers]
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/ConfigurationPropertiesBindHandlerAdvisor.java
RequestInterceptor (Interface)
(no doc) [6 implementers]
spring-cloud-gray-client/src/main/java/cn/springcloud/gray/RequestInterceptor.java
Supplier (Interface)
(no doc) [13 implementers]
spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/connectionpoint/RibbonConnectionPoint.java
GrayServerEvictor (Interface)
(no doc) [5 implementers]
spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/evictor/GrayServerEvictor.java
TestClient (Interface)
Created by saleson on 2017/11/10. [3 implementers]
spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/java/cn/springcloud/gray/service/b/feign/TestClient.java
GrayEventPublisher (Interface)
(no doc) [4 implementers]
spring-cloud-gray-core/src/main/java/cn/springcloud/gray/event/GrayEventPublisher.java
TestSourceOutput (Interface)
topic see
spring-cloud-gray-samples/spring-cloud-gray-stream-sample/src/main/java/cn/springcloud/gray/stream/component/TestSourceOutput.java
SourceOperator (Interface)
An operation that can be applied to a Source. [9 implementers]
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/PropertyMapper.java

Core symbols most depended-on inside this repo

get
called by 74
spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/connectionpoint/RibbonConnectionPoint.java
append
called by 71
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/source/ConfigurationPropertyName.java
isEmpty
called by 53
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/source/ConfigurationPropertyName.java
add
called by 52
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/source/ConfigurationPropertyName.java
put
called by 47
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/source/MapConfigurationPropertySource.java
getInstanceId
called by 34
spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/properties/GrayClientProperties.java
getProperty
called by 31
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/bind/BindException.java
getHeaders
called by 24
spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/zuul/GrayPreZuulFilter.java

Shape

Method 1,239
Class 290
Interface 59
Enum 12

Languages

Java100%

Modules by API surface

spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/source/ConfigurationPropertyName.java56 symbols
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/PropertyMapper.java31 symbols
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/bind/JavaBeanBinder.java30 symbols
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/bind/Binder.java30 symbols
spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/module/SimpleGrayServerModule.java26 symbols
spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/properties/GrayClientProperties.java25 symbols
spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/module/GrayServerModule.java24 symbols
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/source/SpringIterableConfigurationPropertySource.java23 symbols
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/bind/BindConverter.java22 symbols
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/source/SpringConfigurationPropertySource.java20 symbols
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/properties/bind/Bindable.java20 symbols
spring-cloud-gray-utils/src/main/java/cn/springcloud/gray/bean/domain/DataSize.java20 symbols

Datastores touched

(mysql)Database · 1 repos
gray_server01Database · 1 repos

For agents

$ claude mcp add spring-cloud-gray \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact