-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Tang Yuan edited this page Jul 16, 2022
·
30 revisions
maven
<!--最新release版本0.0.13-->
<dependency>
<groupId>xyz.hellothomas</groupId>
<artifactId>jedi-client</artifactId>
<version>0.0.13</version>
</dependency>gradle
implementation group: 'xyz.hellothomas', name: 'jedi-client', version: '0.0.13'jedi:
enable: true #必配置,不打开无法使用管理平台
mode: 0 #模式,默认0 0:监控+参数动态配置 1:仅监控 2:仅参数动态配置 3:脱机模式(仅使用本地配置)
#mode非脱机模式时,url、namespace、app-id必配置
url: http://jedi-config.hellothomas.xyz:8081 #config的地址
namespace: dev #环境
app-id: my-netty #应用名
order: 0 #jedi监控切面优先级,默认0
executors: jedi-default-executor,test-pool1 #多个线程池使用逗号隔开,若不配置使用默认线程池jedi-default-executor
#以下为每个线程池默认配置,可不配置,具体含义可以参考jdk java.util.concurrent.ThreadPoolExecutor
jedi-default-executor:
core-pool-size: 10
max-pool-size: 20
keep-alive-seconds: 60
queue-capacity: 1000
ticker-cycle: 5000 #本客户端向服务端打点周期ms
allow-core-thread-time-out: false
rejected-execution-handler: java.util.concurrent.ThreadPoolExecutor$AbortPolicy
test-pool1:
core-pool-size: 10
max-pool-size: 20
keep-alive-seconds: 60
queue-capacity: 1000
ticker-cycle: 5000 #本客户端向服务端打点周期ms
allow-core-thread-time-out: false
# 若需使用JDK CallerRunsPolicy,请使用JediCallerRunsPolicy替换
# xyz.hellothomas.jedi.core.internals.executor.JediThreadPoolExecutor$JediCallerRunsPolicy
rejected-execution-handler: java.util.concurrent.ThreadPoolExecutor$AbortPolicy
#任务持久化相关配置
persistence:
enable: true #默认false,开启后结合@JediAsync持久化任务
retryer:
enable: true #默认false
path: /jedi/tasks/retry #重试时暴露的requestMapping path
recover:
enable: true #默认false
data-source-names: datasource1,datasource2 #需要自恢复的数据源,单数据源应用可不配置
executor: jedi-default-executor #自恢复任务本身的执行器,不配置时直接新建线程处理示例代码
// 当容器只有一个JediThreadPoolExecutor时,executorName可不配置
// taskName不配置时,默认值jedi-default-task,支持SpEL
// taskExtraData可不配置,支持SpEL
// persistent默认false,是否持久化
// dataSourceName指定持久化的数据源,单数据源应用可不配置
// recoverable默认false,是否需要故障自恢复,即重启时自动执行数据库中未执行任务
// traceable默认true,是否需要异步链路,使用时需实现AsyncTraceFactory替换默认实现
@JediAsync(executorName = "xx0", taskName = "'xx1", taskExtraData = "'xx2'", persistent = true, dataSourceName =
"xx3", recoverable = true, traceable = true)使用任务持久化功能时,需要建JEDI_TASK_EXECUTION表。
建表脚本在jedi-client依赖包中resources/script目录下,mysql执行schema-mysql.sql,oracle执行schema-oracle.sql。


部署两个数据库jedi_config、jedi_consumer(Mysql8.0+) 分别执行doc/db/tables_jedi_config.sql,doc/db/tables_jedi_consumer.sql建表
性能收集推荐使用KAFKA,部署KAFKA
创建4个topic,分别用作线程池打点,任务数据上报,线程池关闭,自定义通知。命名可自定义,jedi-consmer中需配置一致。
executor-ticker-topic: executor-ticker executor-task-topic: executor-task executor-shutdown-topic: executor-shutdown custom-notification-topic: custom-notification
修改配置文件
swagger:
enable: true #无需swagger,则置为false,以下无需配置
base-package: xyz.hellothomas.jedi.config.api
title: Jedi-Config-Service
host: 127.0.0.1:8081 #替换config域名
description: Jedi-Config服务
version: 1.0.0
contact:
name: Thomas
url: https://www.hellothomas.xyz
email: tyty2017@qq.com
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/jedi_config?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
&serverTimezone=Asia/Shanghai #替换数据库url
username: root #替换数据库用户名
password: 123456 #替换数据库密码
config-service:
cache-enabled: true
consumer-url: http://127.0.0.1:8080 #替换consumer域名
aspect.logging.enable: true打包
mvn clean package -pl jedi-config -am修改配置文件
swagger:
enable: true #无需swagger,则置为false,以下无需配置
base-package: xyz.hellothomas.jedi.admin.api
title: Jedi-Admin-Service
host: 127.0.0.1:8082 #替换admin域名
description: Jedi-Admin服务
version: 1.0.0
contact:
name: Thomas
url: https://www.hellothomas.xyz
email: tyty2017@qq.com
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/jedi_config?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
&serverTimezone=Asia/Shanghai #替换数据库url
username: root #替换数据库用户名
password: 123456 #替换数据库密码
admin-service:
aspect.logging.enable: true
consumer-url: http://127.0.0.1:8080 #替换consumer域名
super-admin: admin #超级管理员打包
mvn clean package -pl jedi-config -am修改配置文件
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/jedi_consumer?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
&serverTimezone=Asia/Shanghai #替换数据库url
username: root #替换数据库用户名
password: 222222 #替换数据库密码
swagger:
enable: true #无需swagger,则置为false,以下无需配置
base-package: xyz.hellothomas.jedi.consumer.api
title: Jedi-Consumer-Service
host: 127.0.0.1:8080 #替换consumer域名
description: Jedi-Consumer服务
version: 1.0.0
contact:
name: Thomas
url: https://www.hellothomas.xyz
email: tyty2017@qq.com
consumer:
type: HTTP #若配置为KAFKA,则需配置spring.kafka.*
url: http://127.0.0.1:8080 #替换consumer域名
executor-ticker-topic: executor-ticker
executor-task-topic: executor-task
executor-shutdown-topic: executor-shutdown
custom-notification-topic: custom-notification
consumer-service:
aspect.logging.enable: true打包
mvn clean package -pl jedi-consumer -amnpm run build #生成dist文件夹
dockerfile
FROM nginx:1.21
MAINTAINER hellothomas
ENV TZ=Asia/Shanghai
COPY dist/ /usr/local/nginx/html/ #将编译好的dist文件放置nginx目录下
COPY nginx.conf /etc/nginx/nginx.conf #将源码中nginx.conf替换nginx中同名文件
EXPOSE 8080
RUN echo 'echo init ok!'