再见RocketMQ!全新一代消息中间件,带可视化管理,文档贼全!

再见RocketMQ!全新一代消息中间件,带可视化管理,文档贼友好! 最近很火的消息中间件Pulsar,本想学习下,发现网上很多都是介绍性能和对比Kafka的文章,实践的文章很少!于是对着官方文档实践了一波,写下了这篇文章,估计是国内第一篇Pulsar实战文章了,希望对大家有所帮助! Pulsar简介 Pulsar是一个用于服务端到服务端的消息中间件,具有多租户、高性能等优势。Pulsar最初由Yahoo开发,目前由Apache软件基金会管理。Pulsar采用发布-订阅设计模式,Producer发布消息到Topic,Consumer订阅Topic、处理Topic中的消息. 阅读详情

摘要

最近很火的消息中间件Pulsar,本想学习下,发现网上很多都是介绍性能和对比Kafka的文章,实践的文章很少!于是对着官方文档实践了一波,写下了这篇文章,估计是国内第一篇Pulsar实战文章了,希望对大家有所帮助!

Pulsar简介

Pulsar是一个用于服务端到服务端的消息中间件,具有多租户、高性能等优势。Pulsar最初由Yahoo开发,目前由Apache软件基金会管理。Pulsar采用发布-订阅的设计模式,Producer发布消息到Topic,Consumer订阅Topic、处理Topic中的消息。

Pulsar具有如下特性:

  • Pulsar的单个实例原生支持集群。
  • 极低的发布延迟和端到端延迟。
  • 可无缝扩展到超过一百万个Topic。
  • 简单易用的客户端API,支持Java、Go、Python和C++。
  • 支持多种Topic订阅模式(独占订阅、共享订阅、故障转移订阅)。
  • 通过Apache BookKeeper提供的持久化消息存储机制保证消息传递。

Pulsar安装

使用Docker安装Pulsar是最简单的,这次我们使用Docker来安装。

  • 首先下载Pulsar的Docker镜像;
docker pull apachepulsar/pulsar:2.7.1 
  • 下载完成后运行Pulsar容器,http协议访问使用8080端口,pulsar协议(Java、Python等客户端)访问使用6650端口。
docker run --name pulsar \
-p 6650:6650 \
-p 8080:8080 \
--mount source=pulsardata,target=/pulsar/data \
--mount source=pulsarconf,target=/pulsar/conf \
-d apachepulsar/pulsar:2.7.1 \
bin/pulsar standalone 

Pulsar可视化

Pulsar Manager是官方提供的可视化工具,可以对多个Pulsar进行可视化管理,虽然功能不多,但也基本够用了,支持Docker部署。

  • 下载pulsar-manager的Docker镜像;
docker pull apachepulsar/pulsar-manager:v0.2.0 
  • 下载完成后运行pulsar-manager容器,从9527端口可以访问Web页面;
docker run -it --name pulsar-manager\
    -p 9527:9527 -p 7750:7750 \
    -e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \
    -d apachepulsar/pulsar-manager:v0.2.0 
  • 运行成功后,我们刚开始无法访问,需要创建管理员账号,这里创建账号为admin:apachepulsar:
CSRF_TOKEN=$(curl http://localhost:7750/pulsar-manager/csrf-token)
curl \
    -H "X-XSRF-TOKEN: $CSRF_TOKEN" \
    -H "Cookie: XSRF-TOKEN=$CSRF_TOKEN;" \
    -H 'Content-Type: application/json' \
    -X PUT http://localhost:7750/pulsar-manager/users/superuser \
    -d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "username@test.org"}' 

  • 登录成功后我们需要先配置一个环境,就是将需要管理的Pulsar服务配置上去,配置的Service URL为:http://192.168.5.78:8080

  • 可以查看Tenant列表;

  • 可以查看Topic列表和管理Topic;

  • 还可以查看Topic的详细信息。

Pulsar结合SpringBoot使用

Pulsar结合SpringBoot使用也是非常简单的,我们可以使用Pulsar官方的Java SDK,也可以使用第三方的SpringBoot Starter。这里使用Starter,非常简单!

  • 首先在pom.xml中添加Pulsar相关依赖;
