摘要:项目介绍简单地多模块项目,模块间通过进行消息传递,使用作临时存储作缓存作最终数据存储。
modular 项目介绍
简单地多模块项目,模块间通过kafka进行消息传递,使用Mysql作临时存储、Redis作缓存、MongoDB作最终数据存储。
项目代码获取:https://github.com/pysasuke/m...
modular-common(公用模块)
modular-common-base(简单公用类)
modular-common-database(Mysql相关模块)
modular-common-kafka(Kafka相关模块)
modular-common-mongo(MongoDB相关模块)
modular-common-redis(Redis相关模块)
modular-handler(请求处理模块)
modular-first(第一部分服务模块)
modular-second(第二部分服务模块)
modular-third(第三部分服务模块)
modular-exhandler(异常数据处理模块)(补偿机制)
基本流程由于只是demo,故只用简单地first、second、third指代具体服务,切以third服务为最终服务,handler也是使用手动构造的数据
请求发起
经handler模块后
向Mysql写入一条数据
向Redis写入一条数据
向Kafka发送一条消息
first模块收到handler模块发送的消息后
从Redis取出对应数据并校验
成功后修改Mysql数据
修改Redis数据
向Kafka发送一条消息
second模块接收到first模块的发送的消息后
从Redis取出对应数据并校验
成功后修改Mysql数据
修改Redis数据
向Kafka发送一条消息
third模块接收到second模块的发送的消息后
从Redis取出对应数据并校验
成功后向MongoDB写入一条数据
删除Redis数据
删除Mysql数据
exhandler模块为补偿机制
按照一定的策略处理Mysql中遗留的错误数据(正常情况所有数据都将转移到MongoDB中)
项目启动执行deploy中update.sql创建record表
替换modular-common-database中application.properties配置文件中的相关参数为自己的Mysql参数
替换modular-common-redis中application.properties配置文件中的相关参数为自己的Redis参数
替换modular-common-mongo中application.properties配置文件中的相关参数为自己的MongoDB参数
修改modular-common-base中KafkaConstants类中BOOTSTRAP_SERVERS常量为自己Kafka地址(由于只是demo,故未做成配置文件)
启动相关服务
正常流程
modular-handler(请求处理模块)
modular-first(第一部分服务模块)
modular-second(第二部分服务模块)
modular-third(第三部分服务模块)
补偿机制
modular-exhandler(异常数据处理模块)
结果预测modular-first:输出 first service complete
modular-second:输出 second service complete
modular-third:输出 third service complete
MongoDB中写入了一条数据
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68270.html
摘要:项目介绍简单地多模块项目,模块间通过进行消息传递,使用作临时存储作缓存作最终数据存储。 modular 项目介绍 简单地多模块项目,模块间通过kafka进行消息传递,使用Mysql作临时存储、Redis作缓存、MongoDB作最终数据存储。项目代码获取:https://github.com/pysasuke/m... 项目结构 modular-common(公用模块) modul...
摘要:父类为,代表着一系列文章的列表。对于可读性较好地与代码,不应该像一本书,而应该像一个故事,一个故事中会存在角色和角色之间的关系,而这种更多的语义化地可以较好地提示你整个代码的可维护性。无论哪种文件组织方式比较顺眼,你都应该遵循统一的原则。 原文地址。本文从属于Web 前端入门与最佳实践。 CSS的学习是一个典型的低门槛,高瓶颈的过程,第一次接触CSS的时候觉得一切是如此简单,直到后面越...
摘要:还有一个值得关注的是加密媒体扩展标准其支持用原生和开发播放加密视频。专业流媒体发布商将无法依靠微软的技术在和安卓设备上的火狐来加密自己的内容。因此,不同的系统组合,如用于和安卓的,用于和的,还有用于的。 英文原文:HTML5 Media Source Extensions: Bringing Production Video To The Web 在过去的十几年,像Flash和Silv...
阅读 2716·2023-04-25 14:21
阅读 1150·2021-11-23 09:51
阅读 3914·2021-09-22 15:43
阅读 596·2019-08-30 15:55
阅读 1535·2019-08-29 11:28
阅读 2392·2019-08-26 11:44
阅读 1658·2019-08-23 18:15
阅读 2847·2019-08-23 16:42