MQ

MQ系列2:消息中间件的技术选型

1 背景 在高并发、高消息吞吐的互联网场景中,我们经常会使用消息队列(Message Queue)作为基础设施,在服务端架构中担当消息中转、消息削峰、事务异步处理 等职能。 对于那些不需要实时响应的的业务,我们都可以放在消息队列中进行传输。下面是用户在进行系统注册的时候场景,充分体现MQ的作用 可以 ... »

一张图进阶 RocketMQ - 通信机制

三此君看了好几本书,看了很多遍源码整理的 一张图进阶 RocketMQ 图片链接,关于 RocketMQ 你只需要记住这张图。 今天我们先聊一聊 Netty 基本流程,然后分析 RocketMQ 的通信机制,最后通过异步消息发送来串联 RocketMQ 通信机制 关注微信公众号:三此君。回复 mq,... ... »

用我的事故告诉你:掌握异步很关键

摘要:在高并发的场景下,异步是一个极其重要的优化方向。 本文分享自华为云社区《一次线上事故,我顿悟了异步的精髓》,作者:勇哥java实战分享。 在高并发的场景下,异步是一个极其重要的优化方向。 前段时间,生产环境发生一次事故,笔者认为事故的场景非常具备典型性 。写这篇文章,笔者想和大家深入探讨该场景 ... »

一张图进阶 RocketMQ - 消息发送

三此君看了好几本书,看了很多遍源码整理的 一张图进阶 RocketMQ 图片链接,关于 RocketMQ 你只需要记住这张图。 今天主要从一个生产者示例开始,以两行代码为切入点,逐步剖析生产者启动流程以及同步消息发送流程。 关注微信公众号:三此君。回复 mq,可以领取 RocketMQ 相关的所有资... ... »

MQ中将消息发送至远程队列的配置

MQ中将消息发送至远程队列的配置 摘自MQ资源管理器帮助文档V7 在开始学习本教程之前,您需要从系统管理员处了解标识网络上接收机器的名称:IP地址、MQ的端口号、队列管理器、接收(远程机器)或者是发送的队列(本地机器)名称。 消息传递如图示:   本教程介绍了如何设置一台计算机上的队列管理器 QM_ORANGE 与另一台计算机上的队列管理器 QM_APPLE 之间的消息传递。在第一台计算机上创建的 »

MQ和Kafka的应用场景

前言写这篇文章的起因是由于之前的一篇关于Kafka异常消费,当时为了解决问题不得不使用临时的方案。总结起来归根结底还是对Kafka不熟悉导致的,加上平时工作的需要,之后就花些时间看了Kafka相关的资料。何时使用MQ谈到Kafka就不得不提到MQ,是属于消息队列的一种。作为一种基础中间件在互联网项目中有着大量的使用。一种技术的产生自然是为了解决某种需求,通常来说是以下场景:        需要跨进 »

用Spring cloud Stream来开发基于MQ消息驱动的微服务

Spring boot对MQ类如RabbitMQ、kafka支持都很好,但是仍然要写一些模板代码。Spring cloud stream进一步掩盖了这个差异,仅仅使用配置就可以完成。   Spring cloud Stream 用了基于topic-subsriber的模式,虽然不支持全部MQ的特性,但绝大多数应用来说,这样就足够用了,毕竟方便很多。具体用法如下:         <depe »

MQ详解及四大MQ比较

一、消息中间件相关知识 1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。   2、消息中间件的组成       2.1 Broker 消息服务器,作为ser »

