4.HSF参考手册

HSF API 手册

本文档内容仅针对 HSF 2.2 及其之后 版本

在 HSF 面向用户的 API 中,最为关键的就是与创建 ProviderBean 和 ConsumerBean 相关的 API 了。根据用户使用的场景不同,主要分为 4 个关键的类:

  • com.taobao.hsf.app.api.util.HSFApiProviderBean: 通过 API 编程的方式创建 Provider Bean
  • com.taobao.hsf.app.api.util.HSFApiConsumerBean: 通过 API 编程的方式创建 Consumer Bean
  • com.taobao.hsf.app.spring.util.HSFSpringProviderBean: 通过 Spirng 配置的方式创建 Provider Bean
  • com.taobao.hsf.app.spring.util.HSFSpringConsumerBean: 通过 Spirng 配置的方式创建 Consumer Bean

其中,HSFSpringXxxBean 的配置属性与 HSFApiXxxBean 的 setter 方法相对应。接下来就分别以 ProviderBean 和 ConsumerBean 的视角介绍这 4 个类的 API。

ProviderBean

API 编程方式 - HSFApiProviderBean

通过配置并初始化 com.taobao.hsf.app.api.util.HSFApiProviderBean 即可完成 HSF 服务的发布。

对于一个服务,该过程只需要做一次。此外,考虑到 HSFApiProviderBean 对象比较重,建议缓存起来。

  • 范例代码:
// 实例化并配置 Provider Bean
HSFApiProviderBean hsfApiProviderBean = new HSFApiProviderBean();
hsfApiProviderBean.setServiceInterface("com.taobao.hsf.test.HelloWorldService");
hsfApiProviderBean.setTarget(target); // target 为 serviceInterface 指定接口的实现对象
hsfApiProviderBean.setServiceVersion("1.0.0");
hsfApiProviderBean.setServiceGroup("HSF");

// 初始化 Provider Bean,发布服务
hsfApiProviderBean.init();
  • 可配置属性表:

除上述范例代码中设置的属性,HSFApiProviderBean 还包含许多其他可配置的属性,均可通过对应的 setter 方法进行设置。

属性名 类型 是否必选 默认值 含义
serviceInterface String 设置 HSF 服务对外提供的业务接口。
客户端通过此属性进行订阅。
target Object 设置 serviceInterface 指定接口的服务实现对象。
serviceVersion String 1.0.0 设置服务的版本号。
客户端通过此属性进行订阅。
serviceGroup String HSF 设置服务的组别。
客户端通过此属性进行订阅。
serviceDesc String null 设置服务的描述,从而方便管理。
clientTimeout int 3000 设置响应超时时间(单位:毫秒)。如果服务端在设置的时间内没有返回,则抛出 HSFTimeOutException。
methodSpecials MethodSpecial[] 设置服务中某些方法的响应超时时间。通过设置 MethodSpecial.methodName 指定方法名,通过设置 MethodSpecial.clientTimout 指定当前方法的超时时间,优先级高于当前服务端的 clientTimeout。
preferSerializeType String hessian2 针对 HSF2,设置服务的请求参数和响应结果的序列化方式。可选值有:java,hessian,hessian2,json,kryo。
corePoolSize 值为整型的 String 0 配置服务单独的线程池,并指定最小活跃线程数量。若不设置该属性,则默认使用 HSF 服务端的公共线程池。
maxPoolSize 值为整型的 String 0 配置服务单独的线程池,并指定最大活跃线程数量。若不设置该属性,则默认使用 HSF 服务端的公共线程池。

Spring 配置方式 - HSFSpringProviderBean

通过在 Spring 配置文件中,配置一个 class 为 com.taobao.hsf.app.spring.util.HSFSpringProviderBean 的 bean,即可完成 HSF 服务的发布。

  • 范例配置:
<bean id="helloWorldService" class="com.taobao.hsf.test.HelloWorldService" />

