Ejemplo n.º 1
0
    def find_port(service_type,
                  rdm_type=RT_CPU_USAGE_RDM,
                  rdm_param=1,
                  protocol=PT_TCP):
        """
        从sm查找单个服务的端口信息
        :param service_type:服务类型,
        :param rdm_type:随机类型,0选择cpu使用率最低的;1一致性hash选择
        :param rdm_param:如果随机类型是0,参数整形,表示随机个数
                         如果随机类型是1,list形式,hash key 列表
        :param protocol:协议
        :return:ip,port
        """
        found_service = find_service(ParamCacher().sm_rpc, service_type,
                                     rdm_type, rdm_param)
        if not found_service:
            return None, None, None

        if protocol == PT_TCP:
            return found_service['ip'], found_service['port']['tcp'], PT_TCP
        elif protocol == PT_HTTP or protocol == PT_HTTPS:
            if 'http' in found_service['port']:
                return found_service['ip'], found_service['port'][
                    'http'], PT_HTTP
            elif 'https' in found_service['port']:
                return found_service['ip'], found_service['port'][
                    'https'], PT_HTTPS
        else:
            return None, None, None
Ejemplo n.º 2
0
    def find_port(service_type, rdm_type=RT_CPU_USAGE_RDM, rdm_param=1, protocol=PT_TCP):
        """
        从sm查找单个服务的端口信息
        :param service_type:服务类型,
        :param rdm_type:随机类型,0选择cpu使用率最低的;1一致性hash选择
        :param rdm_param:如果随机类型是0,参数整形,表示随机个数
                         如果随机类型是1,list形式,hash key 列表
        :param protocol:协议
        :return:ip,port
        """
        found_service = find_service(ParamCacher().sm_rpc,
                                     service_type,
                                     rdm_type,
                                     rdm_param)
        if not found_service:
            return None, None, None

        if protocol == PT_TCP:
            return found_service['ip'], found_service['port']['tcp'], PT_TCP
        elif protocol == PT_HTTP or protocol == PT_HTTPS:
            if 'http' in found_service['port']:
                return found_service['ip'], found_service['port']['http'], PT_HTTP
            elif 'https' in found_service['port']:
                return found_service['ip'], found_service['port']['https'], PT_HTTPS
        else:
            return None, None, None
Ejemplo n.º 3
0
 def find_service(service_type, rdm_type=RT_CPU_USAGE_RDM, rdm_param=1):
     """
     从sm查找单个服务的详细信息
     :param service_type:服务类型,
     :param rdm_type:随机类型,0选择cpu使用率最低的;1一致性hash选择
     :param rdm_param:如果随机类型是0,参数整形,表示随机个数
                      如果随机类型是1,list形式,hash key 列表
     :param protocol:协议
     :return:ip,port
     """
     found_service = find_service(ParamCacher().sm_rpc, service_type,
                                  rdm_type, rdm_param)
     return found_service
Ejemplo n.º 4
0
 def find_service(service_type, rdm_type=RT_CPU_USAGE_RDM, rdm_param=1):
     """
     从sm查找单个服务的详细信息
     :param service_type:服务类型,
     :param rdm_type:随机类型,0选择cpu使用率最低的;1一致性hash选择
     :param rdm_param:如果随机类型是0,参数整形,表示随机个数
                      如果随机类型是1,list形式,hash key 列表
     :param protocol:协议
     :return:ip,port
     """
     found_service = find_service(ParamCacher().sm_rpc,
                                  service_type,
                                  rdm_type,
                                  rdm_param)
     return found_service