消息对列MQ

消息队列

优点

1.实现系统解耦

2.实现异步调用

3.流量削峰

缺点

1.系统可用性降低

2.提高系统的复杂度

3.数据一致性问题

Kafka

概述

一个分布式消息发布订阅系统,一个分布式的日志提交系统。性能高效、可扩张性良好和可以持久化。它的分区特性,可复制和可容错都是其不错的特性。

优点

1.高性能:单机写入TPS约在100万条/秒,消息大小10个字节;

2.提供完全分布式架构,并有replica机制,拥有较高的可用性和可靠性,理论上支持消息的无限堆积;

3.消费者采用pull方式获取消息。消息有序,通过控制能够保证所有消息被消费且仅被消费一次;

4.在日志领域比较成熟,被多家公司和多个开源项目使用。有管理界面kafka-manager。

缺点

1.Kafka单机超过64个队列/分区,load时会发生明显的飙高现象。队列越多,负载越高,发送消息响应时间变长;

2.使用短轮询方式,实时性取决于轮询间隔时间;

3.消费失败不支持重试;

4.社区更新较慢。

Rocket MQ

概述

Java语言实现,消息可靠性比Kafka更好,广泛应用在订单、交易、充值、流计算、消息推送、日志流式处理,binglog分发等场景。

优点

1.单机支持一万以上的持久化队列;

2.RocketMQ的所有消息都是持久化的,先写入系统PAGECACHE,然后刷盘,可以保证内存与磁盘都有一份数据,而访问时,直接从内存读取;

3.模型简单,接口易用(JMS的接口很多场合并不太实用);

4.性能非常好,可以允许大量堆积消息在Broker中;

5.支持多种消费模式,包括集群消费,广播消费等;

6.各个环节分布式扩展设计,支持主从和高可用;

7.开发度较活跃,版本更新很快。

缺点

1.支持的客户端语言不多,目前时JAVA和C++,其中C++还不成熟;

2.RocketMQ社区关注度及成熟度也不及Kafka;

3.没有web管理界面,提供另一个cli管理工具带来查询、管理和诊断各种问题;

4.没有在MQ核心里实现JMS等接口

RabbitMQ

概述

一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统。

优点

1.由于Erlang语言的特性,消息队列性能较好,支持高并发;

2.健壮、稳定、易用、跨平台、支持多语言、文档齐全;

3.有消息确认机制和持久化机制,可靠性较高;

4.高度可定制的路由;

5.管理界面较丰富,在互联网公司也有较大规模的应用,社区活跃度高。

缺点

1.实现了代理架构,意味着消息在发送到客户端之前可以在中央节点上排队。此特性是的RabbitMQ易于使用和部署,但是使得其运行速度较慢,因为中央节点增加了延迟,消息封装后也比较大;需要学习比较复杂的接口和协议,学习和维护成本较高;

2.尽管结合Erlang语言本身的并发优势,性能友好,但是不利于做二次维护和开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/193198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ Easyx 三子棋

目录 思路 框架​编辑 读取操作 数据操作 绘制画面 游戏的数据结构 用二维数组来模拟棋盘格 赢的情况 平局情况 Code 代码细节部分 (1)初始化棋盘格 (2) 初始化棋子类型​编辑 事件处理部分 落子 框架内代码的完善 数据处…

半监督节点分类上的HyperGCN

1.Title HyperGCN: Hypergraph Convolutional Networks for Semi-Supervised Classification(Naganand Yadati、Prateek Yadav、Madhav Nimishakavi、Anand Louis、Partha Talukdar)【ACM Transactions on Knowledge Discovery from Data 2022】 2.Conc…

【并发编程】CopyOnWriteArrayList详解与原理

📫作者简介:小明Java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于…

springboot中EventSourceListener的onEvent方法中, 获取HttpServletResponse对象

在Spring Boot中,可以通过注入HttpServletResponse对象来获取。具体步骤如下: 在EventSourceListener类中定义一个HttpServletResponse类型的成员变量response,并添加一个构造函数,将response作为参数传入。 在onEvent方法中&…

SmartSoftHelp8,IIS Nginx,windows linux 高并发服务器优化配置工具

Windows IIS 性能优化配置 Windows Nginx 性能优化配置模板 Linux Nginx 性能优化配置模板 Nginx 常用命令 webconfig 优化配置详细说明 下载地址: https://pan.baidu.com/s/1zBgeYsqWnSlNgiKPR2lUYg?pwd8888

