# rubbish **Repository Path**: tbc521/rubbish ## Basic Information - **Project Name**: rubbish - **Description**: 基于http通信的分布式系统,提供服务扫描、服务注册、服务发现、软负载等功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2016-12-07 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 简介 用于裸奔的基于http通信的分布式系统; ### 版本 0.9 ### 功能: * 本地服务扫描, 扫描相关注解,以[类名.方法名]做为服务名,类名首字母小写; * Controller/RestController(Class) * RequestMapping/GetMapping/PostMapping/DeleteMapping/PutMapping(Method) * 服务注册:通过配置或默认方法获取地址和端口(默认端口80),将扫描到的服务注册到服务中心(暂只支持Zk) * 服务发现: 1. 先查询本地缓存(默认Map缓存) 2. 如果本地存在该服务的地址,直接通过负载算法返回 3. 如果不存在,先注册服务节点监听 4. 获取服务节点所有子节点,存入本地缓存 * 若从服务中心获取到的地址为空,则抛异常; 5. 重复步骤2 * 基本的随机负载 * 简单随机 * 简单轮洵 * http服务接口调用->还没做 *** ### 依赖: * 服务中心: zookeeper、redis(还没做) ### 测试 * 启动zookeeper * 运行rubbish-demo1(修改配置文件中service.ipv4地址) * 此时会在zk中注册demo1的服务地址 * 运行rubbish-demo2 * demo2的服务地址也将注册到zk(这...生产者消费者未分离,尴尬) * rest调用demo2的接口: * 首次调用时,观察控制台,会发现进行服务订阅的日志 * 以后再调用,就直接从本地缓存获取地址了 * demo2获取demo1的服务地址,调用,并将demo1的返回值做为自己的返回调用者;