相关作品
Java应用基础组件
基于Java开发的一套基础组件,用于构建分布式技术平台。包括:RPC(远程方法调用)、流程引擎、消息中间件、缓存中间件,及其与这些组件是配套的监控系统、后台管理系统等
在这些组件和配套系统的基础上,已成功构建并上线运行了诸如:消息中心、自动化部署、开放平台、服务治理、积分系统等上层应用。
MAC-RPC 远程方法调用组件
mac-rpc(Magic Remote Procedure Call)是基于Java AIO开发的一套远程方法调用框架,类似阿里的Dubbo,与之相比有以下优点。
- 全异步机制(从传输层开始),支持:异步调用,异步通知,同步通知,异步回调。
- 支持:同步广播,异步广播,广播通知。
- 精心设计的底层通讯,传输性能更好,阻塞少,可以传输较大的数据。
- 线程利用率更高,性能更优。
- 轻便小巧,API设计简洁,易于使用。
- 任意节点均可作为注册中心
- 内置监控与服务治理接口。
- 提供可定制的管控功能。
MAC-FLOW 流程引擎组件
mac-flow(Magic Flow Engine)是用Java开发的一款小巧精悍的流程引擎。具有以下优点:
- 完全符合自然的编程思路,且无专门的标签需要学习,易于掌握。
- 设计简洁,性能零损耗。
- 扩展性强,支持二次开发。
- 服务包装器设计,支持服务前后处理。
- 支持流程嵌套(包括事务的嵌套等)。
- 支持显式事务的开启、提交与自动回滚,可嵌套。
- 支持MVEL表达式或自定义实现的条件判断分支。
- 支持流程的挂起(暂停)与续跑,可嵌套。
- 支持switch…case多路分支,可嵌套。
- 支持多个try…catch…finally…yrt,可嵌套。
- 支持循环,甚至递归!可嵌套。
- 支持异步并行处理(并行计算),可嵌套。
- 支持事件驱动与通知消息(挂起与续跑),可嵌套。
- 内置冲正(反交易)支持。
- 支持调用链跟踪。
- 配套优秀的流程设计器。
- 可生成流程定义或代码,可二次开发。
MAC-MESSAGE 消息中间件
mac-message(Magic Message Queue)是一套完整的消息中间件(Broker)解决方案,可兼容ActiveMQ协议(可选),与ActiveMQ的客户端无缝集成
- 支持JMS协议和ActiveMQ支持的所有协议,还可直接使用mac-rpc作为客户端。
- 支持传统的点对点和发布订阅模式
- 支持消息在发送、接收、中转三个阶段分别持久化
- 在设计上高效的实现了消息优先级
- 必要与非必要收件人(可指定收件人是否必须送达)
- 过滤与分拣插件(由插件动态决定收件人)
- 提供基于AB复本的高可靠方案(A 节点写入,B节点发送)
- 支持高可靠插件、签收插件
- 支持消息事件与消息追踪
- 提供收件人队列中断保护机制,避免过度堆积与丢失
- 能保证消息的顺序,先发先至
- 能保证消息不被重复发送或消费
MAC-CACHE 缓存组件
mac-cache(Magic Cache Support)提供对缓存中间件的封装与监控(类似Redis的哨兵),以及对应的客户端API的封装
注:目前只支持Redis/Jedis,可通过扩展以支持Memcache
- 支持基于JVM和Redis的缓存
- 支持Redis的主从模式
- 支持基于分组和hash的水平分片
- 支持分片内节点的主备、主从、冷备三种模式
- 提供单独的缓存监控中心,可以完全替代哨兵
- 集群节点状态自动检测与恢复(解决类似redis哨兵集群出现的混乱)
- 可在读写本地缓存时自动与远程缓存同步
- 提供数据装载机制,确保缓存与持久化存储中的数据一致,节点启动时,可从业务数据库或文件重新加载数据