
消息中间件(异步消息传递)
在分布式架构的项目中,对于消息的异步处理、应用解耦以及流量削峰等现象越来越频繁的出现,消息中间件的地位也越来越重要。在很多的业务场景中都可以见到消息中间件的身影如:订单的异步处理、抢红包、秒杀等业务都需要消息中间的支持。目前在分布式项目开发中,消息中间件的使用已经成为了程序员的一项必备技能。
地球村公民
这个作者很懒,什么都没留下…
展开
-
Java RabbitMQ:(十一)传递对象类型参数时需要注意的问题
传递对象类型参数时需要注意的问题原创 2020-09-06 11:40:29 · 1602 阅读 · 0 评论 -
Java RabbitMQ:(十)topic 交换器
topic 交换器1.代码1.1 Publisher1.1.1 发送消息1.2 Consumer允许在路由键(RoutingKey)中出现匹配规则。路由键的写法和包写法相同。com.dqcgm.xxxx.xxx 格式。在绑定时可以带有下面特殊符号,中间可以出现: * : 代表一个单词(两个.之间内容) # : 0 个或多个字符接收方依然是公平调度,同一个队列中内容轮换获取值。需要使用注解/API:TopicExchange:Topic 交换器amq.topic:内置 topic原创 2020-09-06 11:39:13 · 312 阅读 · 0 评论 -
Java RabbitMQ:(九)fanout 交换器
fanout 交换器1.代码1.1 Publisher1.2 编写发送方法1.3 Consumer扇形交换器,实际上做的事情就是广播,fanout 会把消息发送给所有的绑定在当前交换器上的队列。对应 Consumer 依然采用公平调度方式。(代码演示)一个交换器需要绑定多个队列需要使用注解/API:FanoutExchange:fanout 交换器Binding:绑定交换器和队列BindingBuilder:Binding 的构建器amq.fanout:内置 fanout 交换器名称1原创 2020-09-06 11:29:23 · 380 阅读 · 0 评论 -
Java RabbitMQ:(八)direct 交换器-5000字匠心出品
direct 交换器1.代码实现1.1 新建项目 Publisher1.1.1 添加依赖1.1.2 编写配置文件1.1.3 编写消息类1.1.4 编写生产者1.1.5 编写测试类1.2 创建 Consumer1.2.1 添加依赖1.2.2 编写配置文件1.2.3 编写监听器方法direct 交换器是 RabbitMQ 默认交换器。默认会进行公平调度。所有接受者依次从消息队列中获取值。Publisher 给哪个队列发消息,就一定是给哪个队列发送消息。对交换器绑定的其他队列没有任何影响。(代码演示)一个原创 2020-09-06 11:18:30 · 428 阅读 · 0 评论 -
Java RabbitMQ:(七)Exchange 交换器(交换机)
Exchange 交换器(交换机)交换器负责接收客户端传递过来的消息,并转发到对应的队列中。在 RabbitMQ 中支持四种交换器:Direct Exchange:直连交换器(默认)Fanout Exchange:扇形交换器Topic Exchange:主题交换器Header Exchange:首部交换器。在 RabbitMq 的 Web 管理界面中 Exchanges 选项卡就可以看见这四个交换器。...原创 2020-09-06 10:43:52 · 327 阅读 · 0 评论 -
Java RabbitMQ:(六)RabbitMq 账户管理
RabbitMq 账户管理1.创建账户2.给用户授予管理员角色3.给用户授权4.登录1.创建账户语法:./rabbitmqctl add_user username password#cd /usr/local/rabbitmq/sbin#./rabbitmqctl add_user admin admin1232.给用户授予管理员角色其中 smallming 为新建用户的用户名#./rabbitmqctl set_user_tags admin administrator3.给用户原创 2020-09-06 10:03:11 · 688 阅读 · 0 评论 -
Java RabbitMQ:(五)安装 RabbitMQ
安装 RabbitMQ1.上传并解压2.复制到 local 下3.配置环境变量4.开启 web 管理插件5.后台运行5.1 启动错误解决6.查看 web 管理界面1.上传并解压上传 rabbitmq-server-generic-unix-3.7.17.tar.xz 到/usr/loca/tmp 中#cd /usr/local/tmp#tar xf rabbitmq-server-generic-unix-3.7.17.tar.xz2.复制到 local 下复制解压文件到/usr/loca原创 2020-09-06 09:59:20 · 200 阅读 · 0 评论 -
Java RabbitMQ:(四)Erlang 安装
Erlang 安装1.修改主机名2.安装依赖3.上传并解压4.配置参数5.编译并安装6.修改环境变量7.查看配置是否成功RabbitMQ 是使用 Erlang 语言编写的,所以需要先配置 Erlang1.修改主机名RabbitMQ 是通过主机名进行访问的,必须指定能访问的主机名。#vim /etc/sysconfig/network#vim /etc/hosts新添加了一行,前面为服务器 ip,空格后面添加计算机主机名2.安装依赖#yum -y install make gcc原创 2020-08-24 09:13:58 · 214 阅读 · 2 评论 -
Java RabbitMQ:(三)RabbitMQ 原理
RabbitMQ 原理1.Message2.Publisher3.Consumer4.Exchange5.Binding6.Queue7.Routing-key8.Connection9.Channel10.Virtual Host11.Borker12.交换器和队列的关系13.RabbitMQ 为什么需要信道?为什么不是 TCP 直接通信?1.Message消息。消息是不具名的,它由消息头消息体组成。消息体是不透明的,而消息头则由一系列可选属性组成,这些属性包括:routing-key(路由键)、原创 2020-08-22 10:28:02 · 267 阅读 · 0 评论 -
Java RabbitMQ:(二)RabbitMQ 简介
RabbitMQ 简介1.RabbitMQ 介绍1.1 解决应用耦合1.1.1 不使用 MQ 时1.1.2 使用 MQ 解决耦合2.RabbitMQ 适用场景1.RabbitMQ 介绍RabbitMQ 是由 Erlang 语言编写的基于 AMQP 的消息中间件。而消息中间件作为分布式系统重要组件之一,可以解决应用耦合,异步消息,流量削峰等问题。1.1 解决应用耦合1.1.1 不使用 MQ 时1.1.2 使用 MQ 解决耦合2.RabbitMQ 适用场景排队算法、秒杀活动、消息分发、异原创 2020-08-22 10:20:07 · 230 阅读 · 0 评论 -
Java RabbitMQ:(一)AMQP 简介
AMQP 简介1.AMQP 是什么?2.AMQP 工作过程3.队列1.AMQP 是什么?AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是进程之间传递异步消息的网络协议。2.AMQP 工作过程发布者(Publisher)发布消息(Message),经过交换机(Exchange),交换机根据路由规则将收到消息分发给交换机绑定的队列(Queue),最后 AMQP 代理会将消息投递给订阅了此 队列的消费者,或者消费者按照需求自行获取3.队列队原创 2020-08-22 10:18:08 · 358 阅读 · 0 评论 -
Java ActiveMQ:(十一)Spring 整合 ActiveMQ-23200字匠心巨作!!!
Spring 整合 ActiveMQ1.创建父项目1.1 修改POM文件2.创建生产者2.1 修改POM文件2.2 创建实体类2.3 配置MVC2.4 配置service2.5 配置ActiveMQ2.6 编写页面跳转Controller2.7 编写service2.8 编写service实现2.9 编写主要Controller2.10 配置web.xml2.11 编写添加用户界面2.12 编写成功界面3.创建消费者3.1 修改POM文件3.2 创建实体类3.3 配置ActiveMQ3.4 配置servic原创 2020-08-21 10:29:04 · 312 阅读 · 0 评论 -
Java ActiveMQ:(十)Topic 模型- 5000字匠心出品
Topic 模型1.Publish/Subscribe 处理模式(Topic)2.创建生产者2.1 修改POM文件2.2 创建ProducerTopic3.创建消费者3.1 修改POM文件3.2 创建ConsumerTopic4.测试4.1 ProducerTopic4.2 ConsumerTopic1.Publish/Subscribe 处理模式(Topic)消息生产者(发布)将消息发布到 topic 中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到 topic 的消息会被所有原创 2020-08-21 09:16:48 · 451 阅读 · 0 评论 -
Java ActiveMQ:(九)JMS - 实现队列服务监听-5000字匠心出品
JMS - 实现队列服务监听1.创建消息生产者1.1 修改POM文件1.2 创建Producer2.创建消息消费者2.1 修改POM文件2.2 创建Consumer3.测试3.1 Producer3.2 Consumer队列服务监听使用的观察者设计模式1.创建消息生产者1.1 修改POM文件创建Maven项目<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/原创 2020-08-21 08:41:34 · 688 阅读 · 0 评论 -
Java ActiveMQ:(八)在案例中处理对象消息
在案例中处理对象消息1.定义消息对象2.创建生产者3.定义消息消费者4.测试4.1 Producer4.2 Consumer1.定义消息对象创建两个Maven项目一个是Producer,一个是Consumer,而后在每个项目中定义Users记得在POM文件中导入ActiveMQ的坐标import java.io.Serializable;public class Users implements Serializable { private int userid; priva原创 2020-08-21 08:16:07 · 280 阅读 · 0 评论 -
Java ActiveMQ:(七)JMS-HelloWorld(基本框架搭建)-5000字匠心出品
JMS-HelloWorld1.创建消息生产者1.1 创建工程1.2 修改 POM 文件添加 ActiveMQ 坐标1.3 编写消息的生产者2.创建消息消费者2.1 创建工程2.2 修改 POM 文件添加 ActiveMQ 坐标2.3 编写消息的消费者3.测试3.1 Producer3.2 Consumer1.创建消息生产者1.1 创建工程Maven项目1.2 修改 POM 文件添加 ActiveMQ 坐标<?xml version="1.0" encoding="UTF-8"?>原创 2020-08-20 11:15:41 · 200 阅读 · 0 评论 -
Java ActiveMQ:(六)ActiveMQ 常用 API 简介
ActiveMQ 常用 API 简介1.ConnectionFactory2.Connection3.Session4.Destination & Queue5.MessageProducer6.MessageConsumer7.Message下述 API 都是接口类型,由定义在 javax.jms 包中是 JMS 标准接口定义1.ConnectionFactory链接工厂, 用于创建链接的工厂类型2.Connection链接. 用于建立访问 ActiveMQ 连接的类型, 由原创 2020-08-20 11:07:56 · 320 阅读 · 0 评论 -
Java ActiveMQ:(五)ActiveMQ 术语
ActiveMQ 术语1.Destination2.Producer3.Consumer | Receiver4.Message1.Destination目的地,JMS Provider(消息中间件)负责维护,用于对 Message 进行管理的对象。 MessageProducer 需要指定 Destination 才能发送消息,MessageReceiver 需要指定 Destination 才能接收消息2.Producer消息生成者,负责发送 Message 到目的地3.Consume原创 2020-08-17 11:01:26 · 204 阅读 · 0 评论 -
Java ActiveMQ:(四)ActiveMQ 安装
ActiveMQ 安装1.下载资源1.1 版本说明2.上传至 Linux 服务器3.解压安装文件4.检查权限5.复制应用至本地目录6.启动 ActiveMQ7.测试 ActiveMQ7.1 检查进程7.2 管理界面7.3 修改访问端口7.4 修改用户名和密码8.重启 ActiveMQ9.关闭 ActiveMQ10.配置文件 activemq.xml11.ActiveMQ 目录介绍1.下载资源ActiveMQ 官网简单的英文相信大家是没有问题的,我就不放下载的详细步骤了哟1.1 版本说明Ac原创 2020-08-17 10:42:50 · 373 阅读 · 0 评论 -
Java ActiveMQ:(三)JMS
JMS1.什么是 JMS2.JMS 模型2.1 点对点模型(Point To Point)2.2 发布订阅模型(Publish/Subscribe)1.什么是 JMSJMS(Java Messaging Service)是 Java 平台上有关面向消息中间件的技术规范,它便于消息系统中的 Java 应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口,简化企业应用的开发。2.JMS 模型2.1 点对点模型(Point To Point)生产者发送一条消息到 queue,只有一个原创 2020-08-17 10:07:14 · 188 阅读 · 0 评论 -
Java ActiveMQ:(二)消息服务的应用场景
消息服务的应用场景1.异步处理1.1 用户注册2.应用的解耦2.1 订单处理3.流量的削峰3.1 秒杀功能消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时由于使用了消息队列,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。1.异步处理1.1 用户注册用户注册流程:注册处理以及写数据库发送注册成功的手机短信发送注册成功的邮件信息原创 2020-08-16 19:05:24 · 1125 阅读 · 3 评论 -
Java ActiveMQ:(一)ActiveMQ 简介
ActiveMQ 简介1.什么是 ActiveMQ2.什么是消息3.什么是队列4.什么是消息队列5.常用消息服务应用5.1 ActiveMQ5.2 RabbitMQ5.3 RocketMQ1.什么是 ActiveMQActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现,尽管 JMS 规范出台已经是很久的事情了,但是 JMS 在当今的 J2EE 应用中间仍然扮演着特殊的地位原创 2020-08-15 10:43:22 · 406 阅读 · 0 评论