首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Apache Pulsar 技术系列 - PulsarClient 实现解析

    PulsarClient 简介 Pulsar 客户端 API 设计优雅简洁,使用 PulsarClient 作为客户端的总入口,方便用户记忆和构建出具体的客户端,例如: Producer: 生产者用来发送消息到指定...PulsarClient client = PulsarClient.builder().serviceUrl("pulsar://broker:6650").build(); PulsarClient...PulsarClient 线程、线程组如下: 图中实线表示客户端会从线程池中挑选一个线程绑定运行。 Pulsar-client-io: io 线程( Netty 内部线程),负责网络连接和读写。...消费: IO 线程接收到服务端的消息推送,使用 Pulsar-client-internal 线程把消息放在本地缓存队列,然后使用 Pulsar-external-listener 线程执行用户消息处理逻辑...《微服务高可用容灾架构设计》 《Apache pulsar 技术系列-- 消息重推的几种方式》 《Apache Pulsar 技术系列 - GEO replication 中订阅状态的同步原理》

    1.9K40

    Apache pulsar 技术系列-- 消息重推的几种方式

    导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案,支持多租户、低延时、读写分离、跨地域复制(GEO replication)、快速扩容、灵活容错等特性。...在很多场景下,用户需要通过 MQ 实现消息的重新推送能力,比如超时重推、处理异常时重推等,本文介绍 Apache Pulsar 提供的几种消息重推方案。...在 MQ 实际的使用中,用户消费数据时,可能会遇到消息处理异常或者需要推迟处理的场景,这里就涉及到消息的重推逻辑,Pulsar 自己提供了消息重推的能力。...对于 RLQ,则是从 RECONSUMETIMES 属性中获取重复消费的次数,这个属性在 Client 生成,并且也是在 Client 计数。...总的来说,Apache Pulsar 提供了多种消息重推的方式,用户可以结合自己的场景,灵活使用,满足自己的业务需求。

    1.3K20

    聊聊 Pulsar:Producer 源码解析

    为用户提供了非常简洁方便的 API,在使用时,只需要如下两步: 创建 Pulsar Producer 实例 调用 send 接口发送数据 三、Pulsar Producer 实例化 3.1 实例化ProducerBuilder...核心在 org.apache.pulsar.client.impl.PulsarClientImpl#createProducerAsync(org.apache.pulsar.client.impl.conf.ProducerConfigurationData..., org.apache.pulsar.client.api.Schema, org.apache.pulsar.client.impl.ProducerInterceptors) 用于异步创建消息生产者...connection: ", state.topic, state.getHandlerName(), t); reconnectLater(t); } } 真正核心创建链接在这里:org.apache.pulsar.client.impl.ConnectionPool...send 接口发送数据 主要看 producer.send(message.getBytes()); 4.1 newMessage方法 4.2 value方法 4.3 send方法 发送的核心方法在:org.apache.pulsar.client.impl.ProducerImpl

    17610

    升级到 Pulsar3.0 后深入了解 JWT 鉴权

    背景 最近在测试将 Pulsar 2.11.2 升级到 3.0.1的过程中碰到一个鉴权问题,正好借着这个问题充分了解下 Pulsar 的鉴权机制是如何运转的。...image.png 我们会在创建 topic 的时候为 topic 绑定一个应用,这样就只能由这个应用发送消息,其他的应用尝试发送消息的时候会遇到 401 鉴权的异常。...鉴权流程 以上的两个功能本质上都是通过 Pulsar 的 admin-API 实现的。 这里关键的就是 role,在我们的场景下通常是一个应用的 AppId,只要是一个和项目唯一绑定的 ID 即可。...客户端使用 token 接入 broker PulsarClient client = PulsarClient.builder() .serviceUrl("pulsar://broker.example.com...排查了许久依然没有太多头绪,所以我提了相关的 issue:https://github.com/apache/pulsar/issues/21583之后我咨询了 Pulsar 的 PMC @Technoboy

    44920

    Pulsar-Producer实现分析

    client API.”...Pulsar是pub-sub模式的分布式消息平台,拥有灵活的消息模型和直观的客户端API。 Pulsar由雅虎开发并开源的下一代消息系统,目前是Apache软件基金会的孵化器项目。...创建的过程如下: 指定serviceUrl创建PulsarClient 指定Producer发送消息的Topic,通过PulsarClient创建Producer 通过上述的创建代码可以推测: serviceUrl...grabCnx方法通过PulsarClient创建Connection,而PubsarClient内部则通过LookupService接口来完成Topic到Broker的映射并建立链接。 ?...无论同步发送还是异步发送,最终都会通过异步的方式执行发送(同时只是在异步的基础上等待发送结果),这里可以看到Pulsar Producer在API实现上比较注重代码的复用性即API的最小功能原则。

    1.4K20
    领券