Search in sources :

Example 1 with NotifyListener

use of com.baidu.brpc.naming.NotifyListener in project brpc-java by baidu.

the class ZookeeperNamingServiceTest method testSubscribe.

@Test
public void testSubscribe() throws Exception {
    setUp();
    final List<ServiceInstance> adds = new ArrayList<ServiceInstance>();
    final List<ServiceInstance> deletes = new ArrayList<ServiceInstance>();
    SubscribeInfo subscribeInfo = createSubscribeInfo(false);
    namingService.subscribe(subscribeInfo, new NotifyListener() {

        @Override
        public void notify(Collection<ServiceInstance> addList, Collection<ServiceInstance> deleteList) {
            System.out.println("receive new subscribe info time:" + System.currentTimeMillis());
            System.out.println("add size:" + addList.size());
            for (ServiceInstance instance : addList) {
                System.out.println(instance);
            }
            adds.addAll(addList);
            System.out.println("delete size:" + deleteList.size());
            for (ServiceInstance instance : deleteList) {
                System.out.println(instance);
            }
            deletes.addAll(deleteList);
        }
    });
    RegisterInfo registerInfo = createRegisterInfo("127.0.0.1", 8013);
    namingService.register(registerInfo);
    System.out.println("register time=" + System.currentTimeMillis());
    Thread.sleep(1000);
    Assert.assertTrue(adds.size() == 1);
    Assert.assertTrue(deletes.size() == 0);
    Assert.assertTrue(adds.get(0).getIp().equals("127.0.0.1"));
    Assert.assertTrue(adds.get(0).getPort() == 8013);
    adds.clear();
    deletes.clear();
    namingService.unregister(registerInfo);
    System.out.println("unregister time=" + System.currentTimeMillis());
    Thread.sleep(1000);
    Assert.assertTrue(adds.size() == 0);
    Assert.assertTrue(deletes.size() == 1);
    Assert.assertTrue(deletes.get(0).getIp().equals("127.0.0.1"));
    Assert.assertTrue(deletes.get(0).getPort() == 8013);
    namingService.unsubscribe(subscribeInfo);
    tearDown();
}
Also used : SubscribeInfo(com.baidu.brpc.protocol.SubscribeInfo) ArrayList(java.util.ArrayList) ServiceInstance(com.baidu.brpc.client.channel.ServiceInstance) RegisterInfo(com.baidu.brpc.naming.RegisterInfo) NotifyListener(com.baidu.brpc.naming.NotifyListener) Test(org.junit.Test)

Example 2 with NotifyListener

use of com.baidu.brpc.naming.NotifyListener in project brpc-java by baidu.

the class ZookeeperNamingServiceTest method testSubscribeWhenZookeeperDownAndUp.

/**
 * This test must test under actual zookeeper server, Not the TestingServer of Curator
 */
