From 3af38a10f1996b8586cf452dd0e41a89364cf0b8 Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Tue, 8 Mar 2016 22:11:36 +0000 Subject: [PATCH] Use `getHostString` instead of `getHostName` to avoid reverse DNS look-ups --- .../java/org/apache/kafka/common/Cluster.java | 4 +- .../org/apache/kafka/common/ClusterTest.java | 42 +++++++++++++++++++ .../scala/kafka/network/SocketServer.scala | 4 +- 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 clients/src/test/java/org/apache/kafka/common/ClusterTest.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 d86e3a4a1b63e..4f3735850fc11 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 static Cluster empty() { * @return A cluster for these hosts/ports */ public static Cluster bootstrap(List addresses) { - List nodes = new ArrayList(); + List 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(0), Collections.emptySet()); } 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 0000000000000..c4b5d4609ae4b --- /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 expectedHosts = Utils.mkSet(ipAddress, hostName); + Set actualHosts = new HashSet<>(); + for (Node node : cluster.nodes()) + actualHosts.add(node.host()); + assertEquals(expectedHosts, actualHosts); + } + +} diff --git a/core/src/main/scala/kafka/network/SocketServer.scala b/core/src/main/scala/kafka/network/SocketServer.scala index f6c30366c5d66..5c31ac656607a 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 }