初期比较简陋...持续改进中
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: 8000spring: 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: zjnzjnenvironment: 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 使用
评论