微服务整体介绍

1 功能介绍
微服务是一种开发软件的架构和组织方法。在苍穹中,通过明确定义的API 将平台业务依据应用进行微服务拆分。微服务调用kd.bos.servicehelper.DispatchServiceHelper为微服务上层封装,起到简化集群中不同微服务之间的调用操作的作用。
对于平台应用而言,平台的功能为通用型,jar包会在每一个节点上进行部署;而对于业务而言,其功能jar包只会部署在自身所在的应用节点上,因此需要调用到正确的节点才能的到正确的调用返回。因此微服务调用区分了以下类型:
平台微服务调用,该类别的微服务调用会依据负载均衡算法调用到集群中任一节点;
业务微服务调用,该类别的微服务调用会调用到指定的业务集群的节点上;
二开微服务调用,该类别的微服务调用会调用到指定二开注册的微服务节点上。
说明:二开微服务必须由服务工厂注册定义才能使用,因此必须要有服务工厂类,服务工厂路由规则为:{isv标识|公司标识}.{云id}.{应用id}.ServiceFactory
例如:
新建微服务接口示例:isv.ti.bo.mservice.xxxService
新建服务工厂示例:isv.ti.bo.ServiceFactory
目前苍穹使用的负载均衡算法为健康度负载算法。
举例,调用平台健康检查服务:
String result = DispatchServiceHelper.invokeBOSService( "bos", "HealthValidateService","validate",appNumbers);
2 用户场景
苍穹微服务目前支持输入参数为: String, Boolean, Long, Integer, Timestamp, Double, BigDecimal, List(列表), Map(结构), Object[](数组,只支持通用型,具体类型的数组暂不支持)的微服务,其他类型不支持。
3 API概览
方法 | 说明 |
static T getBOSService (String appId, String serviceName, Class bizCls) | 通过应用Id获取平台提供的微服务 |
static Object invokeBOSService (String appId, String serviceName, String methodName, Object… paras) | 平台微服务调用 |
static T invokeBizService (String cloudId, String appId, String serviceName, String methodName,Object… paras) | 业务微服务调用 |
static T invokeService (String factoryQualifiedPrefix, String appId, String serviceName, String methodName, Object… paras) | 二开业务调用 |
4 API详情
4.1 通过应用Id获取平台提供的微服务接口
static <T> T getBOSService(String appId, String serviceName, Class<T> bizCls)
传入参数:
参数名称 | 参数 | 参数类型 | 是否必传 |
应用Id | appId | String | 是 |
注册的服务名称 | serviceName | St |
微服务整体介绍
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