<!--SpringBoot整合Pulsar-->
<dependency>
    <groupId>io.github.majusko</groupId>
    <artifactId>pulsar-java-spring-boot-starter</artifactId>
    <version>1.0.4</version>
</dependency> 
  • 然后在application.yml中添加Pulsar的Service URL配置;
pulsar:
  service-url: pulsar://192.168.5.78:6650 
  • 再添加Pulsar的Java配置,声明两个Topic,并确定好发送的消息类型;
/**
 * Pulsar配置类
 * Created by macro on 2021/5/21.
 */
@Configuration
public class PulsarConfig {
    @Bean
    public ProducerFactory producerFactory() {
        return new ProducerFactory()
                .addProducer("bootTopic", MessageDto.class)
                .addProducer("stringTopic", String.class);
    }
} 
  • 创建Pulsar生产者,往Topic中发送消息,这里可以发现Pulsar是支持直接发送消息对象的;
/**
 * Pulsar消息生产者
 * Created by macro on 2021/5/19.
 */
@Component
public class PulsarProducer {
    @Autowired
    private PulsarTemplate<MessageDto> template;

    public void send(MessageDto message){
        try {
            template.send("bootTopic",message);
        } catch (PulsarClientException e) {
            e.printStackTrace();
        }
    }
} 
  • 创建Pulsar消费者,从Topic中获取并消费消息,也是可以直接获取到消息对象的;
/**
 * Pulsar消息消费者
 * Created by macro on 2021/5/19.
 */
@Slf4j
@Component
public class PulsarRealConsumer {

    @PulsarConsumer(topic="bootTopic", clazz= MessageDto.class)
    public void consume(MessageDto message) {
        log.info("PulsarRealConsumer consume id:{},content:{}",message.getId(),message.getContent());
    }

} 
  • 添加测试接口,调用生产者发送消息;
/**
 * Pulsar功能测试
 * Created by macro on 2021/5/19.
 */
@Api(tags = "PulsarController", description = "Pulsar功能测试")
@Controller
@RequestMapping("/pulsar")
public class PulsarController {

    @Autowired
    private PulsarProducer pulsarProducer;

    @ApiOperation("发送消息")
    @RequestMapping(value = "/sendMessage", method = RequestMethod.POST)
    @ResponseBody
    public CommonResult sendMessage(@RequestBody MessageDto message) {
        pulsarProducer.send(message);
        return CommonResult.success(null);
    }
} 
  • 在Swagger中调用接口进行测试;

  • 调用成功后,控制台将输入如下信息,表示消息已经被成功接收并消费了。
2021-05-21 16:25:07.756  INFO 11472 --- [al-listener-3-1] c.m.m.tiny.component.PulsarRealConsumer  : PulsarRealConsumer consume id:1,content:SpringBoot Message! 

总结

上次写了一篇《吊炸天的 Kafka 图形化工具 Eagle,必须推荐给你!》介绍了Kafka的基本使用,这里和Pulsar做个对比。Pulsar对Docker支持无疑是更好的,官方文档也更全。对比下图形化工具Pulsar Manager和Kafka Eagle,Pulsar的图形化工具感觉有点简陋。介于目前雅虎、腾讯、360等互联网大厂都在使用Pulsar,Pulsar的性能和稳定性应该是很不错的!

参考资料

Pulsar的官方文档很全,样式也不错,基本照着文档来一遍就能入门了。

项目源码地址

github.com/macrozheng/…

前段时间,在和群友聊天时,把今年他们见到的一些不同类别的面试题整理了一番,于是有了以下面试题集,也一起分享给大家~

如果你觉得这些内容对你有帮助,可以加入csdn进阶交流群,领取资料

基础篇


JVM 篇


MySQL 篇



Redis 篇




由于篇幅限制,详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

如果你觉得这些内容对你有帮助,可以加入csdn进阶交流群,领取资料

一 windows下安装RocketMQ+可视化页面搭建 windows下安装RocketMQ+可视化页面搭建 阅读详情

相关推荐

RocketMQ 的安装和可视化界面

