05 2021 档案
摘要:死信队列 引言 死信队列,英文缩写:DLX 。Dead Letter Exchange(死信交换机),其实应该叫做死信交换机才更恰当。 当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。 总结:其实死信队列就是一个普通的交换机,有些队列的消息成为死信后,(比如
阅读全文
摘要:消费端限流 在并发量高的情况下,如秒杀、抢票等场景,如果不对 RabbitMQ 推送信息给消费者的速度进行限流的话,很容易打崩系统 RabbitMQ 的限流机制: 必要条件:消费端 ack 机制为手动签到 如果限流数为1,表示消费端每次只能从mq拉去一条消息来消费,直到手动确认消费完毕后,才会继续拉
阅读全文
摘要:引言 RabbitMQ的模型是生产者发送信息到 Broker (代理),消费者从 Broker 中取出信息。但是生产者怎么知道消息是否真的发送到 Broker 中了呢?Broker 又怎么知道消息到底有没有被消费者消费? 如果由于网络原因出现故障,生产者生产的消息未到达 Broker 或者 Brok
阅读全文
摘要:前言 RabbitMQ是基于AMQP协议的,要想深入理解RabbitMQ,就必须先了解AMQP是个什么东东? AMQP协议 AMQP即Advanced Message Queuing Protocol,高级消息队列协议,是面向消息中间件设计的应用层协议的一个开放标准。 AMQP是一个应用层协议,可以
阅读全文
摘要:Redis 是一个内存数据库,为了保证数据不丢失,必须把数据保存到磁盘,这就叫做持久化。 Redis 有两种持久化方法: RDB 方式以及 AOF 方式 RDB 持久化 前言 RDB持久化把内存中的数据持久化到硬盘,生成RDB文件,也就是“快照”。通过RDB文件可以重新恢复内存中的数据。RDB文件是
阅读全文
摘要:【博主使用的环境是阿里云ecs服务器,操作系统为centos】 安装erlang环境 RabbitMQ底层是Erlang语言,因此要先安装erlang环境,就像你要运行Java程序就必须先安装JRE/JDK。 这里使用RabbitMQ官方提供的脚本下载yum源 curl -s https://pac
阅读全文
摘要:🎈🤺🎈🤺🎈🤺🎈🤺 ① 运输层概述 之前我们说过的物理层、数据链路层和网络层实现的都是主机和主机之间的通信。但是计算机中通信的真正实体是主机的进程,如何实现进程与进程之间的通信是运输层的任务,因此运输层又叫端到端的通信。 ② 端口、分用与复用 1. 端口 运输层实现的是进程之间的逻辑通
阅读全文
摘要:网络层Note ① 网络层概述 1. 网络层的主要任务 数据链路层只能实现同一局域网下主机的通信,但是局域网之间是存在异构的,不能直接通信,而且局域网的总线长度或者说覆盖范围是有限的,无法把全球变成一个局域网。 因此人们就想实现局域网与局域网之间的通信,进而实现IP数据包在各网络之间的传输,
阅读全文
摘要:为什么需要分布式锁 引入经典的秒杀情景,100件商品供客户抢。如果是单机版的话,我们使用synchronized 或者 lock 都可以实现线程安全。但是如果多个服务器的话,synchronized 和 lock 就不管用了(废话,怎么可能管用,都不在同一段代码了)。 分布式锁就是被设计出来实现多个
阅读全文
摘要:参考资料: JVM虚拟机入门教程-陈树义 JavaGuide 《深入理解Java虚拟机》 面经: 个人整理 - Java 后端面试题 - JVM 篇 阿里 Java 实习十轮面试面经 1. 讲一下JVM内存模型(运行时数据区) JVM内存模型分为两部分:线程共享和线程私有 JDK1.8之后方法区被元
阅读全文

浙公网安备 33010602011771号