<bean class="com.taobao.hsf.app.spring.util.HSFSpringProviderBean" init-method="init">
    <!-- [必选] 设置 HSF 服务对外提供的业务接口 -->
    <property name="serviceInterface" value="com.taobao.hsf.test.HelloWorldService" />

    <!-- [必选] 设置 serviceInterface 指定接口的服务实现对象,即需要发布为 HSF 服务的 spring bean id -->
    <property name="target" ref="helloWorldService" />

    <!-- [可选] 设置服务的版本号,默认为 1.0.0 -->
    <property name="serviceVersion" value="1.0.0" />

    <!-- [可选] 设置服务的组别,默认为 HSF -->
    <property name="serviceGroup" value="HSF" />

    <!-- [可选] 设置服务的描述,从而方便管理,默认为 null -->
    <property name="serviceDesc" value="HelloWorldService providered by HSF" />

    <!-- [可选] 设置响应超时时间(单位:毫秒)。如果服务端在设置的时间内没有返回,则抛出 HSFTimeOutException -->
    <!-- 默认为 3000 ms -->
    <property name="clientTimeout" value="3000"/>

    <!-- [可选] 设置服务中某些方法的响应超时时间。优先级高于上面的 clientTimeout -->
    <!-- 通过设置 MethodSpecial.methodName 指定方法名,MethodSpecial.clientTimout 指定方法的超时时间 -->
    <property name="methodSpecials">
        <list>
            <bean class="com.taobao.hsf.model.metadata.MethodSpecial">
                <property name="methodName" value="sum" />
                <property name="clientTimeout" value="2000" />
            </bean>
        </list>
    </property>

    <!-- [可选] 设置服务的请求参数和响应结果的序列化方式。可选值有:java,hessian,hessian2,json,kryo -->
    <!-- 默认为 hessian2 -->
    <property name="preferSerializeType" value="hessian2"/>

    <!-- [可选] 配置服务单独的线程池,并指定最小活跃线程数量。若不设置该属性,则默认使用 HSF 服务端的公共线程池 -->
    <property name="corePoolSize" value="10"/>

    <!-- [可选] 配置服务单独的线程池,并指定最大活跃线程数量。若不设置该属性,则默认使用 HSF 服务端的公共线程池 -->
    <property name="maxPoolSize" value="60"/>
</bean>

ConsumerBean

API 配置方式 - HSFApiConsumerBean

通过配置并初始化 com.taobao.hsf.app.api.util.HSFApiConsumerBean 即可完成 HSF 服务的订阅。

对于一个服务,该过程只需要做一次。此外,考虑到 HSFApiConsumerBean 对象比较重,建议将该对象以及获取到的 HSF 代理都缓存起来。

其实在 HSF 内部 HSFApiConsumerBean 对服务的配置也是缓存起来的。也就是说,如果针对一个订阅的服务有多次配置,只有第一次的配置会生效。

  • 范例代码:
// 实例化并配置 Consumer Bean
HSFApiConsumerBean hsfApiConsumerBean = new HSFApiConsumerBean();
hsfApiConsumerBean.setInterfaceName("com.taobao.hsf.test.HelloWorldService");
hsfApiConsumerBean.setVersion("1.0.0");
hsfApiConsumerBean.setGroup("HSF");

// 初始化 Consumer Bean,订阅服务
// true 表示等待地址推送(超时时间为 3000 毫秒),默认为 false(异步)
hsfApiConsumerBean.init(true); 

// 获取 HSF 代理
HelloWorldService helloWorldService = (HelloWorldService) hsfApiConsumerBean.getObject();

// 发起 HSF 调用
String helloStr = helloWorldService.sayHello("Li Lei");
  • 可配置属性表:

除上述范例代码中设置的属性,HSFApiConsumerBean 还包含许多其他可配置的属性,均可通过对应的 setter 方法进行设置。