文章目录前言一、Window 下安装 RocketMQ1.下载 RocketMQ 4.8.0 Bin包2.安装 Java8 并配置环境变量 JAVA_HOME 和 CLASSPATH3.配置 ROCKET_HOME3.启动 NameServer 注册中心4.启动一个 Broker 处理节点二、启动可视化管理工具1.拉取源码2.修改配置文件3.启动三、RocketMQ 模型以及名称解释总结 前言 RocketMQ 是一款功能丰富,高可用,吞吐量高的消息队列,由阿里巴巴团队开发、开源并捐赠给了 Apache。

weixin_45648892的博客 2948

国产化软件新浪潮:jdk redis mysql tomcat nginx改造替代品及信创名录

金蝶Apusic应用服务器(Apusic Application Server,AAS)是一款标准、安全、高效、集成并具丰富功能的企业级应用服务器软件,全面支持JakartaEE8/9的技术规范,提供满足该规范的Web容器、EJB容器以及WebService容器等,支持Websocket1.1、Servlet4.0、HTTP2.0等最新的技术规范,为企业级应用的便捷开发、灵活部署、可靠运行、高效管控以及快速集成等提供关键支撑。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

Hanko的专栏 1万+

RocketMq简介及安装、docker安装rocketmq、安装rocketmq可视化管理端

rocketmq有两部分,nameserver和broker,nameserver用来维护broker的地址、向生产者、消费者推送broker的最新地址;broker用来存储、转发消息;也就是说,生产者首先要连接nameServer获取到broker的地址,然后将消息发送到broker,通过broker再将消息传递到消费者;所以用docker安装rocketmq时,要启动两个容器,一个nameserver、一个broker,这两者要网络互通;nameServer暴露的端口通常是9876;

wangjun5159的专栏 1774

Pulsar【部署 02】Pulsar可视化工具Manager安装使用

Pulsar可视化工具Manager安装使用

Java与大数据相关实践内容分享! 3138

RocketMQ系列之初识MQ

前言 消息中间件是目前互联网项目应用特别广泛的一个中间件,主要用于处理异步操作,系统之间的应用解耦,以及并发下的流量削峰等等应用场景,今天开我们就进入消息中间件MQ的讲解,主流的MQ有很多,我们只需要掌握其中一种就可以了,基本都大同小异,OK,正式开始今天的MQ之旅。 什么是MQ? MQ(Message Queue)消息队列,是一种应用程序之间通信的方式,可以理解为一个存放消息的队列,生产者负责生产消息,并将生产的消息存放入队列中,消费者负责从队列中获取对应的消息进行消费,生产者无需关心消息.

吭哧吭哧快乐的小牛码 2万+

2022年windos10下载 rocketmq 和可视化

2022年新版本的地址里面没有找到rocketmq-console的文件,更新了。是在分支里面找的。

qq_59767000的博客 805

spring-pulsar对接

spring对接pulsar消息队列

不如自成宇宙 1053

Pulsar与Spring Boot集成指南[项目代码]

本文详细介绍了Apache Pulsar与Spring Boot的深度集成方案,包括核心概念、环境准备、依赖配置、核心集成模式、高级特性实现、监控与管理、性能优化策略、安全与认证、完整示例以及最佳实践。Apache Pulsar作为云原生的分布式消息流平台,结合Spring Boot可以构建高性能、可扩展的实时数据应用。文章涵盖了从基础配置到高级特性的全面内容,包括生产者与消费者的实现、Schema管理、事务支持、消息路由策略、死信队列处理等。此外,还提供了性能优化、安全认证、监控管理等方面的实用建议,并通过订单处理系统的完整示例展示了实际应用场景。最后总结了集成关键点和典型应用场景,帮助开发者构建高性能、可维护的Pulsar-Spring Boot应用。

StreamNative 宣布 Spring for Apache Pulsar 正式发布

译者信息王中兴,就职于 ebay 消息中间件团队,社区昵称 alphawang。我们很高兴地宣布Spring for Apache Pulsar[1]的第一个里程碑版本已发布,现在你可以在 Spring 应用程序里直接利用 Apache Pulsar 的强大能力。我们先来看一下 Apache Pulsar 与 Spring 集成带来的好处,然后通过示例应用程序讲解如何进行集成。为什么使用 Sp...

Apache Pulsar 748

Windows Server 2012评估版过期自动关机问题:两种高效解决方案详解

