Repository: kafka Updated Branches: refs/heads/trunk 59d19cf3e -> 818080312
KAFKA-3352: Avoid DNS reverse lookups By using `getHostString` (introduced in Java 7) instead of `getHostName`. Author: Ismael Juma <[email protected]> Reviewers: Jason Gustafson, Grant Henke Closes #1030 from ijuma/kafka-3352-avoid-dns-reverse-look-ups Project: http://git-wip-us.apache.org/repos/asf/kafka/repo Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/81808031 Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/81808031 Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/81808031 Branch: refs/heads/trunk Commit: 818080312364940e4a6e964c22ec54e133b8ec02 Parents: 59d19cf Author: Ismael Juma <[email protected]> Authored: Wed Mar 9 14:19:57 2016 -0800 Committer: Gwen Shapira <[email protected]> Committed: Wed Mar 9 14:19:57 2016 -0800 ---------------------------------------------------------------------- .../java/org/apache/kafka/common/Cluster.java | 4 +- .../org/apache/kafka/common/ClusterTest.java | 42 ++++++++++++++++++++ .../main/scala/kafka/network/SocketServer.scala | 4 +- 3 files changed, 46 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kafka/blob/81808031/clients/src/main/java/org/apache/kafka/common/Cluster.java ---------------------------------------------------------------------- diff --git a/clients/src/main/java/org/apache/kafka/common/Cluster.java b/clients/src/main/java/org/apache/kafka/common/Cluster.java index d86e3a4..4f37358 100644 --- a/clients/src/main/java/org/apache/kafka/common/Cluster.java +++ b/clients/src/main/java/org/apache/kafka/common/Cluster.java @@ -110,10 +110,10 @@ public final class Cluster { * @return A cluster for these hosts/ports */ public static Cluster bootstrap(List<InetSocketAddress> addresses) { - List<Node> nodes = new ArrayList<Node>(); + List<Node> nodes = new ArrayList<>(); int nodeId = -1; for (InetSocketAddress address : addresses) - nodes.add(new Node(nodeId--, address.getHostName(), address.getPort())); + nodes.add(new Node(nodeId--, address.getHostString(), address.getPort())); return new Cluster(nodes, new ArrayList<PartitionInfo>(0), Collections.<String>emptySet()); } http://git-wip-us.apache.org/repos/asf/kafka/blob/81808031/clients/src/test/java/org/apache/kafka/common/ClusterTest.java ---------------------------------------------------------------------- diff --git a/clients/src/test/java/org/apache/kafka/common/ClusterTest.java b/clients/src/test/java/org/apache/kafka/common/ClusterTest.java new file mode 100644 index 0000000..c4b5d46 --- /dev/null +++ b/clients/src/test/java/org/apache/kafka/common/ClusterTest.java @@ -0,0 +1,42 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE + * file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file + * to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ +package org.apache.kafka.common; + +import org.apache.kafka.common.utils.Utils; +import org.junit.Test; + +import java.net.InetSocketAddress; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +import static org.junit.Assert.assertEquals; + +public class ClusterTest { + + @Test + public void testBootstrap() { + String ipAddress = "140.211.11.105"; + String hostName = "www.example.com"; + Cluster cluster = Cluster.bootstrap(Arrays.asList( + new InetSocketAddress(ipAddress, 9002), + new InetSocketAddress(hostName, 9002) + )); + Set<String> expectedHosts = Utils.mkSet(ipAddress, hostName); + Set<String> actualHosts = new HashSet<>(); + for (Node node : cluster.nodes()) + actualHosts.add(node.host()); + assertEquals(expectedHosts, actualHosts); + } + +} http://git-wip-us.apache.org/repos/asf/kafka/blob/81808031/core/src/main/scala/kafka/network/SocketServer.scala ---------------------------------------------------------------------- diff --git a/core/src/main/scala/kafka/network/SocketServer.scala b/core/src/main/scala/kafka/network/SocketServer.scala index f6c3036..5c31ac6 100644 --- a/core/src/main/scala/kafka/network/SocketServer.scala +++ b/core/src/main/scala/kafka/network/SocketServer.scala @@ -303,10 +303,10 @@ private[kafka] class Acceptor(val endPoint: EndPoint, serverChannel.socket().setReceiveBufferSize(recvBufferSize) try { serverChannel.socket.bind(socketAddress) - info("Awaiting socket connections on %s:%d.".format(socketAddress.getHostName, serverChannel.socket.getLocalPort)) + info("Awaiting socket connections on %s:%d.".format(socketAddress.getHostString, serverChannel.socket.getLocalPort)) } catch { case e: SocketException => - throw new KafkaException("Socket server failed to bind to %s:%d: %s.".format(socketAddress.getHostName, port, e.getMessage), e) + throw new KafkaException("Socket server failed to bind to %s:%d: %s.".format(socketAddress.getHostString, port, e.getMessage), e) } serverChannel }
