Hi Ben and Marko -- great suggestions re: connection failures and docker. The specific error here is: LeaderNotAvailableError: TopicMetadata(topic='topic-test-production', error=5, partitions=[])
That is an error code (5) returned from a MetadataRequest. In this context it means that the topic did not exist and so the request triggered an auto-create initialization (i.e., the connection was fine). Topic initialization tends to take a few seconds to complete, but only needs to happen once per topic. A retry here is generally fine. This retry should probably be handled under the covers by the client code. So in this case I would treat it as a simple kafka-python issue (#488). -Dana On Thu, Dec 17, 2015 at 4:58 AM, Ben Davison <ben.davi...@7digital.com> wrote: > I probably should of mentioned that this was using Amazon ECS. > > On Thu, Dec 17, 2015 at 12:18 PM, Marko Bonaći <marko.bon...@sematext.com> > wrote: > > > It doesn't have to be FQDN. > > > > Here's how I run Kafka in a container: > > docker run --name st-kafka -p 2181:2181 -p 9092:9092 -e > > ADVERTISED_HOST=`docker-machine ip dev-st` -e ADVERTISED_PORT=9092 -d > > spotify/kafka > > > > And then you have access to Kafka on the docker host VM from any other > > machine. > > BTW I use Spotify's image since it contains both ZK and Kafka, but I > think > > the latest version they built is 0.8.2.1, so you might have to build the > > new image yourself if you need 0.9, but that's trivial to do. > > > > Marko Bonaći > > Monitoring | Alerting | Anomaly Detection | Centralized Log Management > > Solr & Elasticsearch Support > > Sematext <http://sematext.com/> | Contact > > <http://sematext.com/about/contact.html> > > > > On Thu, Dec 17, 2015 at 11:33 AM, Ben Davison <ben.davi...@7digital.com> > > wrote: > > > > > Hi David, > > > > > > Are you running in docker? Are you trying to connect from to a remote > > box? > > > We found we could connect locally but couldn't connect from another > > remote > > > host. > > > > > > (I've just started using kafka also) > > > > > > We had the same issue and found out: host.name=<%=@ipaddress%> needed > to > > > be > > > the FQDN of the box. > > > > > > Thanks, > > > > > > Ben > > > > > > On Thu, Dec 17, 2015 at 5:40 AM, David Montgomery < > > > davidmontgom...@gmail.com > > > > wrote: > > > > > > > Hi, > > > > > > > > I am very concerned about using kafka in production given the below > > > > errors: > > > > > > > > Now issues with myt zookeeper. Other services use ZK. Only kafka > > fails. > > > > I have 2 kafka servers using 8.x. How do I resolve? I tried > > restarting > > > > services for kafka. Below is my kafka server.properties file > > > > > > > > 'Traceback (most recent call last): > > > > File > > > > > > > > > > > > > > "/usr/local/lib/python2.7/dist-packages/gevent-1.1b6-py2.7-linux-x86_64.egg/gevent/greenlet.py", > > > > line 523, in run > > > > result = self._run(*self.args, **self.kwargs) > > > > File "/var/feed-server/ad-server/pixel-server.py", line 145, in > > > > send_kafka_message > > > > res = producer.send_messages(topic, message) > > > > File "build/bdist.linux-x86_64/egg/kafka/producer/simple.py", line > > 52, > > > in > > > > send_messages > > > > partition = self._next_partition(topic) > > > > File "build/bdist.linux-x86_64/egg/kafka/producer/simple.py", line > > 36, > > > in > > > > _next_partition > > > > self.client.load_metadata_for_topics(topic) > > > > File "build/bdist.linux-x86_64/egg/kafka/client.py", line 383, in > > > > load_metadata_for_topics > > > > kafka.common.check_error(topic_metadata) > > > > File "build/bdist.linux-x86_64/egg/kafka/common.py", line 233, in > > > > check_error > > > > raise error_class(response) > > > > LeaderNotAvailableError: TopicMetadata(topic='topic-test-production', > > > > error=5, partitions=[]) > > > > <Greenlet at 0x7f7acd1654b0: > > send_kafka_message('topic-test-production', > > > > '{"adfadfadf)> failed with LeaderNotAvailableError > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > # limitations under the License. > > > > # see kafka.server.KafkaConfig for additional details and defaults > > > > > > > > ############################# Server Basics > > ############################# > > > > > > > > # The id of the broker. This must be set to a unique integer for each > > > > broker. > > > > broker.id=<%=@broker_id%> > > > > advertised.host.name=<%=@ipaddress%> > > > > advertised.port=9092 > > > > ############################# Socket Server Settings > > > > ############################# > > > > > > > > # The port the socket server listens on > > > > port=9092 > > > > > > > > # Hostname the broker will bind to and advertise to producers and > > > > consumers. > > > > # If not set, the server will bind to all interfaces and advertise > the > > > > value returned from > > > > # from java.net.InetAddress.getCanonicalHostName(). > > > > host.name=<%=@ipaddress%> > > > > > > > > # The number of threads handling network requests > > > > num.network.threads=2 > > > > > > > > # The number of threads doing disk I/O > > > > num.io.threads=2 > > > > > > > > # The send buffer (SO_SNDBUF) used by the socket server > > > > socket.send.buffer.bytes=1048576 > > > > > > > > # The receive buffer (SO_RCVBUF) used by the socket server > > > > socket.receive.buffer.bytes=1048576 > > > > > > > > # The maximum size of a request that the socket server will accept > > > > (protection against OOM) > > > > socket.request.max.bytes=104857600 > > > > > > > > > > > > ############################# Log Basics > ############################# > > > > > > > > # A comma seperated list of directories under which to store log > files > > > > log.dirs=/tmp/kafka-logs > > > > > > > > # The number of logical partitions per topic per server. More > > partitions > > > > allow greater parallelism > > > > # for consumption, but also mean more files. > > > > num.partitions=2 > > > > > > > > ############################# Log Flush Policy > > > > ############################# > > > > > > > > # The following configurations control the flush of data to disk. > This > > is > > > > among the most > > > > # important performance knob in kafka. > > > > # There are a few important trade-offs here: > > > > # 1. Durability: Unflushed data may be lost if you are not using > > > > replication. > > > > # 2. Latency: Very large flush intervals may lead to latency > spikes > > > when > > > > the flush does occur as there will be a lot of data to flush. > > > > # 3. Throughput: The flush is generally the most expensive > > operation, > > > > and a small flush interval may lead to exceessive seeks. > > > > # The settings below allow one to configure the flush policy to flush > > > data > > > > after a period of time or > > > > # every N messages (or both). This can be done globally and > overridden > > > on a > > > > per-topic basis. > > > > > > > > # The number of messages to accept before forcing a flush of data to > > disk > > > > log.flush.interval.messages=10000 > > > > > > > > # The maximum amount of time a message can sit in a log before we > > force a > > > > flush > > > > log.flush.interval.ms=1000 > > > > > > > > # Per-topic overrides for log.flush.interval.ms > > > > #log.flush.intervals.ms.per.topic=topic1:1000, topic2:3000 > > > > > > > > ############################# Log Retention Policy > > > > ############################# > > > > > > > > # The following configurations control the disposal of log segments. > > The > > > > policy can > > > > # be set to delete segments after a period of time, or after a given > > size > > > > has accumulated. > > > > # A segment will be deleted whenever *either* of these criteria are > > met. > > > > Deletion always happens > > > > # from the end of the log. > > > > > > > > # The minimum age of a log file to be eligible for deletion > > > > log.retention.hours=168 > > > > > > > > # A size-based retention policy for logs. Segments are pruned from > the > > > log > > > > as long as the remaining > > > > # segments don't drop below log.retention.bytes. > > > > #log.retention.bytes=1073741824 > > > > > > > > # The maximum size of a log segment file. When this size is reached a > > new > > > > log segment will be created. > > > > log.segment.bytes=536870912 > > > > > > > > # The interval at which log segments are checked to see if they can > be > > > > deleted according > > > > # to the retention policies > > > > log.cleanup.interval.mins=1 > > > > > > > > ############################# Zookeeper ############################# > > > > > > > > # Zookeeper connection string (see zookeeper docs for details). > > > > # This is a comma separated host:port pairs, each corresponding to a > zk > > > > # server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002". > > > > # You can also append an optional chroot string to the urls to > specify > > > the > > > > # root directory for all kafka znodes. > > > > #zookeeper.connect=localhost:2181 > > > > zookeeper.connect=<%=@zookeeper%> > > > > > > > > > > > > # Timeout in ms for connecting to zookeeper > > > > zookeeper.connection.timeout.ms=1000000 > > > > > > > > num.replica.fetchers=4 > > > > default.replication.factor=2 > > > > delete.topic.enable=true > > > > unclean.leader.election.enable=true > > > > > > > > > > -- > > > > > > > > > This email, including attachments, is private and confidential. If you > > have > > > received this email in error please notify the sender and delete it > from > > > your system. Emails are not secure and may contain viruses. No > liability > > > can be accepted for viruses that might be transferred by this email or > > any > > > attachment. Any unauthorised copying of this message or unauthorised > > > distribution and publication of the information contained herein are > > > prohibited. > > > > > > 7digital Limited. Registered office: 69 Wilson Street, London EC2A 2BB. > > > Registered in England and Wales. Registered No. 04843573. > > > > > > > -- > > > This email, including attachments, is private and confidential. If you have > received this email in error please notify the sender and delete it from > your system. Emails are not secure and may contain viruses. No liability > can be accepted for viruses that might be transferred by this email or any > attachment. Any unauthorised copying of this message or unauthorised > distribution and publication of the information contained herein are > prohibited. > > 7digital Limited. Registered office: 69 Wilson Street, London EC2A 2BB. > Registered in England and Wales. Registered No. 04843573. >