# 使用spring-boot脚手架重写分布式业务
[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Build Status](https://travis-ci.org/xuminwlt/j360-boot-app-all.svg?branch=master)](https://travis-ci.org/xuminwlt/j360-boot-app-all)
## 模块说明
- disboot-base: 工程二分库基础包, 设置该系统相关的定义参数及硬配置
- disboot-api: RPC模块之二分库
- disboot-common: RPC模块实现通用配置及代码
- disboot-biz-sjdbc: RPC模块(disboot-api)实现工程, 集成了Sharding-phere,RocketMQ等分布式框架及最佳实践用法
- disboot-web: API端,使用Dubbo RPC连接biz模块
- disboot-miniprogram: 小程序服务端快速上手指南,包含jwt授权鉴权, 微信小程序支付、小程序客服、小程序消息等内容
- disboot-websocket: 应用中使用netty连接实现分布式集群中的点对点,点对多,广播消息收发,业务功能集成实践(Web Game/PUSH)
## 快速上手
- 微信小程序服务端接口快速上手案例: <a href="./j360-disboot-miniprogram">j360-disboot-miniprogram</a>
使用一个简单的小程序后台快速上手案例包含以下内容:
1. 打包发布 maven打包成zip发布到linux,集成shell命令 start、restart、stop、console、dump等命令
2. 集成nginx代理web https服务,快速配置小程序
3. 集成无状态授权鉴权过程,客户端无需参与任何加解密过程、服务端自动实现会话身份识别
4. 集成zipkin链路性能分析日志, 快速定位接口性能数据
5. 集成小程序微信支付, 快速完成小程序支付过程和回调配置,(小程序不支持虚拟物品交易!)
## 功能点
### DevOps流程:
1. CI配套
- 开发环境
- 单元测试
- 功能测试
- 集成测试
2. JVM配置
- env: 本地环境配置化
3. 多环境支持及参数配置
参考aws服务本地化配置方式, 多环境多个配置文件,多个module可分别制定外部配置文件,[推荐]使用外部地址配置文件,指定/etc/.myproject.yml
- 需要支持的环境列表,基本上可以满足前期不上配置系统开发及上线需求
1. IDE单元测试
2. IDE运行
3. 独立环境运营
IDE环境maven配置:
```
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>
-Xdebug -Dspring.config.location=file:../.././yml/application-local.yml,classpath:application.yml
</jvmArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xdebug -Dspring.config.location=file:../.././yml/application-local.yml,file:../.././yml/application-sharding.yml,classpath:application.yml</argLine>
</configuration>
</plugin>
</plugins>
```
独立环境:
```
shell env中增加以下参数
java -jar xxxx.jar -Dspring.config.location=file:.././yml/application-local.yml,classpath:application.yml,classpath:application-sharding.yml
```
4. VM监控
启动server.sh shell中开启JMX
env中定义环境和额外的vm参数
5. Log支持
- 默认使用: slf4j+logback
- 可配置log4j2进行异步日志收集,异步日志收集需要控制异步线程池的停止和启动过程参数, 同时异步收集注意线程池队列打满时的拒绝策略默认为当前线程执行会导致当前线程影响。
6. 启动集成
多环境、多配置支持:配置和源码分离可以通过vm参数进行多环境的配置支持
7. RPC集成
dubbo2.7 + boot start
8. Web集成
- j360-disboot-web
http://localhost:8081/index.html#/login
9. Shiro集成
- shiro + jwt + boot2 (j360-disboot-miniprogram)
10. 分表分库读写分离
sharding-sphere v3.1 boot2
11. 全链路跟踪
Skywalking/Zipkin
- j360-miniprogram - 示例小程序服务端使用zipkin v5.0+ 进行servlet和http client request两种埋点方式进行收集
12. 分布式事务
- Fescar
- Saga
- RocketMQ
13. RocketMQ
事务消息,异步可靠性消息事务实现最终一致性机制,在部分场景下实现资源最终一致性。
14. 限流
Sentinel
15. 分布式配置
Apollo/Nacos
16. 规则引擎: Drools
17. SocketIO with Netty
- 基于SocketIO协议的Netty版本实现Websocket分布式集群案例
## 链路跟踪
### 本地Metrics: Kamon Metrics
>
[Kamon](http://kamon.io/documentation/get-started/) is used to track saga performance and reports trace data to both log
and [StatsD](https://github.com/etsy/statsd/). The easiest way to visualize tracing reports is to use a [docker image](http://kamon.io/documentation/kamon-statsd/0.6.6/overview/)
composed with StatsD, [Graphite](http://graphite.wikidot.com/), and [Grafana](http://grafana.org/)
- 使用aspectj 运行 Kamon enabled.
```
java -javaagent:/path/to/aspectj-weaver.jar -Dkamon.modules.kamon-annotation.auto-start=yes -Dkamon.modules.kamon-log-reporter.auto-start=yes -Dkamon.modules.kamon-statsd.auto-start=yes -jar saga.jar
```
b. Tracing data reported to prometheus
grafana + prometheus
### 全链路分析: Skywalking
## sharding-sphare
```
-Dspring.config.location=file:.././yml/application-local.yml,classpath:application.yml,classpath:application-sharding.yml
```
## Sentinel
限流监控在首次拦截时初始化并生成数据,Dashboard需要才能同步到对应的数据
```
Shell
-Djava.net.preferIPv4Stack=true -Dcsp.sentinel.api.port=8731 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=dubbo-web-demo
```
## java shell
reset vm args in script/bin/env
```
SERVER_OPTS_MEMORY="-Xms64M -Xmx1G"
SERVER_OPTS_VM="-server -XX:NewRatio=3 -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=6 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ConcGCThreads=4 -XX:ParallelGCThreads=4 -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:ReservedCodeCacheSize=240M -XX:+ExplicitGCInvokesConcurrent -XX:PretenureSizeThreshold=64m -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -XX:CMSMaxAbortablePrecleanTime=6000 -XX:+CMSParallelRemarkEnabled -XX:+ParallelRefProcEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=10 -verbose:gc -Xloggc:gc_%p.log -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=. -XX:-OmitStackTraceInFastThrow -XX:-UseBiasedLocking -XX:AutoBoxCacheMax=20000 -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"
SERVER_OPTS="$SERVER_OPTS_MEMORY $SERVER_OPTS_VM -Dspring.config.location=file:.././yml/application-local.yml,classpath:application.yml"
```
## Fescar
针对支持ACID SQL数据库提供无入侵的分布式事务读未提交隔离级别支持,对于其他类存储提供手动Commit和Rollback支持.
# CI
## jenkins配置及步骤
没有合适的资源?快使用搜索试试~ 我知道了~
基于Spring boot 2.0+ 脚手架重构微服务系统
共140个文件
java:70个
js:17个
xml:11个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 193 浏览量
2023-08-10
15:34:08
上传
评论
收藏 2.16MB ZIP 举报
温馨提示
基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。 基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。基于微信小程序构建的web应用系统,适合毕业设计、课程设计及大作业等。
资源推荐
资源详情
资源评论
收起资源包目录
基于Spring boot 2.0+ 脚手架重构微服务系统 (140个子文件)
application.conf 2KB
app.c9053383803c0b6d8787cee7a6774801.css 142KB
bootstrap.css 98KB
datasource.css 4KB
main.css 4KB
libsigar-universal64-macosx.dylib 388KB
env 1KB
.gitignore 237B
index1.html 3KB
index2.html 2KB
index.html 513B
WXPay.java 30KB
WXPayRequest.java 13KB
WXPayReport.java 11KB
WXPayUtil.java 10KB
SocketServer.java 4KB
ZipkinConfig.java 4KB
WXPayConstants.java 3KB
BootstrapConfiguration.java 3KB
ShiroConfig.java 3KB
RedissonStoreFactoryV2.java 3KB
SwaggerConfig.java 3KB
EventDispatcher.java 2KB
MQProducter.java 2KB
RedissonPubSubEventStore.java 2KB
SocketSessionManager.java 2KB
AuthController.java 2KB
TxService.java 2KB
CommonConfig.java 2KB
SocketConfiguration.java 2KB
SocketTemplate.java 2KB
WXPayConfig.java 2KB
J360WXPayConfig.java 2KB
RedissonSessionStorageDAO.java 2KB
UserController.java 1KB
WXPayXmlUtil.java 1KB
IWXPayDomain.java 1KB
UserManager.java 1KB
CommonConfig.java 1KB
UserServiceImpl.java 1KB
BootstrapConfiguration.java 860B
UserMapper.java 821B
RocketMQTransactionListener.java 813B
UserRepository.java 798B
TxListener.java 793B
BootstrapApplication.java 790B
BizEventHandler.java 767B
BizServiceAspect.java 713B
DispatchEventMessage.java 676B
BootstrapApplication.java 655B
UserManager.java 576B
DefaultRocketMQConfiguration.java 561B
BootstrapApplication.java 558B
ConsumerListener.java 529B
AppConfig.java 479B
BootstrapApplication.java 406B
ErrorCode.java 393B
UserService.java 322B
PubSubEventType.java 321B
SocketEventType.java 321B
MessageHandler.java 320B
UserAccountLog.java 312B
UserSessionResponse.java 306B
User.java 303B
ShiroConfiguration.java 297B
TextMessageResponse.java 262B
GiftMessageResponse.java 250B
Command.java 244B
ApiStatus.java 221B
GiftMessage.java 213B
TextMessage.java 192B
BaseMessageResponse.java 181B
BaseMessageRequest.java 178B
AdminController.java 148B
package-info.java 137B
package-info.java 130B
package-info.java 111B
package-info.java 102B
package-info.java 99B
package-info.java 97B
package-info.java 58B
img.jpg 46KB
vendor.14d4a832a4dae8a8ce15.js 961KB
plupload.full.min.js 121KB
jquery-1.7.2.min.js 93KB
socket.io.js 90KB
ks3jssdk.js 34KB
app.34a8f76603f8e409d2be.js 26KB
1.8dcb136a10ddcabf31d7.js 22KB
0.1010b18f084715f38e1b.js 21KB
ks3jssdk.min.js 17KB
5.7a55a6c1226f12c5283e.js 15KB
async.min.js 12KB
2.8610532804f896c17436.js 12KB
3.8dee00b30ce8d8ababb7.js 11KB
4.569ff53c1325cd7874a0.js 10KB
moment.min.js 10KB
manifest.a1b592fbe780a6070a7e.js 2KB
6.83c532e48f24e9f1edbb.js 987B
vendor.14d4a832a4dae8a8ce15.js.map 5.48MB
共 140 条
- 1
- 2
资源评论
白话机器学习
- 粉丝: 1w+
- 资源: 7650
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 英语的核心素养.doc
- 幼儿.园家长开放日活动方案.doc
- MATLAB仿真16QAM载波调制信号在AWGN信道下的误码率 形式:程序 程序实现功能:仿真16QAM载波调制信号在AWGN信道下的误码率和误比特率性能,并与理论值相比较 运行版本2014
- 自学考试计算机系统结构问答题汇总.doc
- 幼儿园防止小学化自查报告.doc
- 中级财务管理试题和答案.doc
- 专科《组织行为学》形成性考核册答案.doc
- 剑桥少儿英语考级要求.doc
- 剑桥少儿英语考级要求内容.doc
- 教师职称竞聘述职述廉报告.doc
- 竞选学生会申请书(精选多篇).doc
- 教科版科学四年级(上册)教学案物质在水中是若何溶解的.doc
- 临床医学专业临床肿瘤学课程试题资料讲解.doc
- 练习册翻译答案新编英语教程5第三版.doc
- 跨境电商初级人才考试试题.doc
- 罗宾斯管理学案例分析题答案详细讲解.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功