微服务开发与注册

1 功能简介
微服务调用提供帮助类kd.bos.servicehelper.DispatchServiceHelper,为微服务上层封装,起到简化集群中不同微服务之间的调用操作的作用。参考微服务整体介绍。
2 调用方法
调用方法包括业务接口服务方法、微服务工厂类、二开服务接口方法等。public static <T> T invokeBizService(String cloudId, String appId, String serviceName, String methodName, object... paras) {//二开的提供的服务接口方法
//二开的提供的服务接口方法
public static <T> T invokeBizService(String cloudId, String appId, String serviceName, String methodName, object... paras) {
TraceSpan span = Tracer.create(appId + "." + serviceName, methodName);
Throwable arg5 = null;
object arg8;
try {
DispatchService service = serviceLookup(appId); //业务领域提供的接口服务方法
string factory = String.format("kd.%s.Ks.servicehelper.ServiceFactory", new Object[]{cloudId, appId});//微服务工厂类
arg8 = service.invoke(factory, serviceName, methodName, paras);
} catch(Throwable arg17) {
arg5 = arg17;
throw arg17;
} finally {
if (span != nul1) {
try {
span.close();
}catch (Throwable arg16){
arg5.addSuppressed(arg16);
}
}else{
span.close();
}
}2.1 业务接口服务方法
开发者可以调用业务领域接口服务方法
DispatchServiceHelper.invokeBizService(“cloudid”,”appid”,servicename”,methodName,paras)
参数说明:
Cloudid:云标识;
appid:应用标识;
servicename:调用服务的类名;
methodName:方法名;
paras:参数列表。
其中,cloudid、appid即可唯一确定一套服务 。
2.2 微服务工厂类
需要在业务服务对应目录下建立微服务工厂类ServiceFactory 。
2.3 二开服务接口方法
执行二开的提供的服务接口方法为
static <T> T invokeService(String factoryQualifiedPrefix, String appId, String serviceName, String methodName, Object... paras)
参数说明:
factoryQualifiedPrefix:Factory类限定前缀,如:服务工厂isv.ti.bo.ServiceFactory,则factoryQualifiedPrefix为:isv.ti.bo ;
appId: 应用Id;
serviceName:注册的服务名称;
methodName:调用服务方法;
paras: 方法入参。
3 主要操作
3.1 创建接口服务类

3.2 实现接口服务类

3.3 创建微服务工厂类
微服务工厂业务类名规范:kd.{cloudid}.{appid}.servicehelper.ServiceFactory 。

示例:
package kd.ecos_test.ecos_testapp.servicehelper;
/*
*@(#)ServiceFactory.java
*
*金蝶国际软件集团有限公司版权所有
*/
/**
*微服务,ServiceFactory一个应用一个,目录需要kd.云id.应用id.servicehelper
*/
import java.util.HashMap;
import java.util.Map;
import kd.bos.dataentity.TypesContainer;
import kd.bos.dataentity.resource.ResManager;
public class ServiceFactory {
private static Map<String, String> serviceMap = new HashMap<>();
static {
serviceMap.put("WztTestService", "kd.bos.ecos.service.impl.WztTestServiceImpl"); }
}
public static Obj微服务开发与注册
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



