7 款神秘的开源中间件!

往期热门文章:

1、往期精选优秀博文都在这里了!》

2、MyBatis她不香吗?为啥老外却喜欢Hibernate/Jpa?

3、代码对比工具,我就用这7个!

4、Mybatis 中经典的 9 种设计模式!面试可以吹牛了!

5、海量交易订单查询没做“重试”,一哥们“喜提”P3故障!

作者:码云Gitee

来源:toutiao.com/i6782485898526196236

在系统软件之中,操作系统、数据库、中间件的三驾马车,中间件是最神秘的,而且是一个专业化非常强的细分产业。中间件技术主要用来支撑分布式软件的开发,在大型分布式软件系统中中间件技术发挥着极其重要的作用。今天,小编推荐 7 款 Gitee 上的中间件开源项目,希望能够让你体会到中间件技术的魅力。

1、高性能 Redis 中间件服务 nredis-proxy

项目简介:nredis-proxy 是一个以 redis 协议为主的高性能稳定的代理中间件服务,不侵入业务代码,与业务毫无联系,不需要改任何应用代码,天然支持分布式部署。

项目地址:https://gitee.com/284520459/nredis-proxy

2、.net 业务消息队列 Dyd.BusinessMQ

项目简介:.net 业务消息队列是应用于业务的解耦和分离,应具备分布式,高可靠性,高性能,高实时性,高稳定性,高扩展性等特性,其优点主要是:

  • 大量的业务消息堆积能力

  • 无单点故障及故障监控,异常提醒

  • 生产者端负载均衡,故障转移,故障自动恢复,并行消息插入。

  • 消费者端负载均衡,故障保持,故障自动恢复,并行消息消费。

  • 消息高可靠性持久化,较高性能,较高实时性,高稳定性,高扩展性。

  • 支持99*99个消息分区,单个消息分区单天支持近1亿的消息存储。

  • 消费者拉方式获取消息,在高并发,大量消息涌入的情况下,只要消费能力足够,不会有消息延迟,消息越多性能越好。

项目地址:https://gitee.com/chejiangyi/Dyd.BusinessMQ

3、基于 RabbitMQ 实现的消息中间件 WMQ

项目简介:WMQ 是用 Golang 编写的基于 RabbitMQ 实现的消息中间件,在系统架构对解耦现有业务起到至关重要的作用,服务基于 HTTP 的 API 方式具有跨语言的特点,接入十分简单。能够很好的解决并发控制,异步任务,以及消息订阅与分发。

项目地址:https://gitee.com/snail/wmq-go

4、开源实时消息推送系统 MPush

项目简介:mpush,是一款开源的实时消息推送系统,采用 java 语言开发,服务端采用模块化设计,具有协议简洁,传输安全,接口流畅,实时高效,扩展性强,可配置化,部署方便,监控完善等特点。同时也是少有的可商用的开源push推送系统。

项目地址:https://gitee.com/mpush/mpush

5、分布式 TCP 推送系统 GPush

项目简介:一个 linux 下高效的,分布式 TCP 推送系统实现,单台连接服务器支撑超过百万以上连接,主要适用于千万在线级别规模的应用,对比第三方推送平台,主要优势在于,服务自建,推送效率高,而且可以很方便进行功能扩展。

项目地址:https://gitee.com/gsfw/GPush

6、轻量级Java消息中间件 Uncode-MQ

项目简介:java 轻量级消息中间件,其功能特点如下:

  • 消息存储速度非常快速。

  • 使用简单方便,目前只支持 topic 方式。

  • 依赖 java 环境。

项目地址:https://gitee.com/uncode/uncode-mq

7、MQ、RPC、服务总线 zbus

项目简介:zbus 核心是一个独立实现的小巧极速的消息队列(MQ),支持持久化与内存队列, 支持单播、广播、组播等多种消息通信模式;在 MQ 之上 zbus 完备地支持了 RPC 服务,RPC 支持独立伺服,基于总线两种模式;同时 zbus 支持代理服务,基于 MQ 的 HttpProxy 实现了类 Nginx 的 HTTP 代理服务(支持 DMZ 网络结构),TcpProxy 则支持透明的 TCP 协议代理,可以代理任何基于 TCP 的协议,比如代理 MySQL 数据库。

zbus 内建分布式高可用(HA),解决单点问题;Java/.NET/JS/C++/PHP 等主流语言接入能力为 zbus 充当SOA 服务总线提供跨平台支持;

