간편한 디버깅dubbo 서비스의 범용 호출
주로 dubbo 서비스의 범용 호출 방식을 사용했는데, 아래에 코드를 직접 올렸다
1. 마븐 프로젝트를 신속하게 만들거나 기존의 마븐 프로젝트도 만들 수 있습니다.
2. 마븐 의존 가입
<dependency>
<groupId>com.alibabagroupId>
<artifactId>dubboartifactId>
<version>2.5.3version>
<scope>testscope>
dependency>
<dependency>
<groupId>io.nettygroupId>
<artifactId>netty-allartifactId>
<version>4.0.35.Finalversion>
dependency>
<dependency>
<groupId>org.apache.curatorgroupId>
<artifactId>curator-frameworkartifactId>
<version>2.11.1version>
dependency>
<dependency>
<groupId>com.101tecgroupId>
<artifactId>zkclientartifactId>
<version>0.10version>
dependency>
3. 자바 코드
package com.jin.dubbo;
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ReferenceConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.utils.ReferenceConfigCache;
import com.alibaba.dubbo.rpc.service.GenericService;
import org.junit.Test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* dubbo
*/
public class DubboGenericTest {
@Test
public void GenericTest() {
//
String registry = "192.168.10.100:2181,192.168.10.101:2181,192.168.10.102:2181";
// String registry = "127.0.0.1:2181";
// dubbo
String interfaces = "com.jin.dubbo.service.UserService__1_0";
//
String function = "selectUserById";
//
Map<String, String> parMap = new HashMap<>();
parMap.put("id", "U00101");
//
String parType = "java.util.Map";
// dubbo
Object result = callDubbo(registry, interfaces, function, parMap, parType);
System.out.println(result);
}
/**
* , dubbo
*
* @param registry
* @param interfaces
* @param function
* @param parMap
* @param parType
* @return
*/
private Object callDubbo(String registry, String interfaces, String function, Map<String, String> parMap, String parType) {
ReferenceConfig config = new ReferenceConfig();
config.setApplication(new ApplicationConfig("test"));
config.setRegistries(getRegistry(registry)); //
config.setGeneric(true); //
config.setTimeout(10000); // 10
config.setInterface(interfaces); //
ReferenceConfigCache cache = ReferenceConfigCache.getCache();
GenericService genericService = (GenericService) cache.get(config);
return genericService.$invoke(function, new String[]{
parType}, new Object[]{
parMap});
}
/**
*
*
* @param registry
* @return
*/
private List<RegistryConfig> getRegistry(String registry) {
List<RegistryConfig> registryConfigList = new ArrayList<>();
String[] split = registry.split(",");
for (String s : split) {
registryConfigList.add(new RegistryConfig("zookeeper://" + s));
}
return registryConfigList;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간편한 디버깅dubbo 서비스의 범용 호출최근에 새로운 프로젝트를 만들었는데 마이크로서비스dubbo+zookeeper를 사용했습니다. 그 중 일부 인터페이스는 다른 부서에서 제공했습니다. 이 인터페이스에 대한 디버깅 검증을 할 때 문제가 발생했습니다. 그 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.