初期比较简陋...持续改进中
ice 简介:ice简介
文档地址:http://waitmoon.com/docs
配置体验地址:http://waitmoon.com (目前前端待改善,白屏较久)
准备工作
RabbitMq&Mysql
安装 rabbitmq 用于配置拉取与更新
安装 mysql 用于存储配置,并导入表结构
https://github.com/zjn-zjn/ice/blob/master/ice-server/src/main/resources/ice.sql
Server 部署
1.下载 jar
https://repo1.maven.org/maven2/com/waitmoon/ice/ice-server/0.0.4/ice-server-0.0.4.jar
2.新增编辑 application-dev.yml
#端口
server:
port: 8000
spring:
rabbitmq:
port: 5672
host: localhost
username: guest
password: guest
datasource:
url: jdbc:mysql://127.0.0.1:3306/ice?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai
username: zjn
password: zjnzjn
environment: dev
复制代码
修改其中的 rabbitmq 和 mysql 配置
4.启动 server
nohup java -jar ice-server-0.0.4.jar --spring.profiles.active=dev 2>&1 &
复制代码
5.增加 app
在 ice_app 表中插入 app 信息,如:
6.打开配置页面
http://localhost:8000 (第一次进去会因为加载 js 白屏较久,也不能刷新..优化中(不会写前端...))
7.示例配置
http://waitmoon.com (第一次进去会因为加载 js 白屏较久,也不能刷新..优化中(不会写前端...))
Client 接入
参考 github ice-test 模块
1.增加 pom 依赖
<dependency>
<groupId>com.waitmoon.ice</groupId>
<artifactId>ice-client-spring-boot-starter</artifactId>
<version>0.0.4</version>
</dependency>
复制代码
2.增加 ice 配置
ice:
app: 1
rabbit:
port: 5672
host: localhost
username: guest
password: guest
reply-timeout: 10000
复制代码
其中 app:与 ice_app 表中 id 相同
rabbit 配置与 server 相同
Client 使用
参考 github ice-test 模块
开发节点
todo...
编排节点
todo...
配置触发
1.组装 IcePack
2.调用 IceClient.process(IcePack pack)
3.举例
POST 请求
http://www.waitmoon.com/ice-test/test
入参 body(IcePack):
{
"iceId":1, //触发的ID(ice_base的id) 优先触发
"scene":"recharge", //iceId不存在时优先 触发所有监听此场景的handler
"confId":1, //触发的配置ID(ice_conf的id) iceId和scene都不存在时触发 将此confId作为root触发
"roam":{ //IceRoam 游离字段 类似于Drools等的Fact对象 存放业务字段供后续编排使用
"spend":80, //自定义业务-充值金额
"uid":1 //自定义业务-用户ID
},
"requestTime":1633449600000, //请求时间 默认当前时间
"traceId":"Jcl_kQ2mdSHIBm6ufC_EQc" //链路ID 不填默认生成
}
复制代码
response(List<IceContext>):
[
{
"iceId": 1, //触发的iceId
"iceTime": 1625195223010, //进入ice执行时间
"pack": { //IcePack
"iceId": 1,
"requestTime": 1633449600000,
"roam": { //IceRoam 存放业务字段
"uid": 1,
"SEND_POINT": true, //业务自定义放置的字段(如查询是否是会员,将查询结果放入roam供后续节点使用)
"spend": 80
},
"traceId": "Jcl_kQ2mdSHIBm6ufC_EQc",
},
//执行过程[confId:节点名:返回结果:执行时间]
"processInfo": "[2:TimeChangeNone:N:0][6:ScoreFlow:F:0][4:And:F:0][8:ScoreFlow:T:0][9:PointResult:T:1][5:And:T:1][3:Any:T:1][1:None:N:1]"
}
]
复制代码
Server 使用
评论