README.md 2.5 KB

#示例程序使用说明:

设计说明

业务垂直切分方案


restempate 定向负载 一个服务一个库一个盒子,业务逻辑负载曾映射路由表,gateway负载轮询也逻辑业务服务
操作简单,维护复杂,1000个盒子就得1000个服务,新增操作需要新增服务以及数据仓储,对服务负载不均衡,可用性低,一个服务挂了该盒子数据将无法连接,数量大了命名会逐渐丢失规范,问题恢复周期逐渐增大


水平切分方案

操作复杂需实现权重分片,自动化建模等,优势明显,盒子与服务无耦合,可以弹性增减服务数量以达到负载均衡,根据盒子功能动态创建合理数据结构
nacos 轮询服务,gateway统一访问  sharding 以盒子key分片 权重分库, 库内分scheme[key].table[*]


以上都需要一个中心库,来存取盒子信息数量映射关系表,统计表等上探应用功能;统计任务\分布式锁缓存实现,前者需要人工权重分库,后者需实现自动动态扩容权重分库

服务能够负载均衡吗?

维护便捷吗?

存储服务不够了怎么办?动态扩容维护复杂吗?

支持限流保护,xa事务吗?

OLAP上探下钻实现复杂吗(盒子逻辑分组,分批查询,分析等)?可控吗?分布式锁竞争大吗?全局任务实现成熟可靠吗?

方案2搭建

edge_base (embedded  /**or standalone**/) : sharding key index\database url config center\data authorize	
edge_portal (standalone elastic):metric all task\globle config\add or delete edge modul\new and init edge modul basic work space
edge_actuator (standalone elastic):query\delete\update\insert data anyone of all edge moduls 

环境说明:

  • JAVA版本——jdk8
  • 安全框架——Spring Security
  • ORM框架——Mybatis-Plus
  • 侵入式Api文档——Swagger2

目录描述:

|——java //核心程序
|————com.gct.edge.portal
|——————config //配置类
|——————controller //视图or接口层
|——————entity //实体对象
|——————mapper //dao层数据库操作接口
|——————service //具体服务程序接口
|—————— SubSampleApplication //启动类
|——resources //静态资源or配置文件

发布到阿里云

scp target/edge_module_actuator-0.0.1-SNAPSHOT.jar root@geo-cruiser.com:/home/geo/geo-test/edge-module
scp shellbin/edge-actuator.sh root@geo-cruiser.com:/home/geo/geo-test/edge-module