@Test
@Ignore
public void testSubscribeWhenZookeeperDownAndUp() throws Exception {
    namingUrl = new BrpcURL("zookeeper://127.0.0.1:2181");
    namingService = new ZookeeperNamingService(namingUrl);
    final List<ServiceInstance> adds = new ArrayList<ServiceInstance>();
    final List<ServiceInstance> deletes = new ArrayList<ServiceInstance>();
    SubscribeInfo subscribeInfo = createSubscribeInfo(false);
    namingService.subscribe(subscribeInfo, new NotifyListener() {

        @Override
        public void notify(Collection<ServiceInstance> addList, Collection<ServiceInstance> deleteList) {
            System.out.println("receive new subscribe info time:" + System.currentTimeMillis());
            System.out.println("add size:" + addList.size());
            for (ServiceInstance instance : addList) {
                System.out.println(instance);
            }
            adds.addAll(addList);
            System.out.println("delete size:" + deleteList.size());
            for (ServiceInstance instance : deleteList) {
                System.out.println(instance);
            }
            deletes.addAll(deleteList);
        }
    });
    RegisterInfo registerInfo = createRegisterInfo("127.0.0.1", 8014);
    namingService.register(registerInfo);
    System.out.println("register time=" + System.currentTimeMillis());
    Thread.sleep(1000);
    Assert.assertTrue(adds.size() == 1);
    Assert.assertTrue(deletes.size() == 0);
    Assert.assertTrue(adds.get(0).getIp().equals("127.0.0.1"));
    Assert.assertTrue(adds.get(0).getPort() == 8014);
    adds.clear();
    deletes.clear();
    // sleep for restarting zookeeper
    Thread.sleep(30 * 1000);
    List<ServiceInstance> instances = namingService.lookup(subscribeInfo);
    Assert.assertTrue(instances.size() == 1);
    Assert.assertTrue(instances.get(0).getIp().equals("127.0.0.1"));
    Assert.assertTrue(instances.get(0).getPort() == 8014);
    namingService.unregister(registerInfo);
    System.out.println("unregister time=" + System.currentTimeMillis());
    Thread.sleep(1000);
    Assert.assertTrue(adds.size() == 0);
    Assert.assertTrue(deletes.size() == 1);
    Assert.assertTrue(deletes.get(0).getIp().equals("127.0.0.1"));
    Assert.assertTrue(deletes.get(0).getPort() == 8014);
    namingService.unsubscribe(subscribeInfo);
}
Also used : BrpcURL(com.baidu.brpc.naming.BrpcURL) SubscribeInfo(com.baidu.brpc.protocol.SubscribeInfo) ArrayList(java.util.ArrayList) ServiceInstance(com.baidu.brpc.client.channel.ServiceInstance) RegisterInfo(com.baidu.brpc.naming.RegisterInfo) NotifyListener(com.baidu.brpc.naming.NotifyListener) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 3 with NotifyListener

use of com.baidu.brpc.naming.NotifyListener in project brpc-java by baidu.

the class ConsulNamingServiceTest method testRegisterAndSubscribe.

@Test
public void testRegisterAndSubscribe() throws InterruptedException {
    RegisterInfo registerInfo = createRegisterInfo("127.0.0.1", 8015);
    RegisterInfo anotherRegisterInfo = createRegisterInfo("127.0.0.1", 8016);
    consulNamingService.register(registerInfo);
    consulNamingService.register(anotherRegisterInfo);
    Thread.sleep(3 * 1000);
    SubscribeInfo subscribeInfo = createSubscribeInfo(false);
    final List<ServiceInstance> adds = consulNamingService.lookup(subscribeInfo);
    Assert.assertTrue(adds.size() == 2);
    adds.clear();
    final List<ServiceInstance> deletes = new ArrayList<ServiceInstance>();
    consulNamingService.subscribe(subscribeInfo, new NotifyListener() {

        @Override
        public void notify(Collection<ServiceInstance> addList, Collection<ServiceInstance> deleteList) {
            adds.addAll(addList);
            deletes.addAll(deleteList);
            log.info("notify: {}, {}", addList, deleteList);
        }
    });
    consulNamingService.unregister(registerInfo);
    Thread.sleep(3 * 1000);
    Assert.assertTrue(adds.size() == 0);
    Assert.assertTrue(deletes.size() == 1);
    Assert.assertTrue(deletes.get(0).equals(new ServiceInstance("127.0.0.1", 8015)));
    adds.clear();
    deletes.clear();
    consulNamingService.register(registerInfo);
    Thread.sleep(3 * 1000);
    Assert.assertTrue(adds.size() == 1);
    Assert.assertTrue(deletes.size() == 0);
    Assert.assertTrue(adds.get(0).equals(new ServiceInstance("127.0.0.1", 8015)));
}
Also used : SubscribeInfo(com.baidu.brpc.protocol.SubscribeInfo) ArrayList(java.util.ArrayList) ServiceInstance(com.baidu.brpc.client.channel.ServiceInstance) RegisterInfo(com.baidu.brpc.naming.RegisterInfo) NotifyListener(com.baidu.brpc.naming.NotifyListener)

Aggregations

ServiceInstance (com.baidu.brpc.client.channel.ServiceInstance)3 NotifyListener (com.baidu.brpc.naming.NotifyListener)3 RegisterInfo (com.baidu.brpc.naming.RegisterInfo)3 SubscribeInfo (com.baidu.brpc.protocol.SubscribeInfo)3 ArrayList (java.util.ArrayList)3 Test (org.junit.Test)2 BrpcURL (com.baidu.brpc.naming.BrpcURL)1 Ignore (org.junit.Ignore)1