use of com.alipay.sofa.rpc.registry.mesh.model.SubscribeServiceResult in project sofa-rpc by sofastack.
the class MeshApiClient method subscribeService.
public SubscribeServiceResult subscribeService(SubscribeServiceRequest subscribeServiceRequest) {
final String json = JSON.toJSONString(subscribeServiceRequest);
String result = httpPost(MeshEndpoint.SUBCRIBE, json);
SubscribeServiceResult subscribeServiceResult;
if (!StringUtils.equals(result, errorMessage)) {
subscribeServiceResult = JSON.parseObject(result, SubscribeServiceResult.class);
return subscribeServiceResult;
} else {
subscribeServiceResult = new SubscribeServiceResult();
return subscribeServiceResult;
}
}
use of com.alipay.sofa.rpc.registry.mesh.model.SubscribeServiceResult in project sofa-rpc by sofastack.
the class MeshRegistryTest method setUp.
@Before
public void setUp() {
httpMockServer = new HttpMockServer();
httpMockServer.initSever(7654);
ApplicationInfoResult applicationInfoResult = new ApplicationInfoResult();
applicationInfoResult.setSuccess(true);
httpMockServer.addMockPath(MeshEndpoint.CONFIGS, JSON.toJSONString(applicationInfoResult));
PublishServiceResult publishServiceResult = new PublishServiceResult();
publishServiceResult.setSuccess(true);
httpMockServer.addMockPath(MeshEndpoint.PUBLISH, JSON.toJSONString(publishServiceResult));
SubscribeServiceResult subscribeServiceResult = new SubscribeServiceResult();
subscribeServiceResult.setSuccess(true);
List<String> datas = new ArrayList<String>();
datas.add("127.0.0.1:12200?v=4.0&p=1");
datas.add("127.0.0.1:12201?v=4.0&p=1");
subscribeServiceResult.setDatas(datas);
httpMockServer.addMockPath(MeshEndpoint.SUBCRIBE, JSON.toJSONString(subscribeServiceResult));
UnPublishServiceResult unPublishServiceResult = new UnPublishServiceResult();
unPublishServiceResult.setSuccess(true);
httpMockServer.addMockPath(MeshEndpoint.UN_PUBLISH, JSON.toJSONString(unPublishServiceResult));
UnSubscribeServiceResult unSubscribeServiceResult = new UnSubscribeServiceResult();
unSubscribeServiceResult.setSuccess(true);
httpMockServer.addMockPath(MeshEndpoint.UN_SUBCRIBE, JSON.toJSONString(unSubscribeServiceResult));
httpMockServer.start();
registryConfig = new RegistryConfig().setProtocol("mesh").setSubscribe(true).setRegister(true).setAddress("http://localhost:7654");
registry = (MeshRegistry) RegistryFactory.getRegistry(registryConfig);
registry.init();
registry.start();
}
use of com.alipay.sofa.rpc.registry.mesh.model.SubscribeServiceResult in project sofa-rpc by sofastack.
the class MeshApiClientTest method testSubscribe.
@Test
public void testSubscribe() {
// 11.166.22.163:12200?_TIMEOUT=3000&p=1&_SERIALIZETYPE=protobuf&_WARMUPTIME=0&_WARMUPWEIGHT=10&app_name=bar1&zone=GZ00A&_MAXREADIDLETIME=30&_IDLETIMEOUT=27&v=4.0&_WEIGHT=100&startTime=1524565802559
SubscribeServiceRequest request = new SubscribeServiceRequest();
request.setServiceName("com.alipay.rpc.common.service.facade.pb.SampleServicePb:1.0");
SubscribeServiceResult result = meshApiClient.subscribeService(request);
Assert.assertTrue(result.isSuccess());
}
use of com.alipay.sofa.rpc.registry.mesh.model.SubscribeServiceResult in project sofa-rpc by sofastack.
the class MeshApiClientTest method before.
@Before
public void before() {
httpMockServer = new HttpMockServer();
meshApiClient = new MeshApiClient("http://localhost:7654");
httpMockServer.initSever(7654);
ApplicationInfoResult applicationInfoResult = new ApplicationInfoResult();
applicationInfoResult.setSuccess(true);
httpMockServer.addMockPath(MeshEndpoint.CONFIGS, JSON.toJSONString(applicationInfoResult));
PublishServiceResult publishServiceResult = new PublishServiceResult();
publishServiceResult.setSuccess(true);
httpMockServer.addMockPath(MeshEndpoint.PUBLISH, JSON.toJSONString(publishServiceResult));
SubscribeServiceResult subscribeServiceResult = new SubscribeServiceResult();
subscribeServiceResult.setSuccess(true);
httpMockServer.addMockPath(MeshEndpoint.SUBCRIBE, JSON.toJSONString(subscribeServiceResult));
UnPublishServiceResult unPublishServiceResult = new UnPublishServiceResult();
unPublishServiceResult.setSuccess(true);
httpMockServer.addMockPath(MeshEndpoint.UN_PUBLISH, JSON.toJSONString(unPublishServiceResult));
UnSubscribeServiceResult unSubscribeServiceResult = new UnSubscribeServiceResult();
unSubscribeServiceResult.setSuccess(true);
httpMockServer.addMockPath(MeshEndpoint.UN_SUBCRIBE, JSON.toJSONString(unSubscribeServiceResult));
httpMockServer.start();
}
use of com.alipay.sofa.rpc.registry.mesh.model.SubscribeServiceResult in project sofa-rpc by sofastack.
the class MeshRegistry method subscribe.
@Override
public List<ProviderGroup> subscribe(final ConsumerConfig config) {
final ProviderInfoListener providerInfoListener = config.getProviderInfoListener();
asyncCreateConnectionExecutor.execute(new Runnable() {
@Override
public void run() {
final String appName = config.getAppName();
registerAppInfoOnce(appName);
SubscribeServiceRequest subscribeRequest = buildSubscribeServiceRequest(config);
SubscribeServiceResult subscribeServiceResult = client.subscribeService(subscribeRequest);
if (subscribeServiceResult == null || !subscribeServiceResult.isSuccess()) {
throw new RuntimeException("regist consumer occors error," + subscribeRequest);
}
List<ProviderGroup> providerGroups = new ArrayList<ProviderGroup>();
ProviderGroup providerGroup = new ProviderGroup();
List<ProviderInfo> providerInfos = new ArrayList<ProviderInfo>();
String url = fillProtocolAndVersion(subscribeServiceResult, client.getHost(), "", config.getProtocol());
ProviderInfo providerInfo = SofaRegistryHelper.parseProviderInfo(url);
providerInfos.add(providerInfo);
providerGroup.setProviderInfos(providerInfos);
providerGroups.add(providerGroup);
if (EventBus.isEnable(ConsumerSubEvent.class)) {
ConsumerSubEvent event = new ConsumerSubEvent(config);
EventBus.post(event);
}
if (providerInfoListener != null) {
providerInfoListener.updateAllProviders(providerGroups);
}
}
});
// async
return null;
}
Aggregations