rocketmq简介和使用

RocketMQ是一个亿级消息处理的轻量级中间件,以其低延迟、高可用性及特色功能如事务消息、顺序消息,受到开发者青睐。整体架构包括NameServer、Broker Server、Producer和Consumer。Producer支持同步/异步发送,Consumer可在CLUSTERING或BROADCASTING模式下消费消息。
摘要由CSDN通过智能技术生成

1.简介

rocketmq是一个轻量级,低延时,高可用,支持亿级消息处理的消息中间件。rocketmq使用起来方便简单,具备传统的消息中间件所不具备的特性,例如低延迟,高负载,事物消息等特性,受到越来越多的开发者喜爱。

1.1 整体架构设计

在这里插入图片描述
这里引用 apache rocketmq官网的图
1.NameServer
NameServer 提供轻量级的服务发现和路由,支持主从。
生产者和消费者从Name Server获取对应的读,写服务。

2.broker Server
broker server 提供轻量级的TOPIC-queue的形式实现消息的存贮。消息支持push 和pull的模式。

3.producer
消息生产者,producer有个很重要的属性叫producer group ,一般一个业务一个group,大多数情况下一个生产者实例就已经足够了,如果想提高系统吞吐率,可以在group相同的前提下,设置instantName,这样同一个group可以拥有多个实例。
消息的发送支持同步,异步。消息种类在简单的消息的基础上,还支持顺序消息,事物消息。

4.consumer
消息消费者,消费者也有个重要的属性叫group,Cosumer里面可以设置消费线程池的大小。

2. 实例

producer

package com.ly.mq.producer;

import lombok.AllArgsConstructor;
import lombok.Data;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.MessageQueueSelector;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.remoting.common.RemotingHelper;

import java.util.List;

@Data
@AllArgsConstructor
public class Producer {
   
    private final String namesrvAddr;
    private DefaultMQProducer producer;

    public void syncProducer(String msg) throws Exception {
   


        //消息创建需要指定topic ,topic底层可和一个或多个队列进行绑定,在topic下,还有tag 相当于一个子topic
        Message message =
                new Message("topic_test","TagA"
                ,msg.getBytes(RemotingHelper.DEFAULT_CHARSET));
        SendResult result = producer.send(message);
        System.out.println(result.toString());
        //producer.shutdown();
    }

    public void asyncProducer(String msg) t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值