在设计上,zbus 拥抱 KISS 准则,所有特性浓缩在一个小小的400K左右的 jar 包中(非常少的依赖);轻量,MQ 核心,方便二次开发,zbus 为微服务架构、系统整合、弹性计算、消息推送等场景提供开箱即用的功能支持。

项目地址:https://gitee.com/rushmore/zbus

往期热门文章:

1、《历史文章分类导读列表!精选优秀博文都在这里了!》
2、不就是Select Count语句吗,竟然能被面试官虐的体无完肤!
3、除了 P 站,程序员在摸鱼时还喜欢上这些网站...
4、39 个奇葩代码注释,看完笑哭了。。。
5、Java到底是值传递还是引用传递?
6、Mybatis的这些坑!把我坑惨了!
7、Dubbo必会的18个面试题!一网打尽!

8、可以提高千倍效率的Java代码小技巧
9、ThreadLocal面试六连问,你能Hold住吗?
10、后端开发甩锅指南!

相关推荐
report 是一个开源访问层中间件,基于java平台,依赖于spring,以Mozilla Public License 2.0 协议发布。适用于目前大部分项目接口测试。以及访问控制层使用,简化控制层繁琐代码,简化spring mvc配置,剥离了请求控制层前一系列操作,极大提高项目开发速度,降低学习开发成本。report项目请求通道采用责任链模式设计,扩展性极强,流程完全可控 ankang-report report 是一个开源访问层框架,基于java平台,依赖于spring,以Mozilla Public License 2.0 协议发布。可用于接口调试及性能展示,以及访问控制层使用,简化控制层繁琐代码,简化spring mvc配置,剥离请求前一系列操作,耦合性低,report是请求通道采用责任链模式设计,轻便可控、扩展性强。report测试统计等功能为你每一个接口展示一份完美报告。 report关键特性: a)让所有接口可视化,易于控制开发、并行开发 b)为每一个接口提供测试统计以及报表展示 c)简化spring mvc繁琐配置 d)report请求通道采用职责链模式,扩展性强,完全可控 e)支持多种数据请求方式并可扩展,默认可选json,xml方式 report使用方式: a)maven项目加入report依赖,普通项目则导入jar包 b)引入spring文件 spring/ankang-report.xml,web.xml依赖springMVC配置 c)继承ReportStart类, @Component//通过spring注入 可设置为单例 public class BusinessReportConfig extends ReportStart { @Override protected void reginsterReport() { //注册需要被请求控制层类 reginster(OrderHandler.class); } @Override protected void reginsterResolver() { // 注册自定义解析器 没有自定义可忽略 reginster(OrderHandler.class); } } d)启动项目,访问localhost:8080/项目名/report/console report可配置项 a)自定义配置文件需采用指定资源地址:report/report-config.properties b)REPORT_SWITCH:true 则开启,反之关闭 默认开启 c)FILETER:自定义过滤器,多个以逗号隔开 d)JSON_BOAY:json数据请求方式key名称,默认为body e)XML_BODY:xml数据请求方式key名称,默认为root f)MONITOR_FILE_PATH:统计数据保存地址 默认为/report/report.cc g)END_INVOKE:请求通道链终端类。 系统默认 <!--如果不是采用report返回体,则必须配置以下几项,否则影响统计结果--> h)IS_DEFINED_RESPONSE:是否自定义返回体结构 i)RESPONSE_CODE:自定义返回体请求状态码字段名 j)RESPONSE_MESSAGE:自定义返回体请求消息字段名 k)RESPONSE_RESULT:自定义返回体数据对象字段名 l)ENCODE:参数编码格式 m)ERROR400_PAGE_PATH:400时返回页面地址 n)ERROR500_PAGE_PATH:500时返回页面地址 o)ERROR401_PAGE_PATH:401时返回页面地址 report注解解释 a)@Alias:标注在需要被请求类,value属性值为请求时使用服务名,没有标注report将不予以处理 b)@HTTP:标注在需要被请求方法上,value属性值为请求时方法名,supportMethod属性值为请求类型,默认支持get和post两种,兼容RquestMapping c)@ReportParam:标注在需要注入方法参数上,继承至ReportRequest参数体不需要标注,HttpServletRequest不需要标注,兼容RequestParam d)@Activate:标注在自定义过滤器上,order属性值为排序值,取值范围int,如有重复则顺延 注:自定义解析器扩展,过滤器扩展等等参照源码。
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页