#示例程序使用说明:
### 设计说明
> 业务垂直切分方案
```
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配置文件`
### 发布到阿里云
```shell
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
```