使用 3 个 Kafka 集群和一个相同的 Zookeeper 集群,我启动了一个分布式连接器节点。这个节点成功运行了一个任务。然后我提出了第二个连接器,这似乎是因为任务中的一些代码确实运行了。然而,它似乎并没有保持事件状态(尽管没有抛出任何错误,但由于缺乏预期的事件而观察到不活动状态,而第一个连接器继续正常运行)。当我在每个连接器节点上调用 URL http://localhost:8083/connectors/mqtt/tasks 时,它告诉我连接器有一个任务。我希望这是两个任务,每个节点/ worker 一个。 (目前工作人员配置显示 tasks.max = 1 但我也尝试将其设置为 3。
当我尝试调出第三个连接器时,出现错误:
"POST /connectors HTTP/1.1" 500 90 5
(org.apache.kafka.connect.runtime.rest.RestServer:60)
ERROR IO error forwarding REST request:
(org.apache.kafka.connect.runtime.rest.RestServer:241)
java.net.ConnectException: Connection refused
尝试从 shell 再次调用连接器 POST 方法会返回错误:
{"error_code":500,"message":"IO Error trying to forward REST request:
Connection refused"}
我还尝试升级到今天发布的 Apache Kafka 0.10.1.1。我仍然看到问题。每个连接器都在由单个镜像定义的隔离 Docker 容器上运行。它们应该是相同的。
问题可能是我试图在每个工作人员上运行对 http://localhost:8083/connectors 的 POST 请求,而我只需要在单个工作人员上运行一次然后该连接器的任务将自动分配给其他工作人员。如果是这种情况,我该如何分配任务?我目前将最大值设置为三个,但似乎只有一个在单个工作器上运行。
我最终使用 Yuri 建议的基本相同方法运行了一些东西。我给每个工作人员一个唯一的组 ID,然后给每个连接器任务赋予相同的名称。这允许三个连接器及其单个任务共享一个偏移量,因此在接收器连接器的情况下,它们从 Kafka 消费的消息不会重复。它们基本上作为独立连接器运行,因为工作人员具有不同的组 ID,因此不会相互通信。
如果连接器工作人员具有相同的组 ID,则您不能添加多个具有相同名称的连接器。如果您为连接器指定不同的名称,它们将具有不同的偏移量并使用重复的消息。如果您在同一组中有三个工作人员,一个连接器和三个任务,理论上您将有一个理想的情况,其中任务共享一个偏移量并且工作人员确保任务始终运行且分布良好(每个任务消耗一个唯一的集合的分区)。在实践中,连接器框架不会创建多个任务,即使 tasks.max 设置为 3 并且主题任务正在使用时有 25 个分区。
如果有人知道我为什么会看到这种行为,请告诉我。
最佳答案
我遇到过和你一样的问题。
我选择了另一种方式 - 我使用了独立的 worker,它对我来说就像一个魅力,因为负载分配是在 Kafka 客户端级别实现的,一旦某个 worker 掉线,集群会自动重新平衡,并且客户端会连接到未占用的主题。
PS。也许它对你也有用。 Confluent 连接器不能容忍与主题架构不匹配的无效负载。一旦连接器收到一些无效消息,它就会默默地死掉。找出答案的唯一方法是分析指标。
关于docker - 第二个和第三个分布式 Kafka 连接器工作人员无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41253780/
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类
我有一个涉及多台机器、消息队列和事务的问题。因此,例如用户点击网页,点击将消息发送到另一台机器,该机器将付款添加到用户的帐户。每秒可能有数千次点击。事务的所有方面都应该是容错的。我以前从未遇到过这样的事情,但一些阅读表明这是一个众所周知的问题。所以我的问题。我假设安全的方法是使用两阶段提交,但协议(protocol)是阻塞的,所以我不会获得所需的性能,我是否正确?我通常写Ruby,但似乎Redis之类的数据库和Rescue、RabbitMQ等消息队列系统对我的帮助不大——即使我实现某种两阶段提交,如果Redis崩溃,数据也会丢失,因为它本质上只是内存。所有这些让我开始关注erlang和
使用Ruby1.9.2运行IDE提示说需要gemruby-debug-base19x并提供安装它。但是,在尝试安装它时会显示消息Failedtoinstallgems.Followinggemswerenotinstalled:C:/ProgramFiles(x86)/JetBrains/RubyMine3.2.4/rb/gems/ruby-debug-base19x-0.11.30.pre2.gem:Errorinstallingruby-debug-base19x-0.11.30.pre2.gem:The'linecache19'nativegemrequiresinstall
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里