### 模块说明
```txt
sanyicloud --> 
├── centrale -- 中间件
    ├── canal  -- canal
├── common -- 系统公共模块
    ├── common-canal -- 添加此依赖后就可以使用canal
    ├── common-core -- 公共工具类核心包
    ├── common-easy-es -- 针对easy-es 的相关配置依赖项 --> 未使用es
    ├── common-excel -- 公共工具之 表格导入导出
    ├── common-feign -- feign 扩展封装
    ├── common-job -- 定时任务扩展封装
    ├── common-log -- 日志扩展封装
    ├── common-mail -- 邮件 扩展封装
    ├── common-mongo -- mongoDB 扩展封装
    ├── common-mybatis -- orm (Object Relational Mapping) 框架, mybatis-plus 扩展封装
    ├── common-redis -- 缓存
    ├── common-security -- 全局登录注册
├── -modules       平台相关
    ├── -module-auth  部署于阿里云测试和华为正式 -->
    ├── -module-gateway 平台网关 --> 
    ├── -module-oss 平台文件相关 --> 
    ├── -module-job 平台定时任务 --> 
    ├── -module-system 平台系统管理 --> 
└── visual 可视化相关
    ├── -admin 
    └── -sentinel -- 流量高可用 [5003] , 并进行了 nacos 持久化配置, 默认的 group 为 SENTINEL_GROUP
```

```txt
业务逻辑---
单独的终端表
单独的商户表 -- 商户绑定
单独的项目 区域 人员 商户
单独的员工表 -- 
单独的工单表 -- 员工绑定, 商户绑定

大区 项目(银行) 区域 人员 商户, 人员分为员工和管理等
```

mysql 授权
```sql
CREATE USER 'nacos'@'%' IDENTIFIED BY 'nacos';
grant ALL on nacos_config.* to 'nacos'@'%';
flush privileges;
```

hadoop 安装教程 https://www.cnblogs.com/jhno1/p/15218656.html
mongo 单节点开启事务 https://www.jianshu.com/p/5a03b956ce1c

docker run --name canal \
-p 11111:11111 -d \
-v $PWD/conf:/home/admin/canal-server/conf \
-v $PWD/logs:/home/admin/canal-server/logs \
--net cloud_service \
canal/canal-server

docker run -d --name jenkins \
-p 9090:8080 -p 50000:50000 \
--restart=always \
-u root \
-v $PWD/attach:/root/attach \
-v $PWD/data:/var/jenkins_home \
jenkins/jenkins:jdk11

docker run --rm -e "ALIYUN_AK=LTAI5tG1noFiFSLDhpTM9Epm" -e "ALIYUN_SK=SEpCZJfZvRNgLqAUWgzmnfSqzPXChR" -e "EMAIL=antordragon@163.com" -v /data/cerbot/certbot-dns-aliyun/cert/:/etc/letsencrypt/ certbot obtain_cert -d "yoyogame.top" -d "*.yoyogame.top"

docker run --rm -v /data/cerbot/log/:/var/log/letsencrypt -v /data/cerbot/certbot-dns-aliyun/cert/:/etc/letsencrypt/ certbot renew_certs

```text
keytool -genkey -alias undertow -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -dname "CN=localhost, OU=localhost, O=localhost, L=Wuhan, ST=Hubei, C=CN"
输入密钥库口令:
再次输入新口令:
```

| Host      | User             | plugin                | authentication_string                                                  |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | caching_sha2_password |                                                                        |


jvm 查看
```text
/root/home/docker/images/cloud2/amazon-jdk-11/bin/jstat -gcutil/-gc 3041(pid) 5000(ms) 20(打印次数) --打印gc
保存java进程内存占用情况的基准版本
/root/home/docker/images/cloud2/amazon-jdk-11/bin/jcmd 21309 VM.native_memory scale=MB baseline
与基准版本进行比较(若怀疑存在内存泄漏，可过段时间再执行观察)
/root/home/docker/images/cloud2/amazon-jdk-11/bin/jcmd 21309 VM.native_memory scale=MB summary.diff
堆中对象概览, 前50
/root/home/docker/images/cloud2/amazon-jdk-11/bin/jmap -histo 21309 | head -50
堆信息概览
/root/home/docker/images/cloud2/amazon-jdk-11/bin/jhsdb jmap --heap --pid 21309
查看jvm 启动参数
/root/home/docker/images/cloud2/amazon-jdk-11/bin/jinfo -flags 21309
 
```

-XX:CICompilerCount=3 
-XX:CompressedClassSpaceSize=260046848
-XX:ConcGCThreads=1
-XX:G1ConcRefinementThreads=4
-XX:G1HeapRegionSize=1048576
-XX:GCDrainStackTargetSize=64
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/root/home/docker/images/cloud2/fast
-XX:InitialHeapSize=2147483648
-XX:MarkStackSize=4194304
-XX:MaxDirectMemorySize=1073741824
-XX:MaxHeapSize=2147483648
-XX:MaxMetaspaceSize=268435456
-XX:MaxNewSize=1287651328
-XX:MinHeapDeltaBytes=1048576
-XX:NativeMemoryTracking=summary
-XX:NonNMethodCodeHeapSize=5830732
-XX:NonProfiledCodeHeapSize=122913754
-XX:+PrintGCDetails
-XX:ProfiledCodeHeapSize=122913754
-XX:ReservedCodeCacheSize=251658240
-XX:+SegmentedCodeCache
-XX:ThreadStackSize=256
-XX:+UseCompressedClassPointers
-XX:+UseCompressedOops
-XX:+UseFastUnorderedTimeStamps
-XX:+UseG1GC

### 只排除配置文件打包
```xml
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>**/application.yml</exclude>
						<exclude>**/bootstrap.yml</exclude>
						<exclude>**/logback-spring.xml</exclude>
						<exclude>**/logback.xml</exclude>
					</excludes>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<!-- MANIFEST.MF 中 Class-Path 加入前缀 -->
							<classpathPrefix>lib/</classpathPrefix>
							<!-- jar包不包含唯一版本标识 -->
							<useUniqueVersions>false</useUniqueVersions>
							<!--指定入口类 -->
							<mainClass>com.chushang.xxx</mainClass>
						</manifest>
						<manifestEntries>
							<!--MANIFEST.MF 中 Class-Path 加入资源文件目录 -->
							<Class-Path>./config/</Class-Path>
						</manifestEntries>
					</archive>
					<outputDirectory>${project.build.directory}</outputDirectory>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<skipTests>true</skipTests>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<finalName>${project.build.finalName}</finalName>
					<layers>
						<enabled>true</enabled>
					</layers>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<!-- 该插件的作用是用于复制指定的文件 -->
			<plugin>
				<artifactId>maven-resources-plugin</artifactId>
				<executions>
					<execution> <!-- 复制配置文件 -->
						<id>copy-resources</id>
						<phase>package</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<resources>
								<resource>
									<directory>src/main/resources</directory>
									<includes>
										<include>application.yml</include>
										<include>bootstrap.yml</include>
										<include>logback-spring.xml</include>
										<include>logback.xml</include>
									</includes>
									<filtering>true</filtering>
								</resource>
							</resources>
							<nonFilteredFileExtensions>
							</nonFilteredFileExtensions>
							<encoding>UTF-8</encoding>
							<outputDirectory>${project.build.directory}/config</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<finalName>${project.artifactId}</finalName>
	</build>
```