属性名 类型 是否必选 默认值 含义
interfaceName String 设置需要订阅服务的接口名。
客户端通过此属性进行订阅。
version String 设置需要订阅服务的版本号。
客户端通过此属性进行订阅。
group String 设置需要订阅服务的组别。
客户端通过此属性进行订阅。
clientTimeout int 设置请求超时时间(单位:毫秒)。如果客户端在设置的时间内没有收到服务端响应,则抛出 HSFTimeOutException。
若客户端设置了 clientTimeout,则优先级高于服务端设置的 clientTimeout。否则,在服务的远程调用过程中,使用服务端设置的 clientTimeout。
methodSpecials MethodSpecial[] 设置服务中某些方法的请求超时时间。通过设置 MethodSpecial.methodName 指定方法名,通过设置 MethodSpecial.clientTimout 指定当前方法的超时时间,优先级高于当前客户端的 clientTimeout。
maxWaitTimeForCsAddress int 设置同步等待 ConfigServer 推送地址的时间(单位:毫秒),从而避免因地址还未推送到就发起服务调用造成的 HSFAddressNotFoundException。一般建议设置为 5000 毫秒,即可满足推送等待时间。
asyncallMethods List null 设置需要异步调用的方法列表。List 中的每一个字符串的格式为 name:方法名;type:异步调用类型;listener:监听器,其中 listener 只对 callback 类型的异步调用生效。
type 的类型有:
  • future: 通过 Future 的方式去获取请求执行的结果
  • callback: 当远程服务的调用完成后,HSF 会使用响应结果回调此处配置的 listener,该 listener 需要实现 HSFResponseCallback 接口
proxyStyle String jdk 设置服务的代理模式,一般不用配置。如果要拦截这个 consumer bean,需要配置成 javassist。

Spring 编程方式 - HSFSpringConsumerBean

通过在 Spring 配置文件中,配置一个 class 为 com.taobao.hsf.app.api.util.HSFSpringConsumerBean 的 bean,即可实现服务的订阅。

  • 范例配置:
<bean id="helloWorldService" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean">
    <!-- [必选] 设置需要订阅服务的接口名 -->
    <property name="interfaceName" value="com.taobao.hsf.test.HelloWorldService" />

    <!-- [必选] 设置需要订阅服务的版本号 -->
    <property name="version" value="1.0.0" />

    <!-- [必选] 设置需要订阅服务的组别 -->
    <property name="group" value="HSF" />

    <!-- [可选] 设置请求超时时间(单位:毫秒)。如果客户端在设置的时间内没有收到服务端响应,则抛出 HSFTimeOutException -->
    <!-- 若客户端设置了 clientTimeout,则优先级高于服务端设置的 clientTimeout。否则,在服务的远程调用过程中,使用服务端设置的 clientTimeout。-->
    <property name="clientTimeout" value="3000" />

    <!-- [可选] 设置服务中某些方法的请求超时时间,优先级高于当前客户端的 clientTimeout -->
    <!-- 通过设置 MethodSpecial.methodName 指定方法名,通过设置 MethodSpecial.clientTimout 指定当前方法的超时时间 -->
    <property name="methodSpecials">
        <list>
            <bean class="com.taobao.hsf.model.metadata.MethodSpecial">
                <property name="methodName" value="sum" />
                <property name="clientTimeout" value="2000" />
            </bean>
        </list>
    </property>

    <!-- [可选] 设置同步等待 ConfigServer 推送地址的时间(单位:毫秒)-->
    <!-- 从而避免因地址还未推送到就发起服务调用造成的 HSFAddressNotFoundException。-->
    <!-- 一般建议设置为 5000 毫秒,即可满足推送等待时间。 -->
    <property name="maxWaitTimeForCsAddress"  value="5000"/>

    <!-- [可选] 设置需要异步调用的方法列表。List 中的每一个字符串的格式为:name:方法名;type:异步调用类型;listener:监听器 -->
    <!-- 其中,listener 只对 callback 类型的异步调用生效。type 的类型有:-->
    <!-- future: 通过 Future 的方式去获取请求执行的结果 -->
    <!-- callback: 当远程服务的调用完成后,HSF 会使用响应结果回调此处配置的 listener,该 listener 需要实现HSFResponseCallback 接口 -->
    <property name="asyncallMethods">
        <list>
            <value>name:sayHello;type:callback;listener:com.taobao.hsf.test.service.HelloWorldServiceCallbackHandler</value>
        </list>
    </property>

    <!-- [可选] 设置服务的代理模式,一般不用配置。如果要拦截这个 consumer bean,需要配置成 javassist -->
    <property name="proxyStyle" value="jdk" />

</bean>

HSF JVM -D参数清单

-Dproject.name

指定工程名。 作为客户端调用的时候,会随着请求发给服务端,并作为服务治理的判断依据。

-DJM.LOG.PATH

