雅虎开发了Pulsar,pub-sub消息系统,并将其作为开源软件.它现在是Apache的孵化项目.由于卡夫卡也用于同一目的.想知道,卡夫卡超过Pulsar的主要加分和减分.
是否可以在没有 Axon Server Enterprise 的情况下扩展 Axon 框架?我有兴趣使用 Axon 创建原型 CQRS 应用程序,但最终的可部署系统必须免收许可费。如果使用免费软件无法将 Axon Framework 扩展到六个节点,那么我可能应该寻找其他地方。
如果 Axon Framework 不是系统的好选择,您会推荐什么?围绕 Apache Pulsar 构建一些东西会是一个明智的选择吗?
Apache Pulsar(由Yahoo开发)似乎是Apache Kafka的下一代。
Apache RocketMQ(由阿里巴巴提供)似乎是下一代Apache ActiveMQ。
两者都是开源的分布式消息传递和流数据平台。
但是他们如何比较?在功能和性能方面,我何时应该优先选择另一个?
Pulsar(如Kafka)严格在流传输方面是否更好,而RocketMQ(如ActiveMQ)在传输消息方面是否严格?
activemq-classic rabbitmq apache-kafka rocketmq apache-pulsar
我可以使用以下 docker 命令运行 Apache Pulsar:
docker run -it \
-p 6650:6650 \
-p 8080:8080 \
--mount source=pulsardata,target=/pulsar/data \
--mount source=pulsarconf,target=/pulsar/conf \
apachepulsar/pulsar:2.6.0 \
bin/pulsar standalone
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其转换为 docker-compose,并使用下面的 docker-compose.yml 文件。当我运行命令时:
docker-compose up
Run Code Online (Sandbox Code Playgroud)
我收到错误:
附加到 pulsar pulsar | 错误:无法找到或加载主类“ pulsar 退出,代码为 1
我在这里做错了什么?提前致谢。
version: '3.1'
services:
standalone:
image: apachepulsar/pulsar:2.6.0
container_name: pulsar
ports:
- 8080:8080
- 6650:6650
environment:
- PULSAR_MEM=" -Xms512m -Xmx512m -XX:MaxDirectMemorySize=1g"
volumes:
- pulsardata:/pulsar/data
- pulsarconf:/pulsar/conf
command: /bin/bash -c "bin/pulsar standalone"
volumes:
pulsardata:
pulsarconf:
Run Code Online (Sandbox Code Playgroud) 我已经在线程T1中启动了一个Pulsar Java消费者,我正在将消息传递给线程T2进行处理.
确认来自T2的消息是否安全?具体来说,是调用consumer.acknowledge(messageId)两个线程之间共享的实例吗?
Apache Pulsar 的 API ( https://pulsar.apache.org/api/client/org/apache/pulsar/client/api/Consumer.html ) 包括至少两种从 Pulsar 主题/队列消费消息的方法:
大多数情况下,感觉这些都是平等的,并且使用 MessageListener 的类似事件的方法是有意义的,除了 Consumer 对象具有我发现在受控 while 循环中可能有用的其他方法,例如: isConnected() 、receiveAsync()、pause()、resume() 和seek(MessageId messageId)。
有了 Consumer 类中的这些附加功能,即使将 Consumer 传递到 MessageListener 中,为什么不为消费者提供一个简单的循环,而不是使用单个 MessageListener?
在 Pulsar 中使用 MessageListener 是否有优势或偏好,或者这只是给开发人员的一个选项?
过去,我主要为 JMS 和 Kafka 编写消费者循环。
我正在尝试使用 Apache Pulsar 编写一个多租户(多个命名空间)系统。我似乎无法实现的是使用单个客户端/连接发布到多个命名空间和这些命名空间中的主题。消费者方面也是如此。本质上,我希望使用单个应用程序实例能够发布到多个命名空间和主题,并且消费者应用程序能够在消费时执行此操作。我只是想了解这是否可能。
我不想为 M 个命名空间和每个命名空间的 N 个主题维护 M*N 个连接。我看到 pulsar 中有正则表达式支持,但是如果我想单独使用每个主题,这在消费者方面意味着什么(我是否从与正则表达式匹配的所有主题中获得混合消息?)
我想配置 Apache Pulsar 以在独立模式下将输出记录到文件中。
我从服务中以独立模式运行 Pulsar systemd,使用如下 exec 命令:
/var/lib/apache-pulsar/bin/pulsar standalone
Run Code Online (Sandbox Code Playgroud)
现在,Pulsar 日志配置记录在此处,并指定您可以使用配置属性,例如pulsar.root.logger通过 Log4J 配置日志记录。
但是不清楚的是您在哪里定义这些与日志相关的属性?它们位于哪个配置文件中?
还是应该log4j2.yaml直接进行更改?文档中没有介绍这一点。更改例如pulsar.routing.appender.default似乎RollingFile没有效果。
描述以独立模式启用日志记录到文件的完整步骤将非常有帮助。
在Apache Pulsar主题文档中,它说我们可以将主题时间保留策略设置为-1,以实现无限时间保留,具有无限保留的缺点是什么?我们可以使用脉冲星作为消息存储,其中数据永远存在于主题中并构建事件源他们周围的应用?
apache-pulsar ×10
apache-kafka ×3
java ×2
axon ×1
cqrs ×1
log4j ×1
logging ×1
pulsar ×1
rabbitmq ×1
rocketmq ×1