【SEDA异步框架】【三】异步框架技术选型
基于SEDA的异步框架设计与实现
三、异步框架技术选型
在这次实现的SEDA异步框架中,采用的基础架构原型如下:
采用了spring+quartz+fastjson+rabbitmq来实现。和传统SEDA架构区别比较大的地方在于:
1、采用分布式mq(使用了rabbitmq)而不是blockingqueue。如此既可以支持以后可能进行的分布式化扩展,也可以使得框架具有高可用性,在大数据处理的时候仍可具有较为客观的性能。同时,消息的传递过程中,采用了高性能的fastjson进行数据序列化和反序列化。使得数据在stage之间的传递速度更快。
2、除了分布式mq之外,还提供了本地动态线程池所需要的队列。避免了consumer由于长时间处理导致数据在队列中积压。
3、stage利用quartz来提供定时功能,使得stage中的work可以选择定时/实时进行数据处理。从而迎合更多不同类型的需求。(比如定时报警,定时分析监控数据)
1、spring
spring无需再赘述,使用其IOC、AOP等功能,并同时使用spring的其他组件比如spring-rabbit、spring-quartz等。保证spring各包兼容即可。
2、quartz
quartz 的介绍文档网上很多,quartz作为一款优秀的定时器框架可以和spring无缝结合,同时还具有java自带的定时器timer所不具备的定时启动的 功能。其类crontab风格的定时任务声明也更符合我们企业级应用过程中的书写风格。之前文章中介绍过使用quartz过程中需要关注的几个点,复述如 下:1)Job不能为内部类,否则无法初始化
2)保证spring升级到新版本。如果使用老版本比如3.0.5,则会出现如下异常:
相关推荐
smalllove 2020-11-03
greensomnuss 2020-10-27
feinifi 2020-10-14
RickyIT 2020-09-27
meleto 2020-08-17
MicroBoy 2020-08-02
牧场SZShepherd 2020-07-20
容数据服务集结号 2020-07-19
与卿画眉共浮生 2020-11-13
hellowordmonkey 2020-11-02
丽丽 2020-10-30
周太郎 2020-10-28
职业炮灰 2020-10-16
与卿画眉共浮生 2020-10-14
feinifi 2020-10-13
yangjinpingc 2020-10-09
davis 2020-09-29
lisongchuang 2020-09-27