本文针对Windows Server 2012评估版过期导致的自动关机问题,提供了两种高效解决方案。一是通过slmgr.vbs命令重置授权,临时延长评估期;二是使用DISM工具将评估版转换为正式版,一劳永逸。文章详细解析了两种方法的操作步骤、注意事项及适用场景,帮助用户快速恢复服务器稳定运行。

pytorchlight8的博客 1197

数据分析实战:如何用皮尔逊相关系数避免伪相关陷阱(附Python代码)

本文通过实战案例与Python代码,深入解析了皮尔逊相关系数在数据分析中的应用与常见陷阱。文章重点揭示了如何识别与避免由混杂变量导致的伪相关,并介绍了通过可视化、敏感性分析、分层分析与偏相关分析等方法来检验相关性的可靠性,帮助分析师建立严谨的相关性思维。

weixin_29051245的博客 413

博文推荐|整合 Spring 与 Pulsar,在 Java 中构建微服务

本文翻译自 StreamNative 博客《Spring into Pulsar》,作者 Tim Spann,StreamNative 布道师。译者简介姜吉宁,开源爱好者、终生学习者、健身爱好者。Github @jjnnzb[1]。本文我们来探讨如何在 Java 框架——Spring 中整合 Apache Pulsar。文章阐述如何在 Java 中构建基于 Spring ...

Apache Pulsar 1222

快速配置ORCAD导出智能PDF原理图

在OrCAD 中导出类似Altium Designer的智能PDF(即交互式PDF);

QingNing3028的博客 3953

再见RocketMQ。全新一代消息中间件,带可视化管理,文档贼友好

最近很火的消息中间件Pulsar,本想学习下,发现网上很多都是介绍性能和对比Kafka的文章,实践的文章很少!于是对着官方文档实践了一波,写下了这篇文章,估计是国内第一篇Pulsar实战文章了,希望对大家有所帮助! Pulsar简介 Pulsar是一个用于服务端到服务端的消息中间件,具有多租户、高性能等优势。Pulsar最初由Yahoo开发,目前由Apache软件基金会管理。Pulsar采用发布-订阅设计模式,Producer发布消息到Topic,Consumer订阅Topic、处理Topic中的.

m0_67900727的博客 207

关于华为高斯数据库出现Invalid or unsupported by client SCRAM mechanisms定位解决的过程

最近公司有个新项目使用的是高斯数据库,因为我们的项目是直接从别的项目组拿来的,配置都是已经配好的,但是在放到正式环境上之后出现报错。起初我们以为是测试和正式的版本不一致,但是结果是版本一致的。最后这个问题搞了我们几个小时,都没法解决。

Curtisjia的博客 3187

零基础玩转NILM:用nilmtk提取UKDALE电器数据的保姆级教程

本文为零基础用户提供了一份详细的NILM入门指南,重点讲解如何使用nilmtk工具包从UKDALE数据集中提取电器级用电数据。教程涵盖环境搭建、核心概念解析、数据提取实战及常见问题排查,帮助读者快速掌握非侵入式负荷监测的数据预处理关键步骤。

rgv234567的博客 499

深入探究 RocketMQ:分布式消息中间件的卓越之选》

RocketMQ 作为一款强大的分布式消息中间件,在异步处理、应用解耦等场景中发挥着重要作用。通过对其环境准备、安装、架构及概念的理解,以及消息发送接收和实际使用场景的模拟,我们深入了解了其工作原理和优势。在实际应用中,根据不同的业务需求选择合适的消息中间件,并合理利用其特性,可以提高系统的性能、可靠性和可扩展性。未来,消息中间件将继续在构建高效、可靠的分布式系统中发挥重要作用。

面团到油条的成长日记 1196

【教程4>第6章>第26节】基于FPGA的MMSE信道估计与均衡系统实现与整体测试,并对比LS信道估计

通过前面几个章节的学习,我们完成了MMSE信道估计和均衡系统。为了进一步验证MMSE信道估计的性能,我们在系统的最后,增加一个信道估计误差计算程序。由于MMSE信道估计,其主要优势在SNR较小时提现,因此测试对比时,我们在testbench中,将SNR设置为2db。然后m值,我们不考虑一个固定值,而是一直累加,直到所设置的仿真时间结束。通过对比可以看到,MMSE信道估计性能优于LS信道估计。这样方便FPGA中的误差计算。

FPGA/MATLAB学习教程/源码/项目合作开发 1600

Apache RocketMQ在Windows下的保姆级安装教程(含可视化界面安装)

本教程详细介绍了在Windows环境下完整安装和配置Apache RocketMQ及其可视化管理工具的全过程。从环境准备开始,涵盖了JDK安装配置、RocketMQ二进制包下载解压、环境变量设置,到Name Server和Broker的启动验证。特别是在RocketMQ Console可视化工具的安装部分,采用了源码编译的方式,包括Maven环境搭建、项目编译打包、配置文件创建等关键步骤。

笃行其道的博客 1万+

PMP--工件

合同是指对双方都有约束力的协议,强制卖方提供规定的产品、服务或结果,以及强制买方支付相应的费用。它还可能包括处于中间状态的特性,例如已设计但尚未构建的特性、质量保证中的特性或测试中的特性。RACI 矩阵是一种常见的方法,用于显示执行、担责、咨询或知情,且与项目活动、决策和可交付物有关的干系人。计划是提议的实现某种目标的方式。在项目开始前或开始时创建的文件,涉及与项目有关的战略、商业或高层级的信息。或 © 它们是用特定方法创建的结果,例如,虽然成本估算结果是一个重要工件,它们是用不同估算方法得出的结果。

stqer的博客 1666

【雷达通信】雷达信号处理仿真【含Matlab源码 2509期】

雷达信号处理仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 904

消息中间件(MQ)对比:RabbitMQ、Kafka、ActiveMQ 和 RocketMQ

在构建分布式系统时,选择适合的消息中间件是至关重要的决策。RabbitMQ、Kafka、ActiveMQ 和 RocketMQ 是当前流行的消息中间件之一,它们各自具有独特的特点和适用场景。本文将对这四种消息中间件进行综合比较,帮助您在项目中作出明智的选择。

. 2535

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

阿里开源消息中间件RocketMQ的前世今生

发表于2016-11-29 摘要: 昨天,我们将分布式消息中间件RocketMQ捐赠给了开源软件基金会Apache。 孵化成功后,RocketMQ或将成为国内首个互联网中间件在Apache上的顶级项目。 消息一出,本以为群众的反应是这样的: 然而事实上,群众的反应是这样的: 今天,特别邀请到阿里巴巴中间件(Aliware)技术研究员蒋江伟(花名:小邪)跟大家分享一下RocketMQ开源的前世...

力挽狂澜的POWER 965

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

windows系统下安装RocketMQ和管理工具

RocketMQ(4.9.3) 下载 官方下载 安装及启动 前提条件:已安装jdk1.8及maven 将下载下的安装文件解压到本地磁盘(任意,此处解压到D:盘) 配置环境变量 变量名:ROCKETMQ_HOME 变量值:D:\mq_rocket\rocketmq-all-4.4.0-bin-release 修改path,添加 启动 (1)启动NAMESERVER 使用cmd打开命令窗口,进入到rocketmq的bin目录下,执行:start mqnamesrv.cmd,若成功

as_hswa的博客 4993

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

用快马AI三分钟搭建RocketMQ面试实验室:消息中间件实战速成指南

这个面试模拟器的核心是要解决两个痛点:一是让抽象的概念可视化,二是提供真实的代码操作环境。做"如何保证消息顺序性"这道题时,通过监控面板能清晰看到消息乱序的情况,再通过代码调整MessageQueue选择策略来解决问题。比如演示消息堆积场景时,通过调大发送频率就能直观看到Broker的积压告警,比看文档生动得多。在快马平台完成开发后,直接用内置的一键部署功能发布成可访问的Web应用。上从零开始到可用的Demo,我只用了不到三小时,这对面试前的突击准备简直太友好了。

SilvermistFalcon19的博客 545
上一篇: 你还在统一返回 ApiResult 吗?✋ duck 不必,快来看 API 错误处理的最佳实践 ✔️
下一篇: 面试官:数据库自增 ID 用完了会咋样?
Python_cola
博客等级 码龄5年 2031粉丝 74原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值