springboot整合pulsar 简单使用demo(单机版standalone)

demo代码

producer(生产者)

添加依赖

        <dependency>
            <groupId>org.apache.pulsar</groupId>
            <artifactId>pulsar-client</artifactId>
            <version>2.10.1</version>
        </dependency>

配置文件

server.port=10096
spring.application.name=pulsar

# pulsar://IP:6650
pulsar.url=pulsar://192.168.xxx.xxx:6650
pulsar.topic=msgTest

 代码块

@Slf4j
@Component
public class PulsarProducer {

    // Pulsar服务serviceURL
    @Value("${pulsar.url}")
    private String serviceUrl;

    // topic
    @Value("${pulsar.topic}")
    private String topic;

    // 生产者
    private Producer<byte[]> producer = null;

    @PostConstruct
    public void initPulsarProducer() throws PulsarClientException {
        // 一个进程一个PulsarClient,一个PulsarClient下可以创建多个生产和消费者
        // PulsarClient
        PulsarClient client = PulsarClient.builder()
                .serviceUrl(serviceUrl)
                .build();

        // 创建生产者producer
        producer = client.newProducer()
                .topic(topic)
//                .topic(topic.split(",")[0])
//                //是否开启批量处理消息,默认true,需要注意的是enableBatching只在异步发送sendAsync生效,同步发送send失效。因此建议生产环境若想使用批处理,则需使用异步发送,或者多线程同步发送
//                .enableBatching(true)
//                //消息压缩(四种压缩方式:LZ4,ZLIB,ZSTD,SNAPPY),consumer端不用做改动就能消费,开启后大约可以降低3/4带宽消耗和存储(官方测试)
//                .compressionType(CompressionType.LZ4)
//                //设置将对发送的消息进行批处理的时间段,10ms;可以理解为若该时间段内批处理成功,则一个batch中的消息数量不会被该参数所影响。
//                .batchingMaxPublishDelay(10, TimeUnit.MILLISECONDS)
//                //设置发送超时0s;如果在sendTimeout过期之前服务器没有确认消息,则会发生错误。默认30s,设置为0代表无限制,建议配置为0
//                .sendTimeout(0, TimeUnit.SECONDS)
//                //批处理中允许的最大消息数。默认1000
//                .batchingMaxMessages(1000)
//                //设置等待接受来自broker确认消息的队列的最大大小,默认1000
//                .maxPendingMessages(1000)
//                //设置当消息队列中等待的消息已满时,Producer.send 和 Producer.sendAsync 是否应该block阻塞。默认为false,达到maxPendingMessages后send操作会报错,设置为true后,send操作阻塞但是不报错。建议设置为true
//                .blockIfQueueFull(true)
//                //向不同partition分发消息的切换频率,默认10ms,可根据batch情况灵活调整
//          
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值