{"id":102784,"date":"2020-05-09T11:16:10","date_gmt":"2020-05-09T03:16:10","guid":{"rendered":"http:\/\/4563.org\/?p=102784"},"modified":"2020-05-26T01:31:53","modified_gmt":"2020-05-25T17:31:53","slug":"docker-%e9%83%a8%e7%bd%b2%e7%9a%84%e4%b8%80%e4%b8%aa%e9%97%ae%e9%a2%98%ef%bc%8c%e6%b1%82%e5%a4%a7%e7%a5%9e%e8%a7%a3%e6%83%91","status":"publish","type":"post","link":"http:\/\/4563.org\/?p=102784","title":{"rendered":"Docker \u90e8\u7f72\u7684\u4e00\u4e2a\u95ee\u9898\uff0c\u6c42\u5927\u795e\u89e3\u60d1"},"content":{"rendered":"<div>\n<div>\n<div>\n<h1>                  Docker \u90e8\u7f72\u7684\u4e00\u4e2a\u95ee\u9898\uff0c\u6c42\u5927\u795e\u89e3\u60d1               <\/h1>\n<p> <\/p>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : ilaipi <\/span>  <span><i><\/i> 58<\/span> <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div isfirst=\"1\"> <\/p>\n<p>\u95ee\u9898\u662f\u8fd9\u6837\u7684\uff0c<\/p>\n<p>\u6211\u5728\u670d\u52a1\u5668\u4e0a\u8dd1\u4e86\u4e00\u4e2a Kafka\uff0c\u662f\u8dd1\u7684 wurstmeister\/kafka \u955c\u50cf\uff0c\u4f7f\u7528\u7684\u9ed8\u8ba4\u7f51\u7edc\u3002\u914d\u7f6e\uff1a<\/p>\n<pre><code>kafka:     image: wurstmeister\/kafka     container_name: kafka     environment:         - KAFKA_ADVERTISED_PORT=port         - KAFKA_ADVERTISED_HOST_NAME=\u516c\u7f51 ip         - KAFKA_ZOOKEEPER_CONNECT=\u672c\u673a\u5185\u7f51 ip:zookeeper port         - KAFKA_LOG_RETENTION_HOURS=4         - KAFKA_LOG_RETENTION_BYTES=1000000000     ports:         - port:9092 <\/code><\/pre>\n<p>\u7136\u540e\u5728\u540c\u4e00\u53f0\u670d\u52a1\u5668\uff0c\u4f7f\u7528 docker run \u547d\u4ee4\uff0c\u542f\u52a8\u4e86\u53e6\u5916\u4e00\u4e2a\u5bb9\u5668\uff0c\u4f7f\u7528\u7684\u662f node-alpine \u955c\u50cf\uff0c\u5185\u90e8\u901a\u8fc7 kafka-node \u5e93\u8fde\u63a5 kafka\uff0c\u600e\u4e48\u90fd\u8fde\u4e0d\u4e0a\u3002<\/p>\n<p>\u542f\u52a8 node \u5bb9\u5668\u540e\uff0c\u8fdb\u5165\u5bb9\u5668\uff0ctelnet \u547d\u4ee4\u53ef\u4ee5\u8fde\u4e0a Kafka \u5bb9\u5668\u7684\u7aef\u53e3\u3002<\/p>\n<p>\u5728\u672c\u673a\uff0c\u4e0d\u5728\u5bb9\u5668\u5185\u90e8\uff0c\u540c\u4e00\u4e2a\u8fde\u63a5\uff08\u516c\u7f51 ip\uff1aport \uff09\u53ef\u4ee5\u6b63\u5e38\u8fde\u4e0a Kafka\u3002<\/p>\n<p>\u6211\u5728\u672c\u673a\u88c5\u4e86 Conduktor \u8fd9\u4e2a Kafka \u5ba2\u6237\u7aef\uff0c\u4e5f\u80fd\u8fde\u4e0a Kafka\uff0c\u53ef\u4ee5\u6b63\u5e38\u6536\u53d1\u6d88\u606f\u3002<\/p>\n<p>\u6709\u4ec0\u4e48\u601d\u8def\u5417\uff1f\u8c22\u8c22\uff01<\/p>\n<p>\u542f\u52a8 kafka\uff0c\u7136\u540e\u542f\u52a8 node\uff0c\u770b node \u955c\u50cf\u7684\u65e5\u5fd7\u5c31\u4f1a\u5361\u4f4f\u3002\u7136\u540e stop Kafka\uff0cnode \u8fd9\u8fb9\u5c31\u4f1a\u62a5\u9519\uff1a<\/p>\n<pre><code>events.js:174       throw er; \/\/ Unhandled 'error' event       ^ NestedError: refreshBrokerMetadata failed     at async.waterfall (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:378:35)     at \/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/node_modules\/async\/dist\/async.js:473:16     at next (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/node_modules\/async\/dist\/async.js:5329:29)     at \/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/node_modules\/async\/dist\/async.js:969:16     at KafkaClient.getAvailableBroker (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:330:12)     at async.waterfall.callback (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:373:23)     at nextTask (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/node_modules\/async\/dist\/async.js:5324:14)     at Object.waterfall (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/node_modules\/async\/dist\/async.js:5334:5)     at KafkaClient.refreshBrokerMetadata (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:372:9)     at Immediate._onImmediate (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:782:20)     at runCallback (timers.js:705:18)     at tryOnImmediate (timers.js:676:5)     at processImmediate (timers.js:658:5) Caused By: Error: Unable to find available brokers to try     at KafkaClient.getAvailableBroker (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:330:21)     at async.waterfall.callback (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:373:23)     at nextTask (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/node_modules\/async\/dist\/async.js:5324:14)     at Object.waterfall (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/node_modules\/async\/dist\/async.js:5334:5)     at KafkaClient.refreshBrokerMetadata (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:372:9)     at Immediate._onImmediate (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:782:20)     at runCallback (timers.js:705:18)     at tryOnImmediate (timers.js:676:5)     at processImmediate (timers.js:658:5) Emitted 'error' event at:     at KafkaClient.&lt;anonymous&gt; (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/baseProducer.js:101:10)     at KafkaClient.emit (events.js:198:13)     at async.waterfall (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:378:21)     at \/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/node_modules\/async\/dist\/async.js:473:16     [... lines matching original stack trace ...]     at KafkaClient.refreshBrokerMetadata (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:372:9)     at Immediate.&lt;anonymous&gt; (\/app\/node_modules\/daoqun-core\/node_modules\/kafka-node\/lib\/kafkaClient.js:782:20)     at runCallback (timers.js:705:18)     at tryOnImmediate (timers.js:676:5)     at processImmediate (timers.js:658:5) <\/code><\/pre>\n<\/p><\/div>\n<div> <b>\u5927\u4f6c\u6709\u8a71\u8aaa<\/b> (<span>6<\/span>)        <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<ul>\n<li data-pid=\"693192\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : Xbluer <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             docker run \u542f\u52a8 node-alpine \u7684\u65f6\u5019\u6dfb\u52a0\u8fd9\u4e2a\u53c2\u6570 &#8211;link=kafka                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"693193\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : Maco <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u628a Kafka \u548c node \u5199\u5728\u4e00\u4e2a docker-compose \u4e2d\uff0c\u4f7f\u7528\u4e00\u4e2a\u7f51\u7edc\uff0cnode \u8fde\u63a5\u4f7f\u7528 container_name: kafka+\u7aef\u53e3\u8fde\u63a5\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"693194\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : Maco <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u6839\u636e\u4f60\u7684\u63cf\u8ff0\uff0c\u6700\u5927\u7684\u53ef\u80fd\u5c31\u662f node \u548c kafka \u4e0d\u5728\u4e00\u4e2a\u7f51\u7edc\u4e2d                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"693195\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : ilaipi <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @Xbluer #1 \u8c22\u8c22~\u6211\u8bd5\u4e86\u52a0\u4e86 link\uff0c\u542f\u52a8\u547d\u4ee4\u6539\u6210\uff1a<br \/>docker run &#8211;env-file .env &#8211;env NODE_REPO=mr -p 11111:11111 -dit &#8211;restart always &#8211;name=mr_dev &#8211;link=kafka:kafka &#8211;net middleware_default mr:0.0.1<\/p>\n<p>\u7136\u540e\u8fde\u63a5\u5730\u5740\u662f kafka:9092<\/p>\n<p>\u8fd8\u662f\u4e00\u6837\u7684\u53cd\u5e94\u3002\u6211\u8fdb\u5165 node \u5bb9\u5668\uff0ctelnet kafka 9092 \u4e5f\u662f\u80fd\u901a..<\/p>\n<p>\u65e0\u5948\u4e86                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"693196\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : ilaipi <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @Maco #3 \u6211\u4e5f\u6000\u7591\u662f\u7f51\u7edc\u95ee\u9898\uff0c\u4f46\u662f\u660e\u660e\u5728 node \u5bb9\u5668\u91cc\u90fd\u80fd telnet kafka \u7aef\u53e3\u3002\u3002\u3002\u641e\u4e86\u4e24\u5929\u4e86\uff0c\u5509                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"693197\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : ilaipi <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u62b1\u6b49\u4e86\uff0c\u7a0b\u5e8f\u662f\u542f\u52a8\u6210\u529f\u4e86\u3002\u3002<\/p>\n<p>\u53ea\u662f\u7a0b\u5e8f\u542f\u52a8\u6210\u529f\u6253\u7684\u4e00\u53e5\u65e5\u5fd7\uff0c\u8bb0\u5230\u65e5\u5fd7\u6587\u4ef6\u91cc\uff0c\u6240\u4ee5 docker logs \u547d\u4ee4\u770b\u4e0d\u5230\uff0c\u6211\u4e00\u76f4\u4ee5\u4e3a\u662f\u5361\u4f4f\u4e86\u3002\u3002\u3002\u3002<\/p>\n<p> <img decoding=\"async\" src=\"http:\/\/4563.org\/wp-content\/uploads\/2020\/05\/62e721e4gw1et02ek7u61j200k00k3y9-21.jpg\" rel=\"noreferrer\" referrerpolicy=\"no-referrer\" alt=\"Docker \u90e8\u7f72\u7684\u4e00\u4e2a\u95ee\u9898\uff0c\u6c42\u5927\u795e\u89e3\u60d1\"> <img decoding=\"async\" src=\"http:\/\/4563.org\/wp-content\/uploads\/2020\/05\/62e721e4gw1et02ek7u61j200k00k3y9-21.jpg\" rel=\"noreferrer\" referrerpolicy=\"no-referrer\" alt=\"Docker \u90e8\u7f72\u7684\u4e00\u4e2a\u95ee\u9898\uff0c\u6c42\u5927\u795e\u89e3\u60d1\"> <img decoding=\"async\" src=\"http:\/\/4563.org\/wp-content\/uploads\/2020\/05\/62e721e4gw1et02ek7u61j200k00k3y9-21.jpg\" rel=\"noreferrer\" referrerpolicy=\"no-referrer\" alt=\"Docker \u90e8\u7f72\u7684\u4e00\u4e2a\u95ee\u9898\uff0c\u6c42\u5927\u795e\u89e3\u60d1\"> <\/p>\n<p>\u4e24\u5929\u65f6\u95f4\u554a\u3002\u3002\u3002                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li>\n","protected":false},"excerpt":{"rendered":"<p>Docker \u90e8\u7f72\u7684\u4e00\u4e2a\u95ee\u9898\uff0c\u6c42\u5927&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/102784"}],"collection":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=102784"}],"version-history":[{"count":1,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/102784\/revisions"}],"predecessor-version":[{"id":102786,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/102784\/revisions\/102786"}],"wp:attachment":[{"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=102784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=102784"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=102784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}