深入理解网络非阻塞 I/O:NIO

🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏&…

java应用程序性能分析

一、Java程序性能优化 1. 程序的性能通过以下几个方面来表现: 1)执行速度:程序的反映是否迅速,响应时间是否足够短; 2)内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏&…

监测tcp连接状态

using System; using System.Collections.Generic; using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks;namespace 检测tcp连接状态 {public class TCPClient{private TcpClient client;private bool con…

npm上传发布自定义组件超详细流程

前言 vue3,vite,基于element Plus 的el-table二次封装表格并且上传到npm上,让别人可以通过npm安装你的插件。 一、创建一个新的vue 项目 npm create vuelatest 自己取一个名字,然后一直回车 完成以后进入项目npm i,有用到eleme…

02-获取连接数据库的Connection对象的方式

获取连接对象连接数据库的方式 JDBC编程六步 创建并注册驱动对象 : 告诉Java程序即将要连接的是哪个品牌的数据库(注意使用反射机制加载Driver类时会自动完成驱动的创建和注册)使用注册对象获取连接对象: 表示JVM的进程和数据库进程之间的通道打开了,这属于进程之…

API无代码开发让尘锋SCRM与营销系统集成,提高电商平台客服效率

API无代码开发的力量 随着电商平台业务的日益增长,客服系统的效率和响应速度成为了企业关注的焦点。API无代码开发的出现,为企业提供了一个高效的解决方案。API(Application Programming Interface,应用编程接口)允许不同的软件系统之间进行有…

C++ IO库

IO类 IO对象不能拷贝和赋值 iostream 表示形式的变化: 将100转换成二进制序列 然后格式化输出 x,y共用一块内存 输出的时候用不同的方式解析同一块内存 操作 格式化:内部表示转换为相应字节序列 缓存:要输出的内容放到缓存 编码转换&…

Linux 防火墙,了解就好

目录 安全技术 防火墙的分类 按保护范围划分 按实现方式划分 按网络协议划分 应用层防火墙(7层) 防火墙的工作原理 linux防火墙的基本认识 防火墙工具介绍 1.iptables 2.firewalld 3.nftables 安全技术 —— 入侵检测系统(Intru…

【Java基础系列】BigDecimal入门

一.基本介绍 1.什么是 BigDecimal? BigDecimal 是 Java 中的一个类,用于表示任意精度的十进制数。它属于 java.math 包,并提供了高精度的浮点数运算。与基本数据类型的浮点数(如 float 和 double)不同,BigDecimal 可…

Xilinx Zynq-7000系列FPGA多路视频处理:图像缩放+视频拼接显示,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA图像处理方案FPGA图像缩放方案FPGA视频拼接叠加融合方案推荐 3、设计思路详解HLS 图像缩放介绍Video Mixer介绍 4、vivado工程介绍PL 端 FPGA 逻辑设计PS 端 SDK 软件设计 5、工程移植说明vivado版本不一致处理FPGA型号不一致处理其他…

【投稿优惠|稳定出版】2023年信息科学和大数据应用国际会议 (ICISBDA 2023)

2023年信息科学和大数据应用国际会议 (ICISBDA 2023) 2023 International Conference on Information Science and Big Data Applications (ICISBDA 2023) 一、会议简介 🎉🎉🎉🎉🎉&…

Tensorflow的日志log记录

if OUTPUT_GRAPH:tf.summary.FileWriter("logs/", sess.graph)自动创建文件夹log

分享一个大学生免费的资源网站(含考研资源,竞赛四六级)

今天不小心从其他地方链接到的网站,里面包含考考研资料,四六级相关的资料,重点都是免费的,部分资料可能需要登录或者关注公众号才可见,,网站链接了CSDN 能跳转到CSND, 网站地址 :忠哥资源共享http://jian…

Pandas时序数据分析实践—基础(1)

目录 1. Pandas基本结构2. Pandas数据类型2.1. 类型概述2.1.1. 整数类型(int):2.1.2. 浮点数类型(float):2.1.3. 布尔类型(bool):2.1.4. 字符串类型(object&a…

Android 源码编译

一,虚拟机安装 ​ 1.1 进入https://cn.ubuntu.com/download中文官网下载iso镜像 1.2 这里我们下载Ubuntu 18.04 LTS 1.3虚拟VM机安装ubuntu系统,注意编译源码需要至少16G运行内存和400G磁盘空间,尽量设大点 二 配置编译环境 2.1 下载andr…