Skip to content

DickLoong/Cell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cell

一个实验项目,实现一个服务粒度大小根据需求自动化伸缩的微服务架构demo,比如,开发调试阶段自动以单机模式运行,而在线运行时根据需求自动将大粒度服务拆分成小粒度服务。

实现思路

以一体化架构实现项目
约定系统由若干子系统组成,不同子系统间只能通过出口函数相互调用
通过代码生成和入口函数控制降低实现子系统约定的复杂度和工作量
子系统划分倾向于细粒度划分
改造集成流程和构建服务,实现编译期检查子系统约定,代替code review
用classloader隔离各个子系统
新增一层集成路由层,集成服务注册、发现、负载均衡、鉴权、监控和路由,往上对接RPC调用服务,运行时根据自身资源状态判定调用RPC服务还是直接本地调用,将两种不同的服务间调用方式整合到统一层面中,将分布式系统的复杂度对业务透明
通过局部编译的方式实现一体化架构的细粒度服务自动拆分,粒度单位是子系统,拆分结果是子系统组,一个子系统组是多个子系统的聚合,不同子系统组间以RPC方式调用,子系统组内部出口函数直接调用,子系统组内部不同子系统内部函数以classloader隔离
实现独立的监控构建部署服务,收集各个子系统组的运行状况数据,根据监控数据自动构建发布部署子系统组

简而言之,解离系统的逻辑划分和物理资源划分,以细粒度进行逻辑划分,用自动化方式保证逻辑划分在编译期得以贯彻,用classloader在jvm层面进行轻量级的子系统隔离,根据运行状况聚合细粒度成粗粒度服务部署,令微服务架构获得一体化架构的一些特性

About

一个服务粒度可伸缩的微服务框架治理工具实现

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages