首页 > 其他 > 详细

pulsar学习笔记1:helloworld

时间:2019-06-23 22:30:31      阅读:123      评论:0      收藏:0      [点我收藏+]

pulsar号称是下一代的消息系统,这二年风光无限,大有干掉kafka的势头,如果想快速体验下,可以按以下步骤在本地搭建一个单机版本:(mac环境+jdk8)

 

一、 下载

wget https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=pulsar/pulsar-2.3.2/apache-pulsar-2.3.2-bin.tar.gz

目前最新版本是2.3.2 

 

二、解压

tar -zxvf apache-pulsar-2.3.2-bin.tar.gz

  

三、单机模式启动

cd apache-pulsar-2.3.2
bin/pulsar standalone

  

四、 测试收发消息

pulsar自带的client工具,可以直接测试收发消息。

收消息命令如下:

bin/pulsar-client consume my-topic -s "first-subscription"

表示从“my-topic”这个topic上消费消息,并且指定订阅名称为“first-subscription”

 

发消息命令如下:

bin/pulsar-client produce my-topic --messages "hello pulsar"

表示发送消息到my-topic这个topic上。

注:测试时,可以单独开2个terminal,先在其中1个运行consumer,然后在另1个运行produce

附:如果希望写java代码实现收发消息,可参考https://github.com/yjmyzz/pulsar-sample

 

五、 Function测试

function是一个极有前途的功能,可以把一个topic中喷出的消息,实时接收并处理后,再把处理结果发到另一个topic,相当于轻量级的流式计算。

./examples目录下有一个api-examples.jar包,里面自带了一些Function示例。

5.1 部署Function

部署的过程,其实就是把带处理逻辑的jar包,放到集群上,命令如下:

bin/pulsar-admin functions create --jar examples/api-examples.jar --className org.apache.pulsar.functions.api.examples.ExclamationFunction --inputs persistent://public/default/exclamation-input --output persistent://public/default/exclamation-output --name exclamation

大致是创建一个function,来源是examples/api-examples.jar这个文件,并指定了具体的类名(因为一个jar包中,可以写多个function,必须指定具体的className), 然后这个function的入参是exclamation-input这个topic,处理完的结果,将输出到exclamation-output,最后这个function在pulsar中的名字是exclamation

附:ExclamationFunction的java源码如下,逻辑很简单,只是在输入参数后加一个!

package org.apache.pulsar.functions.api.examples;

import java.util.function.Function;

public class ExclamationFunction implements Function<String, String> {
    @Override
    public String apply(String input) {
        return String.format("%s!", input);
    }
}

  

5.2 查看已部署的function列表

bin/pulsar-admin functions list --tenant public --namespace default

 

5.3 启动消费者,查看实时处理结果   

bin/pulsar-client consume persistent://public/default/exclamation-output --subscription-name my-subscription --num-messages 0

  

5.4 启动生产者,产生实时处理所需的素材

bin/pulsar-client produce persistent://public/default/exclamation-input --num-produce 1 --messages "Hello world"

  

参考文章:

http://pulsar.apache.org/docs/en/functions-quickstart/

pulsar学习笔记1:helloworld

原文:https://www.cnblogs.com/yjmyzz/p/pulsar-helloworld.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!