当前位置: 首页 > 知识库问答 >
问题:

Pulsar Log4j2 Appender错误:名称为Pulsar-log4j2-appender-Applog-json的生产者已连接到主题

邵飞宇
2023-03-14

我无法得到一个简单的你好世界类型的Spring启动应用程序来利用脉冲星Log4j2附加器。启动时,它会报告错误:

2021-05-14T15:34:23.549-05:00 [脉冲星-客户端-io-6-1] 错误 o.a.p.c.i.ProducerImpl [pulsar-log4j2-追加器-应用程序日志-json] 未能创建生产者: 名称为“脉冲星-log4j2-追加器-应用程序日志-json”的生产者已经连接到主题 2021-05-14 15:34:23,550 主错误 无法启动脉冲星管理器组织.apache.pulsar.client.api.PulsarClientException$ProducerBusyException$ProducerBusyException:名称为“脉冲星-log4j2-追加器-应用程序日志-json”的生产者已连接到主题在 org.apache.pulsar.client.api.PulsarClientException.unwrap(PulsarClientException.java:884) at org.apache.pulsar.client.impl.producerBuilderImpl.create(ProducerBuilderImpl.java:93) at org.apache.pulsar.log4j2.appender.PulsarManager.startup(PulsarManager.java:127) at org.apache.pulsar.log4j2.appender.PulsarAppender.start(PulsarAppender.java:187) ...

我用的是Apache Pulsar 2.7.1和pulsar-log4j2-appender:2.6.3(我试过其他版本的appender,结果一样)。这并不像错误提示的那样有多个实例在运行。我甚至可以在启动应用程序之前,通过“pulsar-admin topics stats”验证当前没有发布者连接到该主题。我用Pulsar Log4j2 appender启动了一个spring boot应用程序的单个实例,它记录了错误,并且不会向Pulsar发送数据。如果错误消息确实有效,那么在某种程度上,appender必须在内部创建多个连接。有人遇到过这种情况并找到了解决方法吗?这似乎是一件相当简单的事情,不应该如此复杂或挑剔。

我将示例项目发布到GitHub上,是为了让其他人更容易测试它。

git clone https://github.com/kelbyloden/pulsarLog4jTest.git
cd pulsarLog4jTest/
./gradlew clean build
./gradlew bootRun -Dapp.name=pulsarLog4jTest -Dlog.level=INFO -Dpulsar.host=localhost

编辑脉冲星。主机变量以反映Pulsar实例的主机名。这假定为http://localhost:6650.这在log4j2.xml文件中引用。当我执行这个时,我得到了提到的错误
注意:我创建了另一个示例Java项目,它不使用Spring Boot,工作正常。这似乎与Spring依赖性有关。

共有1个答案

凌黎明
2023-03-14

错误创建生产者失败:名称为“Pulsar-log4j2-appender-Applog-json”的生产者已经连接到主题,表明代码可能已执行多次,或者代码的关闭逻辑没有正确关闭生产者。

你能分享代码吗?也许是一个简单的Github存储库的链接,等等?你是如何运行代码的?

 类似资料:
  • 我使用的是Log4J2,Jboss 6.4上的2.4版本,我的log4j2.xml放在WEB-INF/classes中。我可以在没有关于log4j配置的错误的情况下部署war,并且可以在RollingFile name=“mylog”中正确地记录日志,但我不能理解的是,为什么在控制台appender中出现“mylog”的信息日志 配置:

  • 这是我的密码。

  • 我正在尝试使用kafka-avro-convore-生产者发布一条具有键(带有模式)和值(带有模式)的消息。kafka环境(kafka的conFluent 6.2.0版本、连接、zoomaster、模式注册表)都正确启动,我可以确认我的连接器已安装。问题是当我发送消息时,我的Sink连接器失败并出现我无法诊断的错误。 感谢您的帮助: 我生成一条AVRO消息,如下所示: 并在连接日志中接收以下错误:

  • 现在我正面临着连接生产者/消费者的问题。 > 我使用以下命令创建了一个客户端密钥存储库, 将CA证书添加到密钥库, 警告与节点-1的连接在身份验证期间终止。这可能表明身份验证由于凭据无效而失败。(org.apache.kafka.clients.NetworkClient) 怀疑我在客户端配置中缺少了什么。如有任何帮助,将不胜感激。

  • 我有一个使用RabbitMQ的Spring Cloud Streaming transformer应用程序。它从兔子队列中读取数据,进行一些转换,然后写入兔子交换。我将应用程序部署到PCF,并绑定到Rabbit服务。 这工作正常,但是现在我需要一个单独的连接来消费和产生消息。(我想使用一个连接从Rabbit队列中读取,并使用不同的连接写入Rabbit交换)。我将如何配置这个?是否可以将我的应用程序

  • 我将log4j2与一个JSON属性文件一起使用,我将其命名为log4j2。json并尝试添加Kafka追加器。有很多使用旧格式或xml的示例,但很难在JSON中获得正确的格式。这很可能是一个愚蠢的问题,但我一直在努力让它发挥作用,在任何地方都找不到任何例子。我很想放弃在json中配置log4j2,转而使用XML,但我觉得这应该相当简单。 这是一个用XML定义的示例kafka appender。 l