当前位置: 首页 > news >正文

郑州做网站优化价格百度快速优化软件

郑州做网站优化价格,百度快速优化软件,wordpress文章列表css,软件设计师资料RocketMQ学习笔记 消息中间件应用场景 应用解耦削峰填谷数据分发 常见的消息中间件 ActiveMQ:Apache出品,比较老的一个开源的消息中间件,以前在中小企业应用广泛Kafka:Apache软件基金会开发的一个开源流处理平台,由…

RocketMQ学习笔记

消息中间件应用场景

  • 应用解耦
  • 削峰填谷
  • 数据分发

常见的消息中间件

  • ActiveMQ:Apache出品,比较老的一个开源的消息中间件,以前在中小企业应用广泛
  • Kafka:Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统。
  • RabbitMQ:基于erlang语言开发的消息中间件,RabbitMQ最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。适用于对数据的一致性、稳定性和可靠性要求比较高的场景
  • RocketMQ:高性能、低延时和高可靠性等特性

消息中间件对比

KafkaRocketMQRabbitMQ
定位日志消息、监控数据非日志的可靠消息传输非日志的可靠消息传输
可用性非常高、分布式、主从非常高、分布式、主从高、主从、采用镜像模式实现,数据量大时可能有性能问题
消息可靠性异步刷盘,容易丢数据同步刷盘、异步刷盘同步刷盘
单机吞吐量百万级十万级万级
堆积能力非常好非常好一般
顺序消费支持,一台broker宕机后,消息会乱序支持,顺序消费场景下,消费失败时消费队列将会暂停支持,如果一个消费失败,此消息的顺序会被打乱
定时消息不支持支持支持
事务消息不支持支持不支持
消息重试不支持支持支持
死信队列不支持支持支持
访问权限类似数据库,配置用户名和密码

核心概念

  • 消息生产者Producer:往RocketMQ发送消息的应用程序
  • 消息消费者Consumer:从RocketMQ拉取消息,并根据消息执行业务的应用程序
  • 代理服务器Broker:实际和消费生产者、消息消费者进行交互的程序,主要进行消息的存储、消息的推送,一般从性能考虑,会对消息进行集群
  • 命名服务NameServer:代理服务器Broker在启动的时候注册信息到NameServer中,消息生产者和消息消费者启动的时候从NameServer拉取Broker的IP和端口,消息生产者应用程序和消息消费者的应用程序会和Broker建立长链接(基于Netty),发送消息和消费消息都是基于长链接的通道
  • 主题Topic:划分不同类型的消息,比如订单消息发送到OrderTopic,会员消息发送到MemberTopic
  • 消息队列MessageQueue:在Topic内部,专门进行消息的存储的地方,最底层存储的数据结构(默认一个Topic中有4个MessageQueue)
  • 消息Message:在消息生产者给RocketMQ发送消息的时候,需要将传递的参数封装到Message对象中,通过网络传输到RocketMQ,消息会存储在MessageQueue中
  • 标签Tag:可以在发送的时候给消息添加标签Tag,消费者可以通过标签Tag进行过滤

简单使用

引入jar包

<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.9.5</version>
</dependency>

生产者

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;public class SimpleProducer {public static void main(String[] args) throws Exception{//定义消费的生产者对象DefaultMQProducer producer = new DefaultMQProducer("helloProducerGroup");//定义nameServer地址producer.setNamesrvAddr("127.0.0.1:9876");//自动连接(从nameServer拉取broker地址,并且建立连接)producer.start();//定义消息发送的目的地TopicString topic = "helloTopic";for(int i=0;i<10;i++){//定义消息Message message = new Message(topic,("helloTopic的消息=="+i).getBytes());//发送消息SendResult result = producer.send(message);//输出消息储存的结果System.out.println("消息存储的状态:"+result.getSendStatus());System.out.println("消息存储的消息ID:"+result.getMsgId());}//关闭连接producer.shutdown();}
}

消费者

import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.common.message.MessageExt;public class SimpleConsumer {public static void main(String[] args) throws Exception {//定义消息的消费者DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("helloConsumerGroup");//定义nameServer地址consumer.setNamesrvAddr("127.0.0.1:9876");//定义消费的主题String topic = "helloTopic";//监听该主题消息consumer.subscribe(topic,"*");//设置消息监听器,服务器把消息推送给我们,消费消息consumer.setMessageListener((MessageListenerConcurrently) (list, consumeConcurrentlyContext) -> {for(MessageExt messageExt:list){System.out.println("处理的线程:"+Thread.currentThread()+",消息内容:"+new String(messageExt.getBody()));}//告诉消息中间件,消息处理的情况return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;});consumer.start();}
}
http://www.yidumall.com/news/50423.html

相关文章:

  • 请问哪里可以做网站网站出租三级域名费用
  • 哪个网站可以做日语题360优化大师下载安装
  • 福鼎网站建设网络推广和竞价怎么做
  • wordpress多功能博客百度手机seo软件
  • 网站内容分析百度一下官网首页
  • 做网络销售哪些网站比较好阿里云万网域名查询
  • 自助游戏充值网站怎么做怎么有自己的网站
  • 做海外生意的网站百度指数怎么做
  • 制作小动画的软件建网站seo
  • 如何将网站做的更美观网络推广员具体做什么的
  • 官方网站建设的重要性什么关键词能搜到资源
  • 网站建设案例教程视频教程百度快速排名
  • 西宁做网站公司seo是什么姓
  • 当牛做吗网站源代码分享seo是搜索引擎营销
  • 山东网站建设企业公司优化资源配置
  • 有没有好的网站可以学做头发站长之家查询工具
  • 怎么怎么做网站seo关键字排名
  • 管理系统网站模板下载网络营销的实现方式包括
  • 菠菜源码怎么做网站帮人推广注册app的平台
  • 电商网站怎么制作优化设计答案大全英语
  • 展示型装饰网站模板下载深圳龙华区大浪社区
  • 怎么做简易手机网站建设网站需要多少钱
  • 东昌网站建设公司线下引流推广方法
  • 微网站制作电话企点官网
  • 电子商务网站源码下载网站seo啥意思
  • 南昌网站建设 南昌做网站公司百度搜索排名优化
  • 阿里云1m 宽带做网站服务器网络营销策划方案模板范文
  • 南昌网站定制全达seo
  • 哪个做公司网站小红书推广方式有哪些
  • ps彩屏做的好的网站《新闻联播》今天