-
消息大量积压怎么解决?
消息的积压来自于两方面:要么发送快了,要么消费变慢了。单位时间发送的消息增多,比如赶上大促或者抢购,短时间内不太可能优化消费端的代码来提升消费性能,唯一的办法是通过扩容消费端的实例数来提升总体的消费....- 盾给网
- 0
- 0
- 938
-
如何保证消息的顺序性?
生产者保证消息入队的顺序。MQ 本身是一种先进先出的数据接口,将同一类消息,发到同一个 queue 中,保证出队是有序的。避免多消费者并发消费同一个 queue 中的消息。...- 盾给网
- 0
- 0
- 745
-
如何保证消息不丢失?
生产者丢失消息:如网络传输中丢失消息、MQ 发生异常未成功接收消息等情况。 解决办法:主流的 MQ 都有确认或事务机制,可以保证生产者将消息送达到 MQ。如 RabbitMQ 就有事务模式和 confirm 模式。MQ 丢失消息:MQ....- 盾给网
- 0
- 0
- 708
-
如何保证消息不被重复消费?
消息被重复消费,就是消费方多次接受到了同一条消息。根本原因就是,第一次消费完之后,消费方给 MQ 确认已消费的反馈,MQ 没有成功接受。比如网络原因、MQ 重启等。所以 MQ 是无法保证消息不被重复消费的,只能业....- 盾给网
- 0
- 0
- 798
-
-
MQ 有哪些使用场景?
异步处理:用户注册后,发送注册邮件和注册短信。用户注册完成后,提交任务到 MQ,发送模块并行获取 MQ 中的任务。系统解耦:比如用注册完成,再加一个发送微信通知。只需要新增发送微信消息模块,从 MQ 中读取任务....- 盾给网
- 0
- 0
- 510
-
你了解哪些常用的 MQ?
ActiveMQ:支持万级的吞吐量,较成熟完善;官方更新迭代较少,社区的活跃度不是很高,有消息丢失的情况。RabbitMQ:延时低,微妙级延时,社区活跃度高,bug 修复及时,而且提供了很友善的后台界面;用 Erlang 语言....- 盾给网
- 0
- 0
- 492
-
使用 MQ 的缺陷有哪些?
系统可用性降低:以前只要担心系统的问题,现在还要考虑 MQ 挂掉的问题,MQ 挂掉,所关联的系统都会无法提供服务。系统复杂性变高:要考虑消息丢失、消息重复消费等问题。一致性问题:多个 MQ 消费系统,部分成功,....- 盾给网
- 0
- 0
- 503
-
MQ 是什么?为什么使用?
MQ(Message Queue)消息队列,是 "先进先出" 的一种数据结构。MQ 的作用:一般用来解决应用解耦,异步处理,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。应用解耦:当 A 系统生产关键....- 盾给网
- 0
- 0
- 553
-
方法区内存溢出怎么处理?
在 Java 虚拟机中,方法区是可供各线程共享的运行时内存区域。在不同的 JDK 版本中,方法区中存储的数据是不一样的:JDK 1.7 之前的版本,运行时常量池是方法区的一个部分,同时方法区里面存储了类的元数据信息、静....- 盾给网
- 0
- 0
- 539
-
对象创建过程是什么样的?
对象在 JVM 中的创建过程如下:JVM 会先去方法区找有没有所创建对象的类存在,有就可以创建对象了,没有则把该类加载到方法区在创建类的对象时,首先会先去堆内存中分配空间当空间分配完后,加载对象中所有的非静态....- 盾给网
- 0
- 0
- 502
-
Java中类加载过程是什么样的?
类加载的步骤为,加载 -> 验证 -> 准备 -> 解析 -> 初始化。1、加载:获取类的二进制字节流将字节流代表的静态存储结构转化为方法区运行时数据结构在堆中生成class字节码对象2、验证:连接过程的第一步....- 盾给网
- 0
- 0
- 527