# decision
**Repository Path**: lkd_java/decision
## Basic Information
- **Project Name**: decision
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 1
- **Created**: 2021-02-22
- **Last Updated**: 2022-03-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# decision
### 介绍
decision是一款基于Spring Cloud Discovery服务注册发现、Ribbon负载均衡、Feign和RestTemplate调用等组件全方位增强的微服务解决方案,可通过设置Header或者配置中心配置来定义路由策略,并将路由策略传递到全链路服务中,实现在全链路中访问指定的服务版本。
decision是基于开源的字节码框架bytebuddy开发的环境治理工具,通过javaagent字节码织入技术实现,对业务代码完全透明无侵入,业务代码无需做修改即可实现服务的自定义路由,借助于类隔离机制,保证了业务代码的安全性,从而实现高效稳定的微服务环境治理方案
### 目标群体
- 对于多团队开发多个服务时,每个团队都需要自己的一套开发环境进行及时的验证测试,导致开发环境资源和维护成本过高
- 开发人员平时想在本地进行调试时,需服务注册到注册中心,且并不是每次请求都能到达本地,而且还影响其他人使用
- 需要对服务进行灰度时,不知如何选择服务版本
### 源码
- github:https://github.com/IRONMAN-KD/decision
- 码云:https://gitee.com/lkd_java/decision
### 相关文章
- https://blog.csdn.net/lishe9452/article/details/114782061?spm=1001.2014.3001.5501
### 工程架构
#### 架构核心

### 安装教程
1. 下载代码 ,git clone https://github.com/IRONMAN-KD/decision.git
2. 打包
~~~shell
cd decision/decision-agent
mvn package
cd decision/decision-plugin
mvn package
~~~
打包后会生成对应的文件在“decision-agent-bin”目录里
3. vm参数配置
添加启动参数
~~~shell
-javaagent:/home/decision-agent-bin/decision-agent.jar
~~~
### 使用说明
#### 1. decision-agent-bin 目录文件说明
- decision-agent.jar 核心jar包,agent的入口
- cfg目录,包含decision-logback.xml日志配置文件,后续会添加decision相关的配置
- plugins目录,里面包含了需要织入的插件jar包
#### 2. 支持的微服务组件以及版本说明
##### spring cloud版本说明
| decision版本 | 分支 | Spring Cloud版本 | Spring Boot版本 |
|------------|--------|----------------------------------------|---------------------------------------------------------|
| 1.0.0 | master | Hoxton.SR5 ↑
Hoxton
Greenwich
Finchley | 2.3.x.RELEASE
2.2.x.RELEASE
2.1.x.RELEASE
2.0.x.RELEASE |
##### spring cloud组件支持说明
| 组件类型 | 组件名称 | 备注 |
|---|---|---|
| 注册中心 | nacos | 已支持 |
| Eureka(开发中) | 已在开发准备中 | |
| Consul(开发中) | 已在开发准备中 | |
| 服务网关 | gateway | 已支持 |
| Zuul(计划中) | 计划中 | |
| 消息中间件 | RabbitMq | 已支持广播模式下根据header选择消费者 |
| kafaka(计划中) | 计划中 |