[ https://issues.apache.org/jira/browse/KAFKA-1092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13809668#comment-13809668 ]
Roger Hoover edited comment on KAFKA-1092 at 10/30/13 9:52 PM: --------------------------------------------------------------- The reason the kafka.producer.ProducerTest was broken was because that test was creating an anonymous subclass of KafkaConfig and overriding a couple of members. I don't know Scala that well but discovered that statically initialized variables that depend on other statically initialized variables behave unexpectedly. To fix this, I just set properties in the test and do not subclass KafkaConfig, as users would do. {code} class A() { val x = 1 val y = x } class B() extends A { override val x = 2 } val b = new B() b.y //this is 0, not 1 or 2 {code} was (Author: theduderog): The reason the kafka.producer.ProducerTest was broken was because that test was creating an anonymous subclass of KafkaConfig and overriding a couple of members. I don't know Scala that well but discovered that statically initialized variables that depend on other statically initialized variables behave unexpectedly. To fix this, I just set properties in the test and do not subclass KafkaConfig, as users would do. class A() { val x = 1 val y = x } class B() extends A { override val x = 2 } val b = new B() b.y //this is 0, not 1 or 2 > Add server config parameter to separate bind address and ZK hostname > -------------------------------------------------------------------- > > Key: KAFKA-1092 > URL: https://issues.apache.org/jira/browse/KAFKA-1092 > Project: Kafka > Issue Type: New Feature > Components: config > Affects Versions: 0.8.1 > Reporter: Roger Hoover > Attachments: KAFKA-1092.patch, KAFKA-1092.patch > > > Currently, in server.properties, you can configure host.name which gets used > for two purposes: 1) to bind the socket 2) to publish the broker details to > ZK for clients to use. > There are times when these two settings need to be different. Here's an > example. I want to setup Kafka brokers on OpenStack virtual machines in a > private cloud but I need producers to connect from elsewhere on the internal > corporate network. With OpenStack, the virtual machines are only exposed to > DHCP addresses (typically RFC 1918 private addresses). You can assign > "floating ips" to a virtual machine but it's forwarded using Network Address > Translation and not exposed directly to the VM. Also, there's typically no > DNS to provide hostname lookup. Hosts have names like "fubar.novalocal" that > are not externally routable. > Here's what I want. I want the broker to bind to the VM's private network IP > but I want it to publish it's floating IP to ZooKeeper so that producers can > publish to it. > I propose a new optional parameter, "listen", which would allow you to > specify the socket address to listen on. If not set, the parameter would > default to host.name, which is the current behavior. > #Publish the externally routable IP in ZK > host.name = <floating ip> > #Accept connections from any interface the VM knows about > listen = * -- This message was sent by Atlassian JIRA (v6.1#6144)