Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

高性能RabbitMQ学习 PDF 下载


分享到:
时间:2020-07-16 10:49来源:http://www.java1234.com 作者:小锋  侵权举报
高性能RabbitMQ学习 PDF 下载
失效链接处理
高性能RabbitMQ学习  PDF 下载

本站整理下载:
 
相关截图:
 
主要内容:

高性能RabbitMQ学习
by 消息中间件产生的背景 消息中间件描述 ActiveMQ
RabbitMQ简介及安装
RabbitMQ简介 客户端与服务端进行通讯时、客户端进行调用后必须等待服务对象完成处理返回结果才能继续执行。 客户端与服务端对象的生命周期紧密耦合、客户进程和服务对象进程都必须正常运行、如果由于服务器 对象崩溃后或网络延迟导致请求不可达、客户端会受到异常点对点通讯、客户的一次调用只能发送给单独的 目标对象面对消息的中间件较好的解决了以上问题、发送者将消息发送给消息服务器、服务器将消息储存在队列 中、在合适的时候将消息发送给接受者。 这种情况下,发送和接收都是异步的发送者无需等待,二者的生命周期未必相同,发送消息的时候消费 者不一定在运行,接收消息的时候发送者不一定在运行,一对多通讯,对于一个消息可以有多个消费者。 大体意思就好比说快递接收站点,卖家在收到买家的订单的时候 会联系快递公司进行派送,这个时候 快递公司可以把快递存放在快递接收站点,然后通知买家来取。 ActiveMQ消息通讯 发布订阅 一对多 主题topic 如果消费者集群的话、每个消费者都会进行消费、如果生产者发布消息 的时候消费者不在线消息将会丢失 消息队列 点对点 队列queue 如果消费者截取的话、每个消费者均摊进行消费、如果生产者发布消息 的时候消费者不在线消息将会储存
常用消息中间件对比 Erlang语言简述 RabbitMQ环境安装 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实 也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者 是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的 公开标准。 RabbitMQ是由RabbitMQ Technologies Ltd开发并且提供商业支持的。该公司在2010年4月被 SpringSource(VMWare的一个部门)收购。在2013年5月被并入Pivotal。其实VMWare,Pivotal和EMC本 质上是一家的。不同的是VMWare是独立上市子公司,而Pivotal是整合了EMC的某些资源,现在并没有上 市。RabbitMQ的官网是http://www.rabbitmq.com 百度百科amqp协议介绍https://baike.baidu.com/item/AMQP/8354716?fr=aladdin Erlang编程语言最初目的是进行大型电信交换设备的软件开发,是一种适用于大规模并行处理环境的高可靠 性编程语言。随着多核处理器技术的日渐普及,以及互联网、云计算等技术的发展,该语言的应用范围也有 逐渐扩大之势。 百度百科介绍:https://baike.baidu.com/item/Erlang%E8%AF%AD%E8%A8%80/20864044?fr=aladdin 初衷理念实现抗高并发语言
RabbitMQ管理平台 消息队列RabbitMQ的五种形式队列 消息队列RabbitMQ应答模式 1.下载并安装erlang,下载地址:http://www.erlang.org/download 2.配置erlang环境变量信息 新增环境变量ERLANG_HOME=erlang的安装地址 将%ERLANG_HOME%\bin加入到path中 3.下载并安装RabbitMQ,下载地址:http://www.rabbitmq.com/download.html 注意: RabbitMQ 它依赖于Erlang,需要先安装Erlang。 RabbitMQ 管理平台地址 http://127.0.0.1:15672 默认账号:guest/guest 用户可以自己创建新的账号 Virtual Hosts: 像mysql有数据库的概念并且可以指定用户对库和表等操作的权限。那RabbitMQ呢?RabbitMQ也有类似的 权限管理。在RabbitMQ中可以虚拟消息服务器VirtualHost,每个VirtualHost相当月一个相对独立的 RabbitMQ服务器,每个VirtualHost之间是相互隔离的。exchange、queue、message不能互通。 1.简单模式 应用场景:短信、聊天 2.工作模式(资源争抢) 应用场景:抢红包、大型系统的资源调度 3.发布订阅模式(publish/fanout) 应用场景:邮件群发、广告 4.路由模式(routing/direct) 应用场景:根据生产者的要求发送给特定的一个或者一批队列、错误的通报 5.主题模式(topic) 应用场景:根据生产者的要求发送给特定的一个或者一批队列、错误的通报 路由模式和主题模式的区别: 路由模式中的queue绑定携带的是具体的key值,路由细化区分 主题模式中的queue绑定携带的是范围的匹配,某一类的消息获取 队列以现进先出原则 进行存放 当生产者发布消息给队列,这个时候如果消费者不在线的情况下 消息队列会将消息存放 等消费者启动的时 候向消息队列中取,如果消费者在线的时候 消息队列会把消息推送给消费者。 消息队列和消费者是长连接的关系 为了确保消息不会丢失,RabbitMQ支持消息应答。消费者发送一个消息应答,告诉RabbitMQ这个消息 已经接收并且处理完毕了。RabbitMQ就可以删除它了。 如果一个消费者挂掉却没有发送应答,RabbitMQ会理解为这个消息没有处理完全,然后交给另一个消费者去 重新处理。这样,你就可以确认即使消费者偶尔挂掉也不会丢失任何消息了。 没有任何消息超时限制;只有当消费者挂掉时,RabbitMQ才会重新投递。即使处理一条消息会花费很长 的时间。 消息应答是默认打开的。我们通过显示的设置autoAsk=true关闭这种机制。现即自动应答开,一旦我们完 成任务,消费者会自动发送应答。通知RabbitMQ消息已被处理,可以从内存删除。如果消费者因宕机或链接 失败等原因没有发送ACK(不同于ActiveMQ,在RabbitMQ里,消息没有过期的概念),则RabbitMQ会将消 息重新发送给其他监听在队列的下一个消费者。

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