指定中间件所有产品的日志目录。优先级高于 -DHSF.LOG.PATH,从 1.8.1.1 开始支持。如果使用该参数,HSF 的日志将在 $JM.LOG.PATH/hsf/ 里。如果没有使用-D参数指定日志目录,日志将会在 ${HOME}/logs/hsf/ 下。

-DHSF.LOG.PATH

从 2.1.0.7 开始,废弃 HSF.LOG.PATH 参数。指定HSF的输出路径,默认值为应用的日志一个目录。如果需要设置HSF的日志级别,需要动态改变(since2.0),参见 http://confluence.taobao.ali.com/pages/viewpage.action?pageId=205392851

-Dhsf.server.port

指定 HSF 的启动服务绑定端口,默认为 12200

-Dhsf.serializer

指定 HSF 的序列化方式,默认值为 hessian

-Dhsf.server.max.poolsize

指定 HSF 的服务端最大线程池大小,默认值为 720

-Dhsf.server.min.poolsize

指定 HSF 的服务端最小线程池大小。默认值为 60

-Dhsf.client.localcall

打开/关闭本地优先调用。默认值是 true

-Dpandora.qos.port

指定 pandora 的监控端口,默认值为 12201

-Dcom.taobao.pandora.tmp_path

修改 pandora 展开文件的临时目录

-Dhsf.http.enable

是否开启 http 端口,默认是 false

-Dhsf.http.port

指定 HSF 暴露的http接口。默认值是 12220

-Dhsf.run.mode

指定 HSF 客户端是否指定 target 进行调用,即绕开ConfigServer。值为 1 表示不允许指定 target 调用,值为 0 表示允许指定 target 调用。默认为 1,线上不推荐指定为 0

-Dhsf.shuthook.wait

HSF 优雅关闭的等待时间,单位是ms,默认是 10000

-Dneed.dubbo.registry

dubbo的配置,是否需要注册中心,默认是 true

-Ddubbo.reg.server

HSF 2.0 支持 dubbo 标签的客户端配置,从哪里拿地址,cs 表示从configserver拿地址,dubbo 表示从dubbo注册中心拿地址。该功能请使用HSF2.1.0.7以后的版本。

-Dhsf.registry.address

使用哪个注册中心,默认是 cs,同时,现在支持本地文件、zookeeper,一般开源版本才需要修改。

-Dhsf.governance.type

使用哪种服务治理类型,默认是 diamond,同时,现在支持本地文件,一般开源版本才需要修改。

-Dhsf.publish.delayed

是否所有的服务都需要延迟发布,默认是false,不需要延迟发布。

-Dhsf.bytebuf.pool

是否启用 pooled bytebuf,默认是 true

-Dio.netty.noPreferDirect

是否启用 direct buf。 默认是 true

-Dhsf.server.ip

多网卡情况下默认绑定第一个网卡,通过这个参数指定需要绑定的IP(2.0.1.6以后版本支持)

-DHsfBindHost

多网卡情况下默认绑定和上报给地址注册中心第一个网卡的ip地址,通过这个参数可以指定需要绑定的Host,比如-DHsfBindHost=0.0.0.0将HSF server端口绑定本机所有网卡;

-Dhsf.flowcontrol.on=0.2

打开本机的同机房规则。从 2.1.0.9 开始支持,默认值为 0.2 (数值为本机房优先调用的阀值)

-Dhsf.publish.interval=400

发布服务之间的时间间隔,从 2.1.1.0 开始,HSF服务会一瞬间暴露出去,如果应用启动时受不了,可以配置这个参数。该参数从 2.1.1.2 开始支持,默认值是 400,单位ms

-Dhsf.usepojomethod=true

是否从实现类反射获取业务方法,默认为 false,从接口获取。目前只有 modulet 框架 有需求从实现类获取方法,配置为 true 即可。该参数从 2.1.1.4 开始支持

-Dhsf.client.low.water.mark=32 -Dhsf.client.high.water.mark=64 -Dhsf.server.low.water.mark=32 -Dhsf.server.high.water.mark=64

  • 客户端每个channel的写缓冲的限制,单位为KB,一旦超过高水位,channel禁写,新的请求放弃写出,直接报错。禁写之后,等到缓冲区低于低水位才能恢复。
  • 服务端每个channel的写缓冲的限制,单位为KB,超过高水位时,新的响应放弃写出,客户端收不到响应会超时。缓冲区低于低水位时才能恢复写。
  • 高低水位需成对设置,并且需要高水位>低水位

