摘要: 延迟队列存储的对象肯定是对应的延时消息,所谓”延时消息”是指当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者才拿到这个消息进行消费。 应用场景: 在订单系统中,一个用户下单之后通常有30分钟的时间进行支付,如果30分钟之内没有支付成功,那么这个订单将进行取消处理。这时就可以使 阅读全文
posted @ 2021-11-15 19:41 lq-12040 阅读(49) 评论(0) 推荐(0)
摘要: 应用场景: 代码示例: pom依赖和rabbitmq.properties与spring集成rabbitmq相同 在spring-rabbitmq-consumer.xml 需要做如下配置:(设置消费者监听器为手动确认模式,并且配置参数prefetch表示消费端每次从mq拉取多少条消息。直到手动确认 阅读全文
posted @ 2021-11-15 19:39 lq-12040 阅读(78) 评论(0) 推荐(0)
摘要: TTL(Time To Live):存活时间/过期时间。 当消息到达存活时间后,还没有被消费,会被自动清除。 RabbitMQ可以对消息设置过期时间,也可以对整个队列(Queue)设置过期时间。 如果设置了消息的过期时间,也设置了队列的过期时间,它以时间短的为准。 如果对交换机,队列做了修改。需要判 阅读全文
posted @ 2021-11-15 19:39 lq-12040 阅读(74) 评论(0) 推荐(0)
摘要: 死信队列DLX:DeadLetter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。 消息成为死信的三种情况: 队列消息数量到达限制;比如给队列最大只能存储10条消息,当第11条消息进来的时候存不下了,第11条消息就被称为死 阅读全文
posted @ 2021-11-15 19:39 lq-12040 阅读(59) 评论(0) 推荐(0)
摘要: 可靠性投递可分为两个阶段: 1. producer --> broker 2. broker --> consumer producer 到 mq server又可以分为两个阶段: producer → exchange 采用confirm确认模式,即从producer到exchange就会返回一个 阅读全文
posted @ 2021-11-15 19:38 lq-12040 阅读(53) 评论(0) 推荐(0)
摘要: #####rabbitmq的常见问题及解决方案:https://hollis.blog.csdn.net/article/details/107678977 消息丢失:消息确认模式+持久化(消息可靠性提升,可能会导致性能下降,比如消息刷盘,多副本同步。) 生产消息:生产者把消息发送到broker,要 阅读全文
posted @ 2021-11-15 19:15 lq-12040 阅读(603) 评论(0) 推荐(0)
摘要: 1. 生产者工程 pom依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i 阅读全文
posted @ 2021-11-15 19:14 lq-12040 阅读(224) 评论(0) 推荐(0)
摘要: 创建生产者工程,pom依赖引入。 <!-- 1. 父工程依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2 阅读全文
posted @ 2021-11-15 19:13 lq-12040 阅读(98) 评论(0) 推荐(0)
摘要: Topics通配符模式 需要设置类型为topic的交换机,交换机和队列进行绑定,并且指定通配符方式的routing key,当发送消息到交换机后,交换机会根据routing key将消息发送到对应的队列 topic模式是direct模式的升级版,可以对routing key使用通配符。 Routin 阅读全文
posted @ 2021-11-15 18:32 lq-12040 阅读(94) 评论(0) 推荐(0)
摘要: Routing路由模式 需要设置类型为direct的交换机,交换机和队列进行绑定,并且指定routing key,当发送消息到交换机后,交换机会根据routing key将消息发送到对应的队列 应用场景:在不同策略下,使用不同的消费者去使用该模式。 代码层面:交换机与队列绑定时,必须指定routin 阅读全文
posted @ 2021-11-15 18:31 lq-12040 阅读(62) 评论(0) 推荐(0)
摘要: 订阅模式 订阅模式相比于点对点模式,多了一个交换机exchange角色。 生产者会将消息发送给exchange exchange一端接收消息。一端处理消息。例如,交给特定的队列、发送给所有的队列、或者将消息丢弃。 exchange有三种类型:Fanout广播、Direct定向、Topic通配符。 F 阅读全文
posted @ 2021-11-15 18:30 lq-12040 阅读(105) 评论(0) 推荐(0)
摘要: top:查看整个系统资源的使用情况 free -m:查看内存的使用情况 iostat: 查看磁盘io的情况 netstat:查看网络连接情况 df -h:查看磁盘使用情况 du -sh:查看文件大小情况 阅读全文
posted @ 2021-11-15 15:55 lq-12040 阅读(48) 评论(0) 推荐(0)
摘要: 内存泄漏:当该回收的对象一直被引用,导致无法被回收,最终垃圾对象越来越多,可用内存越来越少,造成的最终结果就是内存溢出 内存溢出:当前创建的对象的大小大于可用的内存容量大小,发生内存溢出。 内存泄露会导致内存溢出。 阅读全文
posted @ 2021-11-15 15:49 lq-12040 阅读(148) 评论(0) 推荐(0)
摘要: Work queues工作队列模式 不需要设置交换机(使用默认的交换机) 简单模式和工作队列模式都是点对点模式。其他的都是发布与订阅模式。 点对点就是一个消息只能被一个消费者消费。消费成功就删除了。 工作队列模式对比简单模式,多个消费者共同消费同一个队列中的消息。 工作队列模式的应用场景:对于任务过 阅读全文
posted @ 2021-11-15 12:10 lq-12040 阅读(275) 评论(0) 推荐(0)
摘要: redis支持两种持久化方式:一种是RDB方式,另一种是AOF方式可以单独使用,也可以两者结合使用。 ######第一种:rdb(快照)redis默认的持久化方式 原理:在符合一定条件下,将数据快照并存储到硬盘上。默认存储在redis根目录的dump.rdb文件中 过程:当redis需要做持久化时, 阅读全文
posted @ 2021-11-15 11:09 lq-12040 阅读(237) 评论(0) 推荐(0)
摘要: keys命令在线上是禁止使用的。 原因: Redis是单线程的,其所有操作都是原子的, 当数据量过大的时候,keys命令是非常耗时的,极大的会造成线程阻塞。导致所有请求都被拖慢。甚至严重会redis服务宕机。集群环境下,阻塞时间过长会导致集群分析故障而进行集群切换。 解决方案: 使用scan命令,它 阅读全文
posted @ 2021-11-15 10:32 lq-12040 阅读(904) 评论(0) 推荐(0)
摘要: 4核8G的机器 栈:一个1M,也就是一个线程1M,n个线程就nM; 堆:内存的一半分给堆内存,根据垃圾收集器分配新生代和老年代的比例 CMS:新:老==1:2 (1/3 2/3) G1:新:老==6:4 (3/5 2/5) 元空间:512M。 也不一定准确。之后详细学习jvm后做补充修改。 阅读全文
posted @ 2021-11-15 10:04 lq-12040 阅读(214) 评论(0) 推荐(0)
摘要: 缓存 限流。 mq消费端限流。开启手动确认。prefetch=1.每次从队列中获取一个消息,直到确认消费完毕后,才会继续拉取下一条消息。 redis实现限流。 增加服务器。 或者有更好的解决方案,补充。 阅读全文
posted @ 2021-11-15 09:52 lq-12040 阅读(374) 评论(0) 推荐(0)
摘要: 集群横向扩展,分摊每台服务器的请求量。增加机器 减少接口中要处理的业务,非核心业务可异步处理。使用mq 接口引入缓存,提升数据加载速度。redis缓存,(缓存在各个环节都随处可见。就是用于优化性能) 采用池化技术优化。 JVM、数据库、Linux系统、网络优化。 使用更好的硬件设备。 阅读全文
posted @ 2021-11-15 09:49 lq-12040 阅读(542) 评论(0) 推荐(0)