ice使用
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.下载tar包 http://waitmoon.com/downloads/
解压tar包
tar -xzvf ice-server-*.tar.gz
2.编辑application-product.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: product
修改其中的rabbitmq和mysql等配置
4.启动/停止/重启server
启动 ./ice.sh start 停止 ./ice.sh stop 重启 ./ice.sh restart
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模块
开发节点
编排节点
配置触发
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]"
}
]