场景实战Demo使用指引

个人之前学习过程中对JarsLink模块化场景使用做了一些Demo放在github上,用兴趣的同学可以了解下

Quickstart 快速开始

git clone https://github.com/Evan43789596/jarslink-in-action.git
cd jarslink-in-action/module-main/
mvn clean package
java -jar target/module-main-0.0.1-SNAPSHOT.jar

Let’s start: http://localhost:8080


Demo说明

本Demo基于简单的案例引导大家举一反三学会使用JarsLink用于日常工作,本教程目前提供如下情景Demo演示:

- (情景一)工作流业务特性逻辑动态处理:模拟消费金融相似的风控审核流程,基于不同的产品,路由到对应产品的模块Jar去执行特性逻辑

- (情景二)在线动态切换缓存:模拟在线不停机切换底层缓存框架

- (情景三)插拔式增删功能:模拟日常工作中一些功能可以在线不停机插拔式添加和下架(未完成)

模块说明

module-main 核心模块,用于加载模块JAR包,对外提供服务

workflow-module-taobao 【工作流业务特性逻辑动态处理演示模块】用于模拟处理taobao产品业务逻辑的Jar包

workflow-module-tencent 【工作流业务特性逻辑动态处理演示模块】用于模拟处理tencent产品业务逻辑的Jar包

cache-module-api 【缓存情景演示模块】用于存放缓存模块的公用组件的Jar包

cache-module-memory 【缓存情景演示模块】用于模拟执行内存操作的Jar包

cache-module-mongodb 【缓存情景演示模块】用于模拟执行MongoDb操作的Jar包

cache-module-redis 【缓存情景演示模块】用于模拟执行redis操作的Jar包


使用说明

启动com.eshare.ModuleApplication后

default:http://localhost:8080/

首页会看到如下界面:

准备工作:

使用前创建目录:D:\upload\lib和D:\upload\process

情景一环境部署

情景说明:

本demo通过 “workflow-module-taobao” 和 “workflow-module-tencent” 分别去模拟处理两个产品不同业务特性请求

使用步骤:

  • 将项目process目录下的流程common_risk_approval_process.uflo.xml放在D:\upload\process目录下



  • 使用Mave命令 “mvn package” 分别对workflow-module-taobao和workflow-module-tencent两个模块打包,

    生成workflow-module-taobao-0.0.1.jar和workflow-module-tencent-0.0.1.jar文件







  • 运行 “ModuleApplication”

  • 输入http://localhost:8080/会看到如下界面

  • 选择场景一,进入演示场景,会显示如下界面:

  • 分别上传之前打包好的模块包workflow-module-taobao-0.0.1.jar和workflow-module-tencent-0.0.1.jar,上传成功后在界面会

    看到成功提示,并且在D:\upload\lib目录下会看到我们上传的Jar包







- 点击流程控制中心,上传我们放在项目process下的流程模板,会看到如下界面:



  • 点击运行按钮,如下图所示输入流程变量参数,然后点击开启流程

这里是用于模拟一个流程模板为多个不同产品服务的场景,这里的输入参数用来告诉程序使用

taobao模块的approval动作去处理

  • 执行流程后,可以在控制台看到日志,如下图所示:



意味着程序已经成功把请求交到taobao模块去执行了


工作原理

工作原理是当流程接收到A产品的请求,自动路由到A模块去处理具体的审核逻辑;当流程接收到B产品的请求,自动路由到B模块去处理具体的审核逻辑;

从而实现同一个流程模板可以多个产品使用,各个产品实现对应产品的业务特性逻辑。




情景二环境部署

情景说明:

本demo通过cache-module-memory、cache-module-mongodb、cache-module-redis 几个模块模拟在线切无感知切换底层缓存框架

使用步骤:

  • 使用Mave命令 “mvn package” 分别对cache-module-memory、cache-module-mongodb和cache-module-redis三个模块打包,

    生成cache-module-memory-0.0.1.jar、cache-module-mongodb-0.0.1.jar和cache-module-redis-0.0.1.jar三个JAR包

  • 运行 “ModuleApplication”

  • 输入http://localhost:8080/会看到如下界面



  • 选择场景二,进入演示场景,会显示如下界面:

  • 分别上传之前打包好的模块包cache-module-memory-0.0.1.jar、cache-module-mongodb-0.0.1.jar和cache-module-redis-0.0.1.jar,上传成功后在界面会

    看到成功提示,并且在D:\upload\lib目录下会看到我们上传的Jar包



  • 点击缓存管理,会看到如下图界面,这时候我们可以设置我们的缓存key和value,并且可以通过key进行查询操作:



  • 点击缓存切换,输入模块名称和版本号,可以在线无感知切换底层缓存框架,这里模拟缓存从memory切换成redis存储:

工作原理

工作原理是受到切换到指定缓存模块请求,直接替换掉现有的存储模块,从而达到在线无感知切换底层存储结构

最新文章

  1. ABP文档 - 异常处理
  2. (十五)WebGIS中平移功能的设计和实现
  3. 在 CentOS7 上安装 MySQL5.7
  4. 125个工具与技术(PMBOK2008)
  5. Specific sleep staging features in EEG
  6. ios 消息通知
  7. jQuery与其他JS库共存
  8. service(启动方式)
  9. 第四十二课:基于CSS的动画引擎
  10. code::blocks 初使用遇到的问题记录
  11. Map中如何把没有定义操作符<的类作为key
  12. IDEA翻译插件推荐Translation 安装和使用以及快捷键绑定
  13. UNIX网络编程——通过UNIX域套接字传递描述符和 sendmsg/recvmsg 函数
  14. 单元测试系列之九:Sonar 常用代码规则整理(一)
  15. 【BZOJ3451】Normal
  16. bzoj千题计划318:bzoj1396: 识别子串(后缀自动机 + 线段树)
  17. day05 Python中的set集合
  18. 多线程ExecutorService中submit和execute区别
  19. Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases
  20. L302 如何避免秃头

热门文章

  1. 使用poi读写excel、向excel追加数据等,包括.xls和.xlsx文档
  2. 【温故知新】Java web 开发(一) 新建项目
  3. VC/c++版本获取现行时间戳精确到毫秒
  4. Java网络编程——UDP聊天程序
  5. virtualenv虚拟环境使用及介绍
  6. React框架随笔
  7. Linux网络管理之多网卡绑定
  8. C# 阿里云查询、删除文件
  9. python利用sift和surf进行图像配准
  10. python对象的初始化