You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2018/02/20 23:01:44 UTC
[incubator-pulsar] branch master updated: Use advertisedAddress for
bookies in pulsar standalone (#1254)
This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 1061906 Use advertisedAddress for bookies in pulsar standalone (#1254)
1061906 is described below
commit 1061906b6a2313cfc23ed31eae984ad3b430c33e
Author: Sijie Guo <gu...@gmail.com>
AuthorDate: Tue Feb 20 15:01:42 2018 -0800
Use advertisedAddress for bookies in pulsar standalone (#1254)
* Use advertisedAddress for bookies in pulsar standalone (#233)
* Use advertised address for zookeeper server in standalone as well
---
.../java/org/apache/pulsar/PulsarStandaloneStarter.java | 11 +++++++----
.../apache/pulsar/zookeeper/LocalBookkeeperEnsemble.java | 11 +++++++++--
.../pulsar/zookeeper/LocalBookkeeperEnsembleTest.java | 16 ++++++++++++++++
3 files changed, 32 insertions(+), 6 deletions(-)
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandaloneStarter.java b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandaloneStarter.java
index 2cdf264..314eacf 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandaloneStarter.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandaloneStarter.java
@@ -107,13 +107,12 @@ public class PulsarStandaloneStarter {
this.config = PulsarConfigurationLoader.create((new FileInputStream(configFile)), ServiceConfiguration.class);
- // Set ZK server's host to localhost
- config.setZookeeperServers("127.0.0.1:" + zkPort);
- config.setGlobalZookeeperServers("127.0.0.1:" + zkPort);
+ String zkServers = "127.0.0.1";
if (advertisedAddress != null) {
// Use advertised address from command line
config.setAdvertisedAddress(advertisedAddress);
+ zkServers = advertisedAddress;
} else if (isBlank(config.getAdvertisedAddress())) {
// Use advertised address as local hostname
config.setAdvertisedAddress(ServiceConfigurationUtils.unsafeLocalhostResolve());
@@ -121,6 +120,10 @@ public class PulsarStandaloneStarter {
// Use advertised address from config file
}
+ // Set ZK server's host to localhost
+ config.setZookeeperServers(zkServers + ":" + zkPort);
+ config.setGlobalZookeeperServers(zkServers + ":" + zkPort);
+
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
try {
@@ -148,7 +151,7 @@ public class PulsarStandaloneStarter {
if (!onlyBroker) {
// Start LocalBookKeeper
- bkEnsemble = new LocalBookkeeperEnsemble(numOfBk, zkPort, bkPort, zkDir, bkDir, wipeData);
+ bkEnsemble = new LocalBookkeeperEnsemble(numOfBk, zkPort, bkPort, zkDir, bkDir, wipeData, config.getAdvertisedAddress());
bkEnsemble.startStandalone();
}
diff --git a/pulsar-zookeeper-utils/src/main/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsemble.java b/pulsar-zookeeper-utils/src/main/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsemble.java
index 42a94dc..016e2ad 100644
--- a/pulsar-zookeeper-utils/src/main/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsemble.java
+++ b/pulsar-zookeeper-utils/src/main/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsemble.java
@@ -69,6 +69,11 @@ public class LocalBookkeeperEnsemble {
public LocalBookkeeperEnsemble(int numberOfBookies, int zkPort, int bkBasePort, String zkDataDirName,
String bkDataDirName, boolean clearOldData) {
+ this(numberOfBookies, zkPort, bkBasePort, zkDataDirName, bkDataDirName, clearOldData, null);
+ }
+
+ public LocalBookkeeperEnsemble(int numberOfBookies, int zkPort, int bkBasePort, String zkDataDirName,
+ String bkDataDirName, boolean clearOldData, String advertisedAddress) {
this.numberOfBookies = numberOfBookies;
this.HOSTPORT = "127.0.0.1:" + zkPort;
this.ZooKeeperDefaultPort = zkPort;
@@ -76,10 +81,12 @@ public class LocalBookkeeperEnsemble {
this.zkDataDirName = zkDataDirName;
this.bkDataDirName = bkDataDirName;
this.clearOldData = clearOldData;
- LOG.info("Running " + this.numberOfBookies + " bookie(s).");
+ this.advertisedAddress = null == advertisedAddress ? "127.0.0.1" : advertisedAddress;
+ LOG.info("Running {} bookie(s) and advertised them at {}.", this.numberOfBookies, advertisedAddress);
}
private final String HOSTPORT;
+ private final String advertisedAddress;
NIOServerCnxnFactory serverFactory;
ZooKeeperServer zks;
ZooKeeper zkc;
@@ -224,7 +231,7 @@ public class LocalBookkeeperEnsemble {
conf.setProperty("dbStorage_readAheadCacheMaxSizeMb", 64);
conf.setFlushInterval(60000);
conf.setProperty("journalMaxGroupWaitMSec", 1L);
- conf.setAdvertisedAddress("127.0.0.1");
+ conf.setAdvertisedAddress(advertisedAddress);
runZookeeper(1000);
initializeZookeper();
diff --git a/pulsar-zookeeper-utils/src/test/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsembleTest.java b/pulsar-zookeeper-utils/src/test/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsembleTest.java
index bcb9f04..95735af 100644
--- a/pulsar-zookeeper-utils/src/test/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsembleTest.java
+++ b/pulsar-zookeeper-utils/src/test/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsembleTest.java
@@ -21,6 +21,7 @@ package org.apache.pulsar.zookeeper;
import java.io.File;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.assertFalse;
import org.testng.annotations.AfterMethod;
@@ -42,6 +43,21 @@ public class LocalBookkeeperEnsembleTest {
}
@Test
+ void testAdvertisedAddress() throws Exception {
+ final int numBk = 1;
+ final int zkPort = PortManager.nextFreePort();
+ final int bkPort = PortManager.nextFreePort();
+
+ LocalBookkeeperEnsemble ensemble = new LocalBookkeeperEnsemble(
+ numBk, zkPort, bkPort, null, null, true, "127.0.0.2");
+ ensemble.startStandalone();
+
+ assertNotNull(ensemble.getZkClient().exists("/ledgers/available/127.0.0.2:" + bkPort, false));
+
+ ensemble.stop();
+ }
+
+ @Test
void testStartStop() throws Exception {
final int numBk = 1;
--
To stop receiving notification emails like this one, please contact
mmerli@apache.org.