-Dhsf.generic.remove.class=true

泛化调用拿到的结果,不输出class字段信息(since 2.1.1.6)

-DdefaultHsfClientTimeout

全局的客户端超时配置

-DenableImprovedHessian2

配置是否启用 hessian2 元数据缓存功能(since 2.2.1.8),从而提升 序列化/反序列化 性能。默认为 true,开启该功能,如果需要禁用,则需要设置为 false。

HSF 日志中的 ERROR_CODE 以及对应语义

中文版本

旧的HSF错误码,是一个错误对应一个,新增的错误码,有一些对应一类问题,比如HSF-0051,就是指提示用户,比如方法过期或者配置有些不正确。

从HSF-0050之后是,HSF2.2新增的。

HSF 的异常类型主要分2种:

  • BIZ 是业务错误,比如业务配置,或者业务处理有问题,业务设置规则有问题等
  • HSF 是系统错误,HSF在运行时遇到的问题,和框架有关
ERROR_CODE 类型 含义
HSF-0001 BIZ 客户端找不到服务提供方的地址。可能是服务提供方不存在,也可能是经过选址逻辑的处理后,没有符合调用条件的地址。
HSF-0002 BIZ 客户端调用远端时返回了异常,这个异常可能是服务端抛出的业务异常或 HSFException。
HSF-0005 BIZ 服务端配置 HSFApiProviderBean 的时候没有设置 target 属性,因此无法调用。
HSF-0006 BIZ HSF 1.x 的序列化配置类型,不在支持的范围内。
HSF-0007 BIZ 不支持的序列化类型。
HSF-0008 BIZ 配置的服务名(interfaceName)不是一个接口类。
HSF-0009 BIZ 配置的 target 对象,没有实现 interfaceName 对应的接口。
HSF-0011 BIZ 配置的单元化属性 writeMode,即不是 unit 也不是 center。
HSF-0012 BIZ 配置的单元化属性 route,表示的是 userId 在参数列表中的下标,只能取 [0, 参数长度)。
HSF-0013 BIZ 配置的单元化属性 route,类型只能是 long 或 java.lang.Long
HSF-0014 BIZ 服务端无法加载到 HSFApiProviderBean 配置的 interfaceName 接口。
HSF-0016 HSF HSF Provider server 启动失败。一般是端口冲突造成的。
HSF-0018 HSF 元数据写磁盘失败。
HSF-0019 BIZ & HSF TPS 限流规则相关的异常,包括解析规则失败等错误。
HSF-0020 BIZ 客户端的 HSFApiConsumerBean 被重复初始化。一般是有多个 HSFApiConsumerBean 配置了相同的 interfaceName 造成的。
HSF-0022 BIZ & HSF 归组规则相关的异常,包括规则解析失败、应用规则失败等错误。
HSF-0023 BIZ & HSF 权重规则相关的异常,包括规则解析失败、应用规则失败等错误。
HSF-0024 BIZ 客户端无法加载到路由规则中涉及的接口类。
HSF-0025 BIZ & HSF 路由规则相关的异常,包括规则解析失败、应用规则失败等错误。
HSF-0026 BIZ & HSF 同机房规则相关的异常,包括规则解析失败、应用规则失败等错误。
HSF-0027 BIZ 服务端的 HSF 线程池满。
HSF-0029 BIZ TOP 调用在服务端进行转换时,没有找到对应的 transformer。
HSF-0030 BIZ 服务端找不到客户端请求的方法。
HSF-0031 BIZ 服务端写响应时发现已经超时了,于是放弃写响应。
HSF-0034 BIZ 根据用户配置的单元化参数 route 获取 userId 时发生了异常。
HSF-0035 BIZ 客户端无法与服务提供方的地址建立连接,抛出异常。
HSF-0036 BIZ Dubbo 相关的场景需要设置 site 属性。
HSF-0037 BIZ 客户端/服务端 在 写请求/写响应 时,发生 序列化/反序列化 异常。
HSF-0051 HSF & BIZ 仅用于向用户提醒,不影响应用的正常运行。提醒内容包括方法过期,HSF dump 内存失败等。
HSF-0052 HSF 客户端生成代理对象失败。
HSF-0053 HSF 进行 Future 调用时,没有设置 Future 的结果。
HSF-0054 HSF 服务端的 HSFSpringProviderBean 注册为 Spring 框架的 Listener 失败。
HSF-0055 HSF 自定义序列化器工具 CustomizedSerializerHelper 注册失败。
HSF-0056 HSF ContextAwareWrapper 执行时发生异常,影响到调用链的恢复。
HSF-0057 HSF ApplicationComponent 创建失败。
HSF-0058 HSF 服务端发布服务时,出现异常。
HSF-0059 HSF 服务端注销服务时,出现异常。
HSF-0060 HSF 客户端订阅服务时,出现异常。
HSF-0061 HSF 客户端取消订阅服务时,出现异常。
HSF-0062 HSF 规则解析组件在解析规则时,创建 DocumentBuilder 失败。
HSF-0063 HSF SingleThreadSchedule 中的 Job 执行失败,有可能会影响服务发布等相关的操作。
HSF-0064 HSF ServiceLoader 以及应用服务 Loader 加载服务实例时出现了异常。
HSF-0065 HSF 应用服务端线程池的动态配置时出现异常,动态配置无法生效。
HSF-0066 HSF 注册中心(ConfigServer)向客户端(服务的订阅者)推送了空地址列表。
HSF-0067 HSF 服务端在处理客户端请求时,递交给 Invocationhandler 后产生了异常。
HSF-0068 HSF 服务端接收到了客户端的请求,但是对应的服务接口无法找到,或服务端没有发布这个服务。
HSF-0069 HSF 服务端在反射调用业务代码过程中,出现了未知的异常,一般是系统错误。
HSF-0070 BIZ 客户端调用时,出现了客户端线程池限流的问题。
HSF-0071 HSF 应用全局规则中的 eagleeye 部分时,出现了异常。
HSF-0072 HSF 由于缺少 rules 节点,导致全局规则解析失败。
HSF-0073 HSF 由于规则内容非法,导致全局规则解析失败。
HSF-0074 HSF 解析全局规则中的 OptimizedHessianRule 规则失败。
HSF-0075 HSF 解析全局规则中的 VirtualCmRule 规则失败。
HSF-0076 HSF HSF 与 Redis 交互失败。导致失败的原因可能是 Redis 连接获取失败,或数据发送失败。
HSF-0077 HSF HSF 向 Redis 汇报元数据失败。
HSF-0078 HSF NDI 调用,注册 ObjectDataWrapperSerializerFactory 失败。
HSF-0079 HSF NDI 调用,客户端初始化失败。
HSF-0080 HSF Spas 初始化失败。
HSF-0081 HSF Spas 在客户端运行时,生成鉴权信息失败。
HSF-0082 HSF Spas 在服务端运行时,请求未通过鉴权拦截和判断,被拒绝。
HSF-0083 HSF 服务端运行单元化保护逻辑时发生异常。
HSF-0084 HSF 服务端进行端口绑定时失败。
HSF-0085 HSF 在 StreamListener 扩展体系中,调用监听器出现异常。
HSF-0086 HSF HSF-HTTP 在服务端执行时,出现未知异常。
HSF-0087 HSF HSF 在转换 ConfigServer 推送的地址时,出现异常。
HSF-0088 HSF HSF 从 Diamond 获取订阅的配置时,出现异常。例如,Diamond 网络异常等。
HSF-0089 HSF 解析订阅的 Diamond 配置时,出现了异常。
HSF-0090 HSF 解析路由规则时,出现了异常。
HSF-0091 HSF HSF-HTTP 选择 HSFHttpInterceptor 时,出现了异常。
HSF-0092 HSF HSF-HTTP 当前没有可用的 HSFHttpInterceptor 处理客户端请求。
HSF-0093 HSF HSF 回调动态配置 Listener 时,Listener 抛出了异常。
HSF-0094 HSF 解析动态应用级配置时,出现了异常。请检查配置格式是否符合 k=v 的形式。
HSF-0095 HSF 构建 SSLContext 时,出现了异常。请检查 SSL 证书等配置是否正确。
HSF-0096 HSF 处于 TLS 严格加密模式的服务端,收到非加密请求。请检查客户端是否开启了 TLS 模式。
HSF-0097 HSF TLS 握手失败。请检查证书是否合法。
HSF-0098 HSF 服务端未开启鉴权,但是收到了加密的客户端请求。请确认服务端是否需要开启鉴权。
HSF-0099 HSF 服务端的 SslMode 配置不存在,降级使用 DISABLED。
HSF-0100 HSF 泛化调用反序列化 Map 为 Pojo 的时候,出现了异常。
HSF-0101 HSF HSF 获取的单元标(unit)为 null。请检查机器是否配置了单元标。
HSF-0102 HSF 服务端当前的网络写水位超过了配置的高水位阈值,服务端将放弃写响应。
HSF-0103 HSF 客户端当前的网络写水位超过了配置的高水位阈值,客户端将放弃写请求。
HSF-0104 HSF HSF 获取当前环境的 ConfigServer ENV 时,出现异常。

