Elixir Kafka 客户端 Elsa
Elixir Kafka client Elsa
我正在尝试在 Kafka 中动态创建主题,但不幸的是出现了一些错误。这是我的代码
def hello_from_elsa do
topic = "producer-manager-test"
connection = :conn
Elsa.Supervisor.start_link(endpoints: @endpoints,
connection: connection)
Elsa.create_topic(@endpoints, topic)
end
据我所知,我可以连接到代理本身,但是当执行 crete 主题行时,我收到此错误:
(MatchError) no match of right hand side value: false
(kafka_protocol) src/kpro_brokers.erl:240: anonymous fn/1 in :kpro_brokers.discover_controller/2
(kafka_protocol) src/kpro_lib.erl:376: :kpro_lib.do_ok_pipe/2
(kafka_protocol) src/kpro_lib.erl:281: anonymous fn/3 in :kpro_lib.with_timeout/2
我不确定在创建主题之前是否错过了一些额外的步骤。但我想应该没问题,因为我启动了主管及其 运行 :/
很难说,因为错误是来自底层的 Kafka 协议,而不是直接来自 Elsa,但看起来似乎找不到任何 Kafka 集群控制器。
主题管理必须通过控制器节点完成,因此 with_connection
函数 create_topic
包装显式传递原子 :controller
以建立连接,无论出于何种原因,可能是特定的对于您的集群,该函数无法成功找到控制器。
您要针对哪种类型的集群进行测试?如果您使用 divo
和 divo_kafka
库,您可以在本地主机上使用 Docker 建立单节点 kafka 集群进行测试,它应该按预期工作。
我正在尝试在 Kafka 中动态创建主题,但不幸的是出现了一些错误。这是我的代码
def hello_from_elsa do
topic = "producer-manager-test"
connection = :conn
Elsa.Supervisor.start_link(endpoints: @endpoints,
connection: connection)
Elsa.create_topic(@endpoints, topic)
end
据我所知,我可以连接到代理本身,但是当执行 crete 主题行时,我收到此错误:
(MatchError) no match of right hand side value: false
(kafka_protocol) src/kpro_brokers.erl:240: anonymous fn/1 in :kpro_brokers.discover_controller/2
(kafka_protocol) src/kpro_lib.erl:376: :kpro_lib.do_ok_pipe/2
(kafka_protocol) src/kpro_lib.erl:281: anonymous fn/3 in :kpro_lib.with_timeout/2
我不确定在创建主题之前是否错过了一些额外的步骤。但我想应该没问题,因为我启动了主管及其 运行 :/
很难说,因为错误是来自底层的 Kafka 协议,而不是直接来自 Elsa,但看起来似乎找不到任何 Kafka 集群控制器。
主题管理必须通过控制器节点完成,因此 with_connection
函数 create_topic
包装显式传递原子 :controller
以建立连接,无论出于何种原因,可能是特定的对于您的集群,该函数无法成功找到控制器。
您要针对哪种类型的集群进行测试?如果您使用 divo
和 divo_kafka
库,您可以在本地主机上使用 Docker 建立单节点 kafka 集群进行测试,它应该按预期工作。