1.0.0.Beta10


日期
2021-12-30

Sink层进行了重要升级

包括:

  1. sink-spring-boot-starter中增强原有application.yml中“bizsip.sink-id”属性,可以配置多个sink-id(以逗号分隔);
    通过简单配置这个属性,就能自动一次性加载多个rest和rabbitmq处理接口和处理模块。
    这是通过在sink-spring-boot-starter中进行自动配置时进行加载的。

升级指引:原有的SinkController已经弃用,而且开发者对于简单的sink服务,可以直接通过配置sink-id属性进行加载,无需写RestController和RabbitmqListener了。

  1. sink.yml配置文件,增加了processor的配置属性,目前支持default、bean、sink-bean这三种类型;
    通过这个配置属性,指定了sink服务的处理类型,分为default(即现有打包、通讯处理、解包的固定普适流程)、bean(直接调用bean服务类)、sink-bean(直接调用sink-bean服务类)。

升级指引:原有的bean和sink-bean服务类,要从现在的connector挂接中剥离出来,挂接在bean和sink-bean的processor下。

  1. sink-bean和bean类型的sink服务,在继承AbstractSinkService类后,会自动注入Connector和Converter

升级指引:原有bean、sink-bean类型的sink服务类,无需在代码类中通过Converter.getSinkConverter和Connector.getSinkConnector来获取converter和connector,直接改为继承AbstractSinkService类后,会自动注入Connector和Converter。

  1. sink-bean和bean类型的sink服务,只支持Spring容器类的挂接方式,不再支持纯Java类的挂接方式。
    原来还支持纯Java类的挂接,目前来看没有必要,未来就只支持Spring容器Bean的挂接。

升级指引:如果有纯Java类的sink服务,要改成注入Spring容器的Bean。

  1. service.yml更名为app.yml(service.yml同时会兼容一段时间),文件中属性名bizServiceId、className、sinkId变更为app-service-id、class-name、sink-id。
    为了统一各层的配置文件,source.yml、app.yml、sink.yml分别对应Source层、App层、Sink层的配置,另外原有service.yml中属性值采用了驼峰命名法,和目前配置文件中统一采用的短横线命名法冲突了。

升级指引:原有service.yml还暂时支持,但建议这个版本统一从service.yml升级成app.yml。

  1. 修复了日志发送时最初请求消息被后续操作改动的问题。
    由于原始消息报文是弱拷贝,会在处理过程中被修改,导致原始消息报文被误改动。

  2. 平台标准消息头BizMessage中增加了appServiceId域。
    在很多交易处理过程中需要识别发起的App服务ID,在原有报文头中没有记录。

  3. 去掉针对sink服务rabbitmq接口的rpc同步模式,全部约定为非rpc异步模式。
    目前sink服务支持rest和rabbitmq二种类型,rest为同步,rabbitmq为异步,不需要rabbitmq再支持同步模式。

  4. 把原有JSONObjectSinkBeanInterface改名成SinkBeanInterface,原来的SinkBeanInterface删除,以规范Sink服务的接口命名(和App服务的AppBeanInterface保持一致)

升级指引:原有继承SinkBeanInterface的sink-bean服务类,要修改实现机制,出入参数从byte[]变更为JSONObject;原有继承JSONObjectSinkBeanInterface的sink-bean服务类,继承接口变更为SinkBeanInterface即可。

  1. 交易日志在原有App服务成功、失败、挂起3个状态基础上,再增加Sink服务成功、失败2个状态,主要用于异步Sink服务的交易全周期监控。

  2. 正式删除integrator-common、integrator-spring-boot-starter这2个子模块。

  3. 对API接口进行了规范:

  • 规范API文档,对原有类包名进行了重新规划。
  • SourceServiceInterface更名为SourceBeanInterface。
  • 异常枚举INTEGRATOR_SERVICE_TIMEOUT更名为RETRY_DELAY_APP_SERVICE,BizTimeoutException更名为BizRetryException。