English Edition

There are two main error type in HSF:

  • BIZ means there is a business related error, such as user configuration error, bussiness process logic error, or other issues.
  • HSF means there is an internel run-time error in HSF framework.
ERROR_CODE Type Meaning
HSF-0001 BIZ The consumer can not get any addresses of target service.
HSF-0002 BIZ The consumer started a RPC call and got BIZ/HSF exception which throwed by the service provider.
HSF-0005 BIZ The provider is not configured with the "target" property, so it can not be called.
HSF-0006 BIZ HSF 1.x doesn't support current serialization type.
HSF-0007 BIZ Unsupported serialization type.
HSF-0008 BIZ The "interfaceName" property that you set in HSFApiProviderBean is not a interface class.
HSF-0009 BIZ The "target" property that you set in HSFApiProviderBean does not implement the interface class that you set in the "interfaceName" property of HSFApiProviderBean.
HSF-0011 BIZ Illegal value for "writeMode" property of HSFApiProviderBean, it can only be "unit" or "center".
HSF-0012 BIZ The "writeMode" property of HSFApiProviderBean is set to "unit", so the value of "route" property should be in [0, length of arguments).
HSF-0013 BIZ The "writeMode" property of HSFApiProviderBean is set to "unit", so the type of "route" property should be long or java.lang.Long.
HSF-0014 BIZ HSFApiProviderBean fails to load service interface.
HSF-0016 HSF Failed to start HSF provider server. It is usually caused by port conflict.
HSF-0018 HSF Failed to write HSF metadata to file.
HSF-0019 BIZ & HSF Failed to parse TPS/WhiteList rule.
HSF-0020 BIZ The HSFApiConsumerBean has been initialized many times. It is usually caused by the case that a same "interfaceName" property value set in many beans.
HSF-0022 BIZ & HSF Failed to parse grouping rule.
HSF-0023 BIZ & HSF Failed to parse weighting rule.
HSF-0024 BIZ Failed to load the interface defined routing rule.
HSF-0025 BIZ & HSF Failed to parse routing rule.
HSF-0026 BIZ & HSF Failed to parse MachineRoom-Prefer rule(also called flow control rule).
HSF-0027 BIZ HSF provider thread pool is full. It is usually caused by slow processing of some services.
HSF-0029 BIZ There is no corresponding transformer for TOP service.
HSF-0030 BIZ There is no such request method in current HSF provider.
HSF-0031 BIZ HSF provider gives up to send response to client because of the request has already been timed out.
HSF-0034 BIZ In unit mode, HSF consumer failed to get "userId" parameter according to the "route" property.
HSF-0035 BIZ HSF consumer failed to establish connection with selected provider.
HSF-0036 BIZ Need to add "site" property for Dubbo.
HSF-0037 BIZ Exception occurred while serializing/deserializing RPC request/response.
HSF-0051 HSF & BIZ Just to warn the user that some methods have been expired, or HSF failed to dump memory. It does not affect the application status.
HSF-0052 HSF Failed to generate proxy object for consumer.
HSF-0053 HSF When the future call is made, the result of the future is not set.
HSF-0054 HSF HSFSpringProviderBean failed to register itself as a Spring Framwork listener.
HSF-0055 HSF CustomizedSerializerHelper failed to accept the registration from user code.
HSF-0056 HSF An exception occurred during the execution of ContextAwareWrapper, and the recovery of the invocation chain is affected.
HSF-0057 HSF An exception occurred during the creation of ApplicationComponent.
HSF-0058 HSF An exception occurred when the provider registers services.
HSF-0059 HSF An exception occurred when the provider unregisters services.
HSF-0060 HSF An exception occurred when the consumer subscribes services.
HSF-0061 HSF An exception occurred when the consumer unsubscribes services.
HSF-0062 HSF Failed to create DocumentBuilder when parsing rules.
HSF-0063 HSF The execution of SingleThreadSchedule job is failed. Services register, address calculation and other background tasks may be affected.
HSF-0064 HSF An exception occurred when ServiceLoader loads SPI implementations.
HSF-0065 HSF Failed to configure provider thread pool through dynamic rule.
HSF-0066 HSF The client received an empty list of service addresses from ConfigServer registry.
HSF-0067 HSF An exception occurred after the server sends process result to Invocationhandler.
HSF-0068 HSF Can not find the service interface that client requested on server side.
HSF-0069 HSF An exception occurred when server calls business method through reflection API.
HSF-0070 BIZ Failed to invoke provider because of the limit of ClientConcurrencyLimiter.
HSF-0071 HSF An exception occurred when applying the eagleeye section of global rule.
HSF-0072 HSF Failed to parse global rule because of the rules node is missing.
HSF-0073 HSF Failed to parse global rule because of illeagl rules node.
HSF-0074 HSF Failed to parse OptimizedHessianRule rule in global rule.
HSF-0075 HSF Failed to parse VirtualCmRule rule in global rule.
HSF-0076 HSF An exception occurred while preparing Redis client for service metadata reportor.
HSF-0077 HSF An exception occurred while reporting service metadata to Redis.
HSF-0078 HSF Failed to register ObjectDataWrapperSerializerFactory in NDI mode.
HSF-0079 HSF The client initialization failed in NDI mode.
HSF-0080 HSF Spas initialization failed.
HSF-0081 HSF An runtime exception occurred when Spas generates authentication information on client side.
HSF-0082 HSF Request denied by server because of Spas authentication failure.
HSF-0083 HSF An exception occurred while applying unit protection logic on server side.
HSF-0084 HSF Failed to bind port for HSF Netty server. It is usually caused by port conflict.
HSF-0085 HSF Invoke SPIs of StreamListener got exception. It can be ignored at most time.
HSF-0086 HSF An unknown error occurred while processing the HSF HTTP request.
HSF-0087 HSF An exception occurred when HSF converts a raw address list to HSFServiceURL list.
HSF-0088 HSF Failed to fetch configuration from Diamond Server. It is caused by network or environment problems.
HSF-0089 HSF Failed to parse Diamond configuration.
HSF-0090 HSF Failed to parse routing rule.
HSF-0091 HSF An exception occurred while selecting an HSFHttpInterceptor for current request.
HSF-0092 HSF There is no HSFHttpInterceptor to accept HSF HTTP request.
HSF-0093 HSF An exception occurred when HSF callbacks dynamic configuration listener.
HSF-0094 HSF Failed to parse dynamic application-level configuration. Please make sure that the configuration format is in k = v form.
HSF-0095 HSF Failed to build SSLContext. Please check your SSL certificate configuration.
HSF-0096 HSF The server receives an unencrypted request in TLS strict encryption mode. Please turn on TLS mode for clients.
HSF-0097 HSF TLS handshake failed. Please check the certificate is valid.
HSF-0098 HSF The server recived an encrypted request in non-authentication mode. Please confirm that whether the server should turn on authentication mode.
HSF-0099 HSF SslMode is not configured on server side, using default configuration DISABLED.
HSF-0100 HSF An exception occurred when GenericService deserializes Map to Pojo object.
HSF-0101 HSF The Unit label got by HSF is null. Please check the unit label of current machine is configured right.
HSF-0102 HSF Current server-side water mark for network write exceeds the configured threshold, so the server will give up wirting response.
HSF-0103 HSF Current client-side water mark for network write exceeds the configured threshold, so the client will give up writing request.
HSF-0104 HSF Failed to get ENV property of ConfigServer in current environment.

猜你喜欢

转载自blog.csdn.net/szr4630/article/details/79699756
今日推荐