前言
你的努力,终将成就无可替代的自己
本科毕业后就一直从事Java开发的工作,和多数人一样,最开始从事crud的工作,看着自己的同学一步一步往上走,自己还是在原地踏步,说实话这不是自己想要的状态。
一年半后开始沪漂生活,又摸爬滚打了一年半,薪资基本上在16K。疫情在家开始了系统的学习,目的就是为了进大厂,得到更多的学习机会,也是为了自己到所谓的“35岁”之后,也能在老家恰一口好饭。
努力也没有白费,8个月时间的系统性学习成功上岸Alibaba,直接涨薪14K,下面分享一下我的学习指南,面试真题以及个人心得体会。(晒一下入职offer)
基础知识
RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,它是使用Erlang
语言来编写的,并且是基于AMQP
协议的;
RabbitMQ高性能的原因
- Erlang语言在交换机的交互方面性能优秀的(
Erlang
语言最初在于交换机领域的架构模式,这样使得RabbitMQ在Broker之间进行数据交互的性能是非常优秀的) - Erlang有着和原生
Socket
一样的延迟
AMQP协议
什么是AMQP高级消息队列协议
AMQP(Advanced Message Queueing Protocol)定义:具有现代特征的二进制协议。是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计
AMQP协议模型:
Publisher 推送消息前先与Server建立连接,找到Virtual host
,然后将消息推送至Exchange交换机。而交换机与Message Queue
有绑定关系(一个交换机相当于一个独立的虚拟机,而这个虚拟机内的各种独立的应用就相当于一个Queue,这个Queue与交换机绑定),Consumer
通过绑定的对队列,而交换机也绑定了队列。发送者将消息发送给交换机,这样就能完成消息的推送了
整体架构图