Java Code Examples for org.apache.pulsar.broker.ServiceConfiguration#setLoadManagerClassName()
The following examples show how to use
org.apache.pulsar.broker.ServiceConfiguration#setLoadManagerClassName() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ModularLoadManagerImplTest.java From pulsar with Apache License 2.0 | 6 votes |
/** * It verifies that pulsar-service fails if load-manager tries to create ephemeral znode for broker which is already * created by other zk-session-id. * * @throws Exception */ @Test public void testOwnBrokerZnodeByMultipleBroker() throws Exception { ServiceConfiguration config = new ServiceConfiguration(); config.setLoadManagerClassName(ModularLoadManagerImpl.class.getName()); config.setClusterName("use"); config.setWebServicePort(Optional.of(0)); config.setZookeeperServers("127.0.0.1" + ":" + bkEnsemble.getZookeeperPort()); config.setBrokerServicePort(Optional.of(0)); PulsarService pulsar = new PulsarService(config); // create znode using different zk-session final String brokerZnode = LoadManager.LOADBALANCE_BROKERS_ROOT + "/" + pulsar.getAdvertisedAddress() + ":" + config.getWebServicePort(); ZkUtils.createFullPathOptimistic(pulsar1.getZkClient(), brokerZnode, "".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL); try { pulsar.start(); } catch (PulsarServerException e) { //Ok. } pulsar.close(); }
Example 2
Source File: PulsarClientTest.java From java-specialagent with Apache License 2.0 | 5 votes |
@BeforeClass public static void beforeClass() throws Exception { if (!isJdkSupported) return; bkEnsemble = new LocalBookkeeperEnsemble(3, ZOOKEEPER_PORT, TestUtil::nextFreePort); bkEnsemble.start(); final int brokerWebServicePort = TestUtil.nextFreePort(); final int brokerServicePort = TestUtil.nextFreePort(); final ServiceConfiguration config = new ServiceConfiguration(); config.setClusterName(CLUSTER_NAME); final Set<String> superUsers = Sets.newHashSet("superUser"); config.setSuperUserRoles(superUsers); config.setWebServicePort(brokerWebServicePort); config.setZookeeperServers("127.0.0.1" + ":" + ZOOKEEPER_PORT); config.setBrokerServicePort(brokerServicePort); config.setLoadManagerClassName(SimpleLoadManagerImpl.class.getName()); config.setTlsAllowInsecureConnection(true); config.setAdvertisedAddress("localhost"); pulsarService = new PulsarService(config); pulsarService.start(); try (final PulsarAdmin admin = pulsarService.getAdminClient()) { final ClusterData clusterData = new ClusterData(pulsarService.getBrokerServiceUrl()); admin.clusters().createCluster(CLUSTER_NAME, clusterData); final TenantInfo propAdmin = new TenantInfo(); propAdmin.getAdminRoles().add("superUser"); propAdmin.setAllowedClusters(Sets.newHashSet(Lists.newArrayList(CLUSTER_NAME))); admin.tenants().createTenant("public", propAdmin); admin.namespaces().createNamespace("public/default", Sets.newHashSet(CLUSTER_NAME)); } }
Example 3
Source File: PulsarFunctionsITest.java From java-specialagent with Apache License 2.0 | 4 votes |
static void start() throws Exception { // Start local bookkeeper ensemble final LocalBookkeeperEnsemble bkEnsemble = new LocalBookkeeperEnsemble(3, ZOOKEEPER_PORT,TestUtil::nextFreePort); bkEnsemble.start(); final String brokerServiceUrl = "http://127.0.0.1:" + brokerWebServicePort; final ServiceConfiguration config = spy(new ServiceConfiguration()); config.setClusterName(CLUSTER_NAME); final Set<String> superUsers = Sets.newHashSet("superUser"); config.setSuperUserRoles(superUsers); config.setWebServicePort(Optional.of(brokerWebServicePort)); config.setZookeeperServers("127.0.0.1" + ":" + ZOOKEEPER_PORT); config.setBrokerServicePort(Optional.of(brokerServicePort)); config.setLoadManagerClassName(SimpleLoadManagerImpl.class.getName()); config.setTlsAllowInsecureConnection(true); config.setAdvertisedAddress("localhost"); config.setAuthenticationEnabled(false); config.setAuthorizationEnabled(false); config.setBrokerClientTlsEnabled(false); config.setAllowAutoTopicCreationType("non-partitioned"); final WorkerService functionsWorkerService = createPulsarFunctionWorker(config); final URL urlTls = new URL(brokerServiceUrl); final Optional<WorkerService> functionWorkerService = Optional.of(functionsWorkerService); try (final PulsarService pulsar = new PulsarService(config, functionWorkerService)) { pulsar.start(); try (final PulsarAdmin admin = PulsarAdmin.builder().serviceHttpUrl(brokerServiceUrl).allowTlsInsecureConnection(true).build()) { // update cluster metadata final ClusterData clusterData = new ClusterData(urlTls.toString()); admin.clusters().updateCluster(config.getClusterName(), clusterData); final TenantInfo propAdmin = new TenantInfo(); propAdmin.getAdminRoles().add("superUser"); propAdmin.setAllowedClusters(Sets.newHashSet(CLUSTER_NAME)); admin.tenants().updateTenant(tenant, propAdmin); final String jarFilePathUrl = Utils.FILE + ":" + ExclamationFunction.class.getProtectionDomain().getCodeSource().getLocation().getPath(); final ClientBuilder clientBuilder = PulsarClient.builder().serviceUrl(workerConfig.getPulsarServiceUrl()); try (final PulsarClient pulsarClient = clientBuilder.build()) { testE2EPulsarFunction(jarFilePathUrl, admin, pulsarClient); } } } }
Example 4
Source File: PulsarFunctionsITest.java From java-specialagent with Apache License 2.0 | 4 votes |
static void start() throws Exception { // Start local bookkeeper ensemble final LocalBookkeeperEnsemble bkEnsemble = new LocalBookkeeperEnsemble(3, ZOOKEEPER_PORT, TestUtil::nextFreePort); bkEnsemble.start(); final String brokerServiceUrl = "http://127.0.0.1:" + brokerWebServicePort; final ServiceConfiguration config = new ServiceConfiguration(); config.setClusterName(CLUSTER_NAME); final Set<String> superUsers = Sets.newHashSet("superUser"); config.setSuperUserRoles(superUsers); config.setZookeeperServers("127.0.0.1" + ":" + ZOOKEEPER_PORT); config.setLoadManagerClassName(SimpleLoadManagerImpl.class.getName()); config.setWebServicePort(brokerWebServicePort); config.setBrokerServicePort(brokerServicePort); config.setAuthenticationEnabled(false); config.setTlsEnabled(false); config.setTlsAllowInsecureConnection(true); config.setAdvertisedAddress("localhost"); final WorkerService functionsWorkerService = createPulsarFunctionWorker(config); final URL urlTls = new URL(brokerServiceUrl); final Optional<WorkerService> functionWorkerService = Optional.of(functionsWorkerService); try (final PulsarService pulsar = new PulsarService(config, functionWorkerService)) { pulsar.start(); try (final PulsarAdmin admin = PulsarAdmin.builder().serviceHttpUrl(brokerServiceUrl).allowTlsInsecureConnection(true).build()) { // update cluster metadata final ClusterData clusterData = new ClusterData(urlTls.toString()); admin.clusters().updateCluster(config.getClusterName(), clusterData); final ClientBuilder clientBuilder = PulsarClient.builder().serviceUrl(workerConfig.getPulsarServiceUrl()); try (final PulsarClient pulsarClient = clientBuilder.build()) { final TenantInfo propAdmin = new TenantInfo(); propAdmin.getAdminRoles().add("superUser"); propAdmin.setAllowedClusters(Sets.newHashSet(CLUSTER_NAME)); admin.tenants().updateTenant(tenant, propAdmin); testPulsarFunction(admin, pulsarClient); } } } }
Example 5
Source File: AntiAffinityNamespaceGroupTest.java From pulsar with Apache License 2.0 | 4 votes |
@BeforeMethod void setup() throws Exception { executor = new ThreadPoolExecutor(5, 20, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()); // Start local bookkeeper ensemble bkEnsemble = new LocalBookkeeperEnsemble(3, 0, () -> 0); bkEnsemble.start(); // Start broker 1 ServiceConfiguration config1 = new ServiceConfiguration(); config1.setLoadManagerClassName(ModularLoadManagerImpl.class.getName()); config1.setClusterName("use"); config1.setWebServicePort(Optional.of(0)); config1.setZookeeperServers("127.0.0.1" + ":" + bkEnsemble.getZookeeperPort()); config1.setBrokerServicePort(Optional.of(0)); config1.setFailureDomainsEnabled(true); config1.setLoadBalancerEnabled(true); config1.setAdvertisedAddress("localhost"); createCluster(bkEnsemble.getZkClient(), config1); pulsar1 = new PulsarService(config1); pulsar1.start(); primaryHost = String.format("%s:%d", "localhost", pulsar1.getListenPortHTTP().get()); url1 = new URL("http://127.0.0.1" + ":" + pulsar1.getListenPortHTTP().get()); admin1 = PulsarAdmin.builder().serviceHttpUrl(url1.toString()).build(); // Start broker 2 ServiceConfiguration config2 = new ServiceConfiguration(); config2.setLoadManagerClassName(ModularLoadManagerImpl.class.getName()); config2.setClusterName("use"); config2.setWebServicePort(Optional.of(0)); config2.setZookeeperServers("127.0.0.1" + ":" + bkEnsemble.getZookeeperPort()); config2.setBrokerServicePort(Optional.of(0)); config2.setFailureDomainsEnabled(true); config2.setAdvertisedAddress("localhost"); pulsar2 = new PulsarService(config2); pulsar2.start(); secondaryHost = String.format("%s:%d", "localhost", pulsar2.getListenPortHTTP().get()); url2 = new URL("http://127.0.0.1" + ":" + config2.getWebServicePort().get()); admin2 = PulsarAdmin.builder().serviceHttpUrl(url2.toString()).build(); primaryLoadManager = (ModularLoadManagerImpl) getField(pulsar1.getLoadManager().get(), "loadManager"); secondaryLoadManager = (ModularLoadManagerImpl) getField(pulsar2.getLoadManager().get(), "loadManager"); nsFactory = new NamespaceBundleFactory(pulsar1, Hashing.crc32()); Thread.sleep(100); }
Example 6
Source File: ModularLoadManagerImplTest.java From pulsar with Apache License 2.0 | 4 votes |
@BeforeMethod void setup() throws Exception { executor = new ThreadPoolExecutor(1, 20, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<>()); // Start local bookkeeper ensemble bkEnsemble = new LocalBookkeeperEnsemble(3, 0, () -> 0); bkEnsemble.start(); // Start broker 1 ServiceConfiguration config1 = new ServiceConfiguration(); config1.setLoadManagerClassName(ModularLoadManagerImpl.class.getName()); config1.setClusterName("use"); config1.setWebServicePort(Optional.of(0)); config1.setZookeeperServers("127.0.0.1" + ":" + bkEnsemble.getZookeeperPort()); config1.setAdvertisedAddress("localhost"); config1.setBrokerServicePort(Optional.of(0)); config1.setBrokerServicePortTls(Optional.of(0)); config1.setWebServicePortTls(Optional.of(0)); pulsar1 = new PulsarService(config1); pulsar1.start(); primaryHost = String.format("%s:%d", "localhost", pulsar1.getListenPortHTTP().get()); url1 = new URL(pulsar1.getWebServiceAddress()); admin1 = PulsarAdmin.builder().serviceHttpUrl(url1.toString()).build(); // Start broker 2 ServiceConfiguration config2 = new ServiceConfiguration(); config2.setLoadManagerClassName(ModularLoadManagerImpl.class.getName()); config2.setClusterName("use"); config2.setWebServicePort(Optional.of(0)); config2.setZookeeperServers("127.0.0.1" + ":" + bkEnsemble.getZookeeperPort()); config2.setAdvertisedAddress("localhost"); config2.setBrokerServicePort(Optional.of(0)); config2.setBrokerServicePortTls(Optional.of(0)); config2.setWebServicePortTls(Optional.of(0)); pulsar2 = new PulsarService(config2); pulsar2.start(); secondaryHost = String.format("%s:%d", "localhost", pulsar2.getListenPortHTTP().get()); url2 = new URL(pulsar2.getWebServiceAddress()); admin2 = PulsarAdmin.builder().serviceHttpUrl(url2.toString()).build(); primaryLoadManager = (ModularLoadManagerImpl) getField(pulsar1.getLoadManager().get(), "loadManager"); secondaryLoadManager = (ModularLoadManagerImpl) getField(pulsar2.getLoadManager().get(), "loadManager"); nsFactory = new NamespaceBundleFactory(pulsar1, Hashing.crc32()); Thread.sleep(100); }
Example 7
Source File: LoadBalancerTest.java From pulsar with Apache License 2.0 | 4 votes |
@BeforeMethod void setup() throws Exception { // Start local bookkeeper ensemble bkEnsemble = new LocalBookkeeperEnsemble(3, 0, () -> 0); bkEnsemble.start(); ZkUtils.createFullPathOptimistic(bkEnsemble.getZkClient(), SimpleLoadManagerImpl.LOADBALANCER_DYNAMIC_SETTING_STRATEGY_ZPATH, "{\"loadBalancerStrategy\":\"leastLoadedServer\"}".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); final String localhost = "localhost"; // start brokers for (int i = 0; i < BROKER_COUNT; i++) { ServiceConfiguration config = new ServiceConfiguration(); config.setBrokerServicePort(Optional.ofNullable(brokerNativeBrokerPorts[i])); config.setClusterName("use"); config.setAdvertisedAddress(localhost); config.setAdvertisedAddress("localhost"); config.setWebServicePort(Optional.of(0)); config.setBrokerServicePortTls(Optional.of(0)); config.setWebServicePortTls(Optional.of(0)); config.setZookeeperServers("127.0.0.1" + ":" + bkEnsemble.getZookeeperPort()); config.setBrokerServicePort(Optional.of(0)); config.setLoadManagerClassName(SimpleLoadManagerImpl.class.getName()); config.setAdvertisedAddress(localhost+i); config.setLoadBalancerEnabled(false); pulsarServices[i] = new PulsarService(config); pulsarServices[i].start(); brokerWebServicePorts[i] = pulsarServices[i].getListenPortHTTP().get(); brokerNativeBrokerPorts[i] = pulsarServices[i].getBrokerListenPort().get(); brokerUrls[i] = new URL("http://127.0.0.1" + ":" + brokerWebServicePorts[i]); lookupAddresses[i] = pulsarServices[i].getAdvertisedAddress() + ":" + pulsarServices[i].getListenPortHTTP().get(); pulsarAdmins[i] = PulsarAdmin.builder().serviceHttpUrl(brokerUrls[i].toString()).build(); } createNamespacePolicies(pulsarServices[0]); Thread.sleep(100); }
Example 8
Source File: SimpleLoadManagerImplTest.java From pulsar with Apache License 2.0 | 4 votes |
@BeforeMethod void setup() throws Exception { // Start local bookkeeper ensemble bkEnsemble = new LocalBookkeeperEnsemble(3, 0, () -> 0); bkEnsemble.start(); // Start broker 1 ServiceConfiguration config1 = spy(new ServiceConfiguration()); config1.setClusterName("use"); config1.setWebServicePort(Optional.of(0)); config1.setZookeeperServers("127.0.0.1" + ":" + bkEnsemble.getZookeeperPort()); config1.setBrokerServicePort(Optional.of(0)); config1.setLoadManagerClassName(SimpleLoadManagerImpl.class.getName()); config1.setBrokerServicePortTls(Optional.of(0)); config1.setWebServicePortTls(Optional.of(0)); config1.setAdvertisedAddress("localhost"); pulsar1 = new PulsarService(config1); pulsar1.start(); url1 = new URL(pulsar1.getWebServiceAddress()); admin1 = PulsarAdmin.builder().serviceHttpUrl(url1.toString()).build(); brokerStatsClient1 = admin1.brokerStats(); primaryHost = pulsar1.getWebServiceAddress(); // Start broker 2 ServiceConfiguration config2 = new ServiceConfiguration(); config2.setClusterName("use"); config2.setWebServicePort(Optional.of(0)); config2.setZookeeperServers("127.0.0.1" + ":" + bkEnsemble.getZookeeperPort()); config2.setBrokerServicePort(Optional.of(0)); config2.setLoadManagerClassName(SimpleLoadManagerImpl.class.getName()); config2.setBrokerServicePortTls(Optional.of(0)); config2.setWebServicePortTls(Optional.of(0)); config2.setAdvertisedAddress("localhost"); pulsar2 = new PulsarService(config2); pulsar2.start(); url2 = new URL(pulsar2.getWebServiceAddress()); admin2 = PulsarAdmin.builder().serviceHttpUrl(url2.toString()).build(); brokerStatsClient2 = admin2.brokerStats(); secondaryHost = pulsar2.getWebServiceAddress(); Thread.sleep(100); }
Example 9
Source File: BrokerBookieIsolationTest.java From pulsar with Apache License 2.0 | 4 votes |
@Test public void testDeleteIsolationGroup() throws Exception { final String tenant1 = "tenant1"; final String cluster = "use"; final String ns2 = String.format("%s/%s/%s", tenant1, cluster, "ns2"); final String ns3 = String.format("%s/%s/%s", tenant1, cluster, "ns3"); final String brokerBookkeeperClientIsolationGroups = "default-group"; final String tenantNamespaceIsolationGroupsPrimary = "tenant1-isolation-primary"; final String tenantNamespaceIsolationGroupsSecondary = "tenant1-isolation=secondary"; BookieServer[] bookies = bkEnsemble.getBookies(); ZooKeeper zkClient = bkEnsemble.getZkClient(); Set<BookieSocketAddress> defaultBookies = Sets.newHashSet(bookies[0].getLocalAddress(), bookies[1].getLocalAddress()); Set<BookieSocketAddress> isolatedBookies = Sets.newHashSet(bookies[2].getLocalAddress(), bookies[3].getLocalAddress()); setDefaultIsolationGroup(brokerBookkeeperClientIsolationGroups, zkClient, defaultBookies); // primary group empty setDefaultIsolationGroup(tenantNamespaceIsolationGroupsPrimary, zkClient, Sets.newHashSet()); setDefaultIsolationGroup(tenantNamespaceIsolationGroupsSecondary, zkClient, isolatedBookies); ServiceConfiguration config = new ServiceConfiguration(); config.setLoadManagerClassName(ModularLoadManagerImpl.class.getName()); config.setClusterName(cluster); config.setWebServicePort(Optional.of(0)); config.setZookeeperServers("127.0.0.1" + ":" + bkEnsemble.getZookeeperPort()); config.setBrokerServicePort(Optional.of(0)); config.setAdvertisedAddress("localhost"); config.setBookkeeperClientIsolationGroups(brokerBookkeeperClientIsolationGroups); config.setManagedLedgerDefaultEnsembleSize(2); config.setManagedLedgerDefaultWriteQuorum(2); config.setManagedLedgerDefaultAckQuorum(2); config.setAllowAutoTopicCreationType("non-partitioned"); config.setManagedLedgerMinLedgerRolloverTimeMinutes(0); pulsarService = new PulsarService(config); pulsarService.start(); PulsarAdmin admin = PulsarAdmin.builder().serviceHttpUrl(pulsarService.getWebServiceAddress()).build(); ClusterData clusterData = new ClusterData(pulsarService.getWebServiceAddress()); admin.clusters().createCluster(cluster, clusterData); TenantInfo tenantInfo = new TenantInfo(null, Sets.newHashSet(cluster)); admin.tenants().createTenant(tenant1, tenantInfo); admin.namespaces().createNamespace(ns2); admin.namespaces().createNamespace(ns3); // (1) set affinity-group admin.namespaces().setBookieAffinityGroup(ns2, new BookieAffinityGroupData( tenantNamespaceIsolationGroupsPrimary, tenantNamespaceIsolationGroupsSecondary)); admin.namespaces().setBookieAffinityGroup(ns3, new BookieAffinityGroupData( tenantNamespaceIsolationGroupsPrimary, tenantNamespaceIsolationGroupsSecondary)); // (2) get affinity-group assertEquals(admin.namespaces().getBookieAffinityGroup(ns2), new BookieAffinityGroupData( tenantNamespaceIsolationGroupsPrimary, tenantNamespaceIsolationGroupsSecondary)); assertEquals(admin.namespaces().getBookieAffinityGroup(ns3), new BookieAffinityGroupData( tenantNamespaceIsolationGroupsPrimary, tenantNamespaceIsolationGroupsSecondary)); // (3) delete affinity-group admin.namespaces().deleteBookieAffinityGroup(ns2); try { admin.namespaces().getBookieAffinityGroup(ns2); fail("should have fail due to affinity-group not present"); } catch (NotFoundException e) { // Ok } assertEquals(admin.namespaces().getBookieAffinityGroup(ns3), new BookieAffinityGroupData( tenantNamespaceIsolationGroupsPrimary, tenantNamespaceIsolationGroupsSecondary)); }