文章源自很文博客https://www.hinwi.com/很文博客-https://www.hinwi.com/11175.html
Apache Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消费。文章源自很文博客https://www.hinwi.com/很文博客-https://www.hinwi.com/11175.html
1.Kafka资料
- github(https://github.com/apache/kafka)
- .org官方文档(http://kafka.apache.org/)
- 最新release 0.11.0.0(https://github.com/apache/kafka/releases)
文章源自很文博客https://www.hinwi.com/很文博客-https://www.hinwi.com/11175.html
文章源自很文博客https://www.hinwi.com/很文博客-https://www.hinwi.com/11175.html
2.安装
Step 1: 下载
下载(https://www.apache.org/dyn/closer.cgi?path=/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz) 0.11.0.0 release版本到自己喜欢的目录并且解压.下载慢的可以试试百度云(http://pan.baidu.com/s/1nvuosdj)。文章源自很文博客https://www.hinwi.com/很文博客-https://www.hinwi.com/11175.html
- > tar -xzf kafka_2.11-0.11.0.0.tgz
- > cd kafka_2.11-0.11.0.0
STEP 2:启动服务
1.先启动一个ZooKeeper服务器
Kafka需要和ZooKeeper配套使用,所以需要先启动一个ZooKeeper服务器,如果还没有安装。 可以使用和kafka一起打包的便捷脚本来获取一个快速而又脏的单节点ZooKeeper实例:文章源自很文博客https://www.hinwi.com/很文博客-https://www.hinwi.com/11175.html
- > bin/zookeeper-server-start.sh config/zookeeper.properties
- ZooKeeper JMX enabled by default
- Using config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
- Starting zookeeper ... STARTED
或者启动自己安装zookeeper文章源自很文博客https://www.hinwi.com/很文博客-https://www.hinwi.com/11175.html
2. 启动kafka
在包目录下使用下面的命令启动kafka:
- > bin/kafka-server-start.sh config/server.properties
- [2017-08-08 14:49:00,838] INFO KafkaConfig values:
- advertised.host.name = null
- advertised.listeners = null
- advertised.port = null
- alter.config.policy.class.name = null
- authorizer.class.name =
- auto.create.topics.enable = true
- auto.leader.rebalance.enable = true
- background.threads = 10
- broker.id = 0
- broker.id.generation.enable = true
- broker.rack = null
- compression.type = producer
- connections.max.idle.ms = 600000
- controlled.shutdown.enable = true
- controlled.shutdown.max.retries = 3
- controlled.shutdown.retry.backoff.ms = 5000
- controller.socket.timeout.ms = 30000
- create.topic.policy.class.name = null
- default.replication.factor = 1
- delete.records.purgatory.purge.interval.requests = 1
- delete.topic.enable = false
- fetch.purgatory.purge.interval.requests = 1000
- group.initial.rebalance.delay.ms = 0
- group.max.session.timeout.ms = 300000
- group.min.session.timeout.ms = 6000
- host.name =
- inter.broker.listener.name = null
- inter.broker.protocol.version = 0.11.0-IV2
- leader.imbalance.check.interval.seconds = 300
- leader.imbalance.per.broker.percentage = 10
- listener.security.protocol.map = SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,TRACE:TRACE,SASL_SSL:SASL_SSL,PLAINTEXT:PLAINTEXT
- listeners = null
- log.cleaner.backoff.ms = 15000
- log.cleaner.dedupe.buffer.size = 134217728
- log.cleaner.delete.retention.ms = 86400000
- log.cleaner.enable = true
- log.cleaner.io.buffer.load.factor = 0.9
- log.cleaner.io.buffer.size = 524288
- log.cleaner.io.max.bytes.per.second = 1.7976931348623157E308
- log.cleaner.min.cleanable.ratio = 0.5
- log.cleaner.min.compaction.lag.ms = 0
- log.cleaner.threads = 1
- log.cleanup.policy = [delete]
- log.dir = /tmp/kafka-logs
- log.dirs = /tmp/kafka-logs
- log.flush.interval.messages = 9223372036854775807
- log.flush.interval.ms = null
- log.flush.offset.checkpoint.interval.ms = 60000
- log.flush.scheduler.interval.ms = 9223372036854775807
- log.flush.start.offset.checkpoint.interval.ms = 60000
- log.index.interval.bytes = 4096
- log.index.size.max.bytes = 10485760
- log.message.format.version = 0.11.0-IV2
- log.message.timestamp.difference.max.ms = 9223372036854775807
- log.message.timestamp.type = CreateTime
- log.preallocate = false
- log.retention.bytes = -1
- log.retention.check.interval.ms = 300000
- log.retention.hours = 168
- log.retention.minutes = null
- log.retention.ms = null
- log.roll.hours = 168
- log.roll.jitter.hours = 0
- log.roll.jitter.ms = null
- log.roll.ms = null
- log.segment.bytes = 1073741824
- log.segment.delete.delay.ms = 60000
- max.connections.per.ip = 2147483647
- max.connections.per.ip.overrides =
- message.max.bytes = 1000012
- metric.reporters = []
- metrics.num.samples = 2
- metrics.recording.level = INFO
- metrics.sample.window.ms = 30000
- min.insync.replicas = 1
- num.io.threads = 8
- num.network.threads = 3
- num.partitions = 1
- num.recovery.threads.per.data.dir = 1
- num.replica.fetchers = 1
- offset.metadata.max.bytes = 4096
- offsets.commit.required.acks = -1
- offsets.commit.timeout.ms = 5000
- offsets.load.buffer.size = 5242880
- offsets.retention.check.interval.ms = 600000
- offsets.retention.minutes = 1440
- offsets.topic.compression.codec = 0
- offsets.topic.num.partitions = 50
- offsets.topic.replication.factor = 1
- offsets.topic.segment.bytes = 104857600
- port = 9092
- principal.builder.class = class org.apache.kafka.common.security.auth.DefaultPrincipalBuilder
- producer.purgatory.purge.interval.requests = 1000
- queued.max.requests = 500
- quota.consumer.default = 9223372036854775807
- quota.producer.default = 9223372036854775807
- quota.window.num = 11
- quota.window.size.seconds = 1
- replica.fetch.backoff.ms = 1000
- replica.fetch.max.bytes = 1048576
- replica.fetch.min.bytes = 1
- replica.fetch.response.max.bytes = 10485760
- replica.fetch.wait.max.ms = 500
- replica.high.watermark.checkpoint.interval.ms = 5000
- replica.lag.time.max.ms = 10000
- replica.socket.receive.buffer.bytes = 65536
- replica.socket.timeout.ms = 30000
- replication.quota.window.num = 11
- replication.quota.window.size.seconds = 1
- request.timeout.ms = 30000
- reserved.broker.max.id = 1000
- sasl.enabled.mechanisms = [GSSAPI]
- sasl.kerberos.kinit.cmd = /usr/bin/kinit
- sasl.kerberos.min.time.before.relogin = 60000
- sasl.kerberos.principal.to.local.rules = [DEFAULT]
- sasl.kerberos.service.name = null
- sasl.kerberos.ticket.renew.jitter = 0.05
- sasl.kerberos.ticket.renew.window.factor = 0.8
- sasl.mechanism.inter.broker.protocol = GSSAPI
- security.inter.broker.protocol = PLAINTEXT
- socket.receive.buffer.bytes = 102400
- socket.request.max.bytes = 104857600
- socket.send.buffer.bytes = 102400
- ssl.cipher.suites = null
- ssl.client.auth = none
- ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1]
- ssl.endpoint.identification.algorithm = null
- ssl.key.password = null
- ssl.keymanager.algorithm = SunX509
- ssl.keystore.location = null
- ssl.keystore.password = null
- ssl.keystore.type = JKS
- ssl.protocol = TLS
- ssl.provider = null
- ssl.secure.random.implementation = null
- ssl.trustmanager.algorithm = PKIX
- ssl.truststore.location = null
- ssl.truststore.password = null
- ssl.truststore.type = JKS
- transaction.abort.timed.out.transaction.cleanup.interval.ms = 60000
- transaction.max.timeout.ms = 900000
- transaction.remove.expired.transaction.cleanup.interval.ms = 3600000
- transaction.state.log.load.buffer.size = 5242880
- transaction.state.log.min.isr = 1
- transaction.state.log.num.partitions = 50
- transaction.state.log.replication.factor = 1
- transaction.state.log.segment.bytes = 104857600
- transactional.id.expiration.ms = 604800000
- unclean.leader.election.enable = false
- zookeeper.connect = localhost:2181
- zookeeper.connection.timeout.ms = 6000
- zookeeper.session.timeout.ms = 6000
- zookeeper.set.acl = false
- zookeeper.sync.time.ms = 2000
- (kafka.server.KafkaConfig)
- [2017-08-08 14:49:00,936] INFO starting (kafka.server.KafkaServer)
- [2017-08-08 14:49:00,940] INFO Connecting to zookeeper on localhost:2181 (kafka.server.KafkaServer)
- [2017-08-08 14:49:00,962] INFO Starting ZkClient event thread. (org.I0Itec.zkclient.ZkEventThread)
- [2017-08-08 14:49:00,980] INFO Client environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,980] INFO Client environment:host.name=watercubedembp.lan (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,980] INFO Client environment:java.version=1.8.0_60 (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,980] INFO Client environment:java.vendor=Oracle Corporation (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,980] INFO Client environment:java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,980] INFO Client environment:java.class.path=:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/aopalliance-repackaged-2.5.0-b05.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/argparse4j-0.7.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/commons-lang3-3.5.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/connect-api-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/connect-file-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/connect-json-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/connect-runtime-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/connect-transforms-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/guava-20.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/hk2-api-2.5.0-b05.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/hk2-locator-2.5.0-b05.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/hk2-utils-2.5.0-b05.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jackson-annotations-2.8.5.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jackson-core-2.8.5.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jackson-databind-2.8.5.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jackson-jaxrs-base-2.8.5.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jackson-jaxrs-json-provider-2.8.5.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jackson-module-jaxb-annotations-2.8.5.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/javassist-3.21.0-GA.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/javax.annotation-api-1.2.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/javax.inject-1.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/javax.inject-2.5.0-b05.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/javax.servlet-api-3.1.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/javax.ws.rs-api-2.0.1.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jersey-client-2.24.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jersey-common-2.24.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jersey-container-servlet-2.24.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jersey-container-servlet-core-2.24.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jersey-guava-2.24.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jersey-media-jaxb-2.24.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jersey-server-2.24.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jetty-continuation-9.2.15.v20160210.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jetty-http-9.2.15.v20160210.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jetty-io-9.2.15.v20160210.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jetty-security-9.2.15.v20160210.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jetty-server-9.2.15.v20160210.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jetty-servlet-9.2.15.v20160210.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jetty-servlets-9.2.15.v20160210.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jetty-util-9.2.15.v20160210.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/jopt-simple-5.0.3.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/kafka-clients-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/kafka-log4j-appender-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/kafka-streams-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/kafka-streams-examples-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/kafka-tools-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/kafka_2.11-0.11.0.0-sources.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/kafka_2.11-0.11.0.0-test-sources.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/kafka_2.11-0.11.0.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/log4j-1.2.17.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/lz4-1.3.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/maven-artifact-3.5.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/metrics-core-2.2.0.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/osgi-resource-locator-1.0.1.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/plexus-utils-3.0.24.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/reflections-0.9.11.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/rocksdbjni-5.0.1.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/scala-library-2.11.11.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/scala-parser-combinators_2.11-1.0.4.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/slf4j-api-1.7.25.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/slf4j-log4j12-1.7.25.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/snappy-java-1.1.2.6.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/validation-api-1.1.0.Final.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/zkclient-0.10.jar:/usr/local/kafka_2.11-0.11.0.0/bin/../libs/zookeeper-3.4.10.jar (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,981] INFO Client environment:java.library.path=/Users/watercube/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,981] INFO Client environment:java.io.tmpdir=/var/folders/41/x0c6_wcs6813gw9qt_jhqmf40000gn/T/ (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,981] INFO Client environment:java.compiler=<NA> (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,982] INFO Client environment:os.name=Mac OS X (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,982] INFO Client environment:os.arch=x86_64 (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,982] INFO Client environment:os.version=10.12.5 (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,982] INFO Client environment:user.name=watercube (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,982] INFO Client environment:user.home=/Users/watercube (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,982] INFO Client environment:user.dir=/usr/local/kafka_2.11-0.11.0.0 (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:00,983] INFO Initiating client connection, connectString=localhost:2181 sessionTimeout=6000 watcher=org.I0Itec.zkclient.ZkClient@3911c2a7 (org.apache.zookeeper.ZooKeeper)
- [2017-08-08 14:49:01,009] INFO Waiting for keeper state SyncConnected (org.I0Itec.zkclient.ZkClient)
- [2017-08-08 14:49:01,013] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
- [2017-08-08 14:49:01,129] INFO Socket connection established to localhost/127.0.0.1:2181, initiating session (org.apache.zookeeper.ClientCnxn)
- [2017-08-08 14:49:01,212] INFO Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x15dc097dc680000, negotiated timeout = 6000 (org.apache.zookeeper.ClientCnxn)
- [2017-08-08 14:49:01,215] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient)
- [2017-08-08 14:49:01,349] INFO Cluster ID = qV4RDpIbREegszqq6RAFcw (kafka.server.KafkaServer)
- [2017-08-08 14:49:01,354] WARN No meta.properties file under dir /tmp/kafka-logs/meta.properties (kafka.server.BrokerMetadataCheckpoint)
- [2017-08-08 14:49:01,394] INFO [ThrottledRequestReaper-Fetch]: Starting (kafka.server.ClientQuotaManager$ThrottledRequestReaper)
- [2017-08-08 14:49:01,394] INFO [ThrottledRequestReaper-Produce]: Starting (kafka.server.ClientQuotaManager$ThrottledRequestReaper)
- [2017-08-08 14:49:01,451] INFO [ThrottledRequestReaper-Request]: Starting (kafka.server.ClientQuotaManager$ThrottledRequestReaper)
- [2017-08-08 14:49:01,511] INFO Log directory '/tmp/kafka-logs' not found, creating it. (kafka.log.LogManager)
- [2017-08-08 14:49:01,534] INFO Loading logs. (kafka.log.LogManager)
- [2017-08-08 14:49:01,549] INFO Logs loading complete in 15 ms. (kafka.log.LogManager)
- [2017-08-08 14:49:01,726] INFO Starting log cleanup with a period of 300000 ms. (kafka.log.LogManager)
- [2017-08-08 14:49:01,728] INFO Starting log flusher with a default period of 9223372036854775807 ms. (kafka.log.LogManager)
- [2017-08-08 14:49:01,793] INFO Awaiting socket connections on 0.0.0.0:9092. (kafka.network.Acceptor)
- [2017-08-08 14:49:01,798] INFO [Socket Server on Broker 0], Started 1 acceptor threads (kafka.network.SocketServer)
- [2017-08-08 14:49:01,819] INFO [ExpirationReaper-0-Produce]: Starting (kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper)
- [2017-08-08 14:49:01,820] INFO [ExpirationReaper-0-Fetch]: Starting (kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper)
- [2017-08-08 14:49:01,821] INFO [ExpirationReaper-0-DeleteRecords]: Starting (kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper)
- [2017-08-08 14:49:01,895] INFO [ExpirationReaper-0-topic]: Starting (kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper)
- [2017-08-08 14:49:01,902] INFO [ExpirationReaper-0-Heartbeat]: Starting (kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper)
- [2017-08-08 14:49:01,905] INFO [ExpirationReaper-0-Rebalance]: Starting (kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper)
- [2017-08-08 14:49:01,905] INFO Creating /controller (is it secure? false) (kafka.utils.ZKCheckedEphemeral)
- [2017-08-08 14:49:01,916] INFO Result of znode creation is: OK (kafka.utils.ZKCheckedEphemeral)
- [2017-08-08 14:49:01,929] INFO [GroupCoordinator 0]: Starting up. (kafka.coordinator.group.GroupCoordinator)
- [2017-08-08 14:49:01,930] INFO [GroupCoordinator 0]: Startup complete. (kafka.coordinator.group.GroupCoordinator)
- [2017-08-08 14:49:01,941] INFO [Group Metadata Manager on Broker 0]: Removed 0 expired offsets in 10 milliseconds. (kafka.coordinator.group.GroupMetadataManager)
- [2017-08-08 14:49:01,988] INFO [ProducerId Manager 0]: Acquired new producerId block (brokerId:0,blockStartProducerId:0,blockEndProducerId:999) by writing to Zk with path version 1 (kafka.coordinator.transaction.ProducerIdManager)
- [2017-08-08 14:49:02,043] INFO [Transaction Coordinator 0]: Starting up. (kafka.coordinator.transaction.TransactionCoordinator)
- [2017-08-08 14:49:02,050] INFO [Transaction Coordinator 0]: Startup complete. (kafka.coordinator.transaction.TransactionCoordinator)
- [2017-08-08 14:49:02,052] INFO [Transaction Marker Channel Manager 0]: Starting (kafka.coordinator.transaction.TransactionMarkerChannelManager)
- [2017-08-08 14:49:02,147] INFO Will not load MX4J, mx4j-tools.jar is not in the classpath (kafka.utils.Mx4jLoader$)
- [2017-08-08 14:49:02,232] INFO Creating /brokers/ids/0 (is it secure? false) (kafka.utils.ZKCheckedEphemeral)
- [2017-08-08 14:49:02,237] INFO Result of znode creation is: OK (kafka.utils.ZKCheckedEphemeral)
- [2017-08-08 14:49:02,239] INFO Registered broker 0 at path /brokers/ids/0 with addresses: EndPoint(watercubedembp.lan,9092,ListenerName(PLAINTEXT),PLAINTEXT) (kafka.utils.ZkUtils)
- [2017-08-08 14:49:02,240] WARN No meta.properties file under dir /tmp/kafka-logs/meta.properties (kafka.server.BrokerMetadataCheckpoint)
- [2017-08-08 14:49:02,277] INFO Kafka version : 0.11.0.0 (org.apache.kafka.common.utils.AppInfoParser)
- [2017-08-08 14:49:02,277] INFO Kafka commitId : cb8625948210849f (org.apache.kafka.common.utils.AppInfoParser)
- [2017-08-08 14:49:02,279] INFO [Kafka Server 0], started (kafka.server.KafkaServer)
STEP 3:创建一个TOPIC
在一个分区下创建一个topic—“test”
- > bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
- Created topic "test".
我们可以使用list命令来查看这个topic:
- > bin/kafka-topics.sh --list --zookeeper localhost:2181
- test
除了手动创建topic,也可以将broker配置为当发布的主题不存在时自动创建主题。
STEP 4: 发送消息
Kafka附带一个命令行客户端,它将从文件或标准输入中输入,并将其作为消息发送到Kafka群集。 默认情况下,每行将作为单独的消息发送。
运行生产者,然后在控制台中输入一些消息以发送到服务器。
- > bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
- This is a message
- This is another message
STEP 5: 启动消费者
Kafka还有一个命令行消费者,将接收到的消息转储到标准输出。
- > bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
- This is a message
- This is another message
注,正常情况下,服务器,生产者,消费者分别占用一个terminal,简单的安装和测试到这里。