private List unitServers()

in appactive-java-client/client-bridge/client-bridge-rpc-base/src/main/java/io/appactive/rpc/base/consumer/RPCAddressFilterByUnitServiceImpl.java [152:181]


    private List<T> unitServers(Map<String, List<T>> unitServersMap, String servicePrimaryName,String routeId) {
        if (routeId == null){
            // 显示透传没有,则取隐 线程上下文
            routeId = AppContextClient.getRouteId();
        }
        if (routeId == null) {
            // 无routeId 在多活里面 直接报错,无单元化路由目标地址,
            String msg = MessageFormat.format("service:{0},not have routeId",servicePrimaryName);
            logger.error(msg);
            throw new AppactiveException(msg);
        }

        String targetUnit = trafficRouteRuleService.getUnitByRouteId(routeId);
        if (StringUtils.isBlank(targetUnit)) {
            String msg = MessageFormat.format("service:{0},routeId:{1},targetUnit is null",servicePrimaryName,routeId);
            logger.error(msg);
            throw new AppactiveException(msg);
        }

        targetUnit = targetUnit.toUpperCase();
        List<T> unitServers = unitServersMap.get(targetUnit);
        if (CollectionUtils.isEmpty(unitServers)) {
            /* 单元地址池没有目标单元的地址,不进行兜底*/
            String msg = MessageFormat.format("service:{0},routeId:{1},targetUnit:{2},list is null",servicePrimaryName,routeId,targetUnit);
            logger.error(msg);
            throw new AppactiveException(msg);
        }

        return unitServers;
    }