MQ Cannot convert from [[B] to [] for GenericMessage

MQ消费端转换报错:主要错误信息:Caused by: org.springframework.messaging.converter.MessageConversionException: Cannot convert from [[B] to [com.***.***.***.***] for GenericMessage [payload=byte[12], headers={amqp_re »

ActiveMQ学习(一)——MQ的基本概念

1) 队列管理器 队列管理器是MQ系统中最上层的一个概念,由它为我们提供基于队列的消息服务。 2) 消息 在MQ中,我们把应用程序交由MQ传输的数据定义为消息,我们可以定义消息的内容并对消息进行广义的理解,比如:用户的各种类型的数据文件,某个应用向其它应用发出的处理请求等都可以作为消息。消息有两部分组成: 消息描述符(Message Discription或Message Header),描述消息 »

[性能测试]:关于MQ协议脚本开发

消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。 银行脚本使用MQ通信的较多,下面介绍一个MQ的脚本: MQ的脚本分为SEND和RECIVE两部分 send部分: import com.ibm.mq.*; import lrapi.lr; public class Actions { Stri »

netty与MQ使用心得

最近在做分布式的系统,使用netty与mq进行远程RPC调用,现将心得经验总结一下。 我们公司的服务器在云端机房,在每一个店面有一个服务器,店面服务器外网无法访问。 我们的做法是店面服务器在启动时与云服务器建立长链接,这样两台服务器之间可以双向通信。 不过使用netty做RPC代码量偏多,业务比较复杂时代码维护稍微复杂,所以后来新的接口我尝试 使用MQ来代替netty进行通信。使用MQ之后代码相对 »

python万能消费框架,新增7种中间件(或操作mq的包)和三种并发模式。

新增的中间件和并发模式见注释。 消息队列中间件方面celery支持的,都要支持。并发模式,celery支持的都要支持。 从无限重复相似代码抽取框架,做成万能复用,是生产力的保障。   使用模板模式使加新中间件时候,在改实现消费框架的代码非常方便,不会影响到原有中间件使用。 使用策略模式使加入新的并发模式,,在改实现消费框架的代码非常方便,不会影响到原有并发模式。 所以实现消费框架的代码虽然很长有1 »

spring boot rabbitmq 多MQ配置 自动 创建 队列 RPC

源码地址:https://github.com/hutuchong518/RabbitmqStudy   需求:   spring boot 整合 rabbitmq rpc功能, 需要将 请求和响应 这两个队列 分别放在不同的MQ服务器上,以提高单个MQ服务器的吞吐量和性能。   MQ服务器1:         IP:192.168.179.128      对列:hello1      MQ服务 »

mq和redis安装

[root@129-2-10-8 src]# cat b.sh #!/bin/bash ####install redis software #####echo "##############now start install redis############################"cd /usr/local/srctar fxvz redis-2.8.22.tar.gzmkdir »

C#对接IBM.MQ服务

因为某单位是用IBM.MQ服务作为对接平台,因此对接的话就要订阅服务,并且从队列中获取最新消息。   1、所谓订阅,就是让服务提供商(一般就是这个平台的运维人员)为自己开通一个输出队列,如图;     除此以外,要至少让他们提供以下信息(以下红色都是我举例子的,一定要以实际的为准): 主机Host:192.168.1.1 端口Port:5000 通道Channel:IE.SVRCONN 队列管理 »

常用的MQ命令

删除队列管理器 dltmqm QmgrName   启动队列管理器 strmqm QmgrName 如果是启动默认的队列管理器,可以不带其名字   停止队列管理器 endmqm QmgrName 受控停止   endmqm –i QmgrName 立即停止   endmqm –p QmgrName 强制停止   显示队列管理器 dspmq –m QmgrName   运行MQ命令 runmqsc »

MQ(部署模式)

MQ部署模式 1、master-slave部署模式   1)shared filesystem Master-Slave部署方式   主要是通过共享存储目录来实现master和slave的热备,所有的ActiveMQ应用都在不断地获取共享目录的控制权,哪个应用抢到了控制权,它就成为master。   多个共享存储目录的应用,谁先启动,谁就可以最早取得共享目录的控制权成为master,其他的应用就只 »

MQ--spring jms配置+负载与断线重连

1.依赖包 <!-- pom文件内定义配置常量 --> <properties> <springversion>5.0.6.RELEASE</springversion> </properties> <!-- 加入jms依赖 --> <dependency> »

学习RocketMQ (一) 安装并且启动MQ quickstart

1.使用RocketMQ 的 软件要求 64bit OS, Linux/Unix/Mac is recommended;64bit JDK 1.8+;Maven 3.2.xGit 1)安装Linux 下载VMWare  下载CentOS 安装  没有什么特别注意的 2) Linux 下面安装Java 在Oracle官网上面下载Java 的Linux版本 解压 后配置环境变量 vim /etc/pr »