KOCA6.2.0升级说明

后端框架

依赖版本升级:

● jsqlparser升级至4.9,mybatis升级至3.5.16,mybatis-plus升级至4.9,pagehelper升级至6.1.0

koca-mybatis

● 通用分页参数新增pageCount参数,类型bollean,false时不进行分页查询。

● 配置了mybatis.configuration.database-id, 则koca默认的DatabaseIdProvider bean不注册

● 支持不引入koca-hdb-function模块,仍能正常运行

● 优化mybatis batch扩展标签性能

● 支持info级别打印mybatis sql日志,业务绑定参数与SQL语句分开输出,以保证性能

● 修复debug日志级别下,通过插件拦截方式动态拼接的参数,无法找到对应的get方法导致sql打印报错的问题

● 调整mybatisInterceptor bean加载方式,避免不同扫描方式导致bean顺序控制不生效

多数据源(koca-multi-datasource)

● 解密属性绑定器访问标识符由default改为public,兼容业务使用场景

● 配置加密支持以用户名为密钥

koca-jdbc

● sql打印不换行:客户的日志采集平台没法对应日志前面的traceId spanId等信息

● 优化koca-jdbc日志打印sql的性能

JNI加载(koca-jni):

● 支持强制使用jar包里面的dll、so文件或者使用工作目录已存在的dll和so

安全认证(koca-auth)

● 修复使用redis作为session存储,namespace被配置覆盖后,在线用户获取不到的问题

● 优化zk存储idtoken时的刷新逻辑,解决并发问题

● 优化token模式下的sessionId会发生不停变化的问题。

● 新增支持enpoint进行独立的basic认证。

缓存(koca-cache)

● 提供缓存初始化加载/刷新成功回调

● 提供一种轻量的本地缓存同步机制,基于rpc

● 某个缓存是否加载目前只有正向开关,需要提供一个反向开发,配置不加载的缓存

● 缓存类型的配置提供一个全局配置,单个项里面的配置优先,其次全局的,都没有默认LOCAL

邮件发送(koca-mail)

● 配置的地址、账户密码正确性校验功能

● 修复邮箱ssl判断错误,导致未开启ssl的bug

加解密组件(koca-crypto):

● 新增以用户名为密钥进行加密

bex引擎(koca-bex):

● 优化bex参数设置性能

● 优化bex结果集后置增强性能

● 修复bex当请求参数类型为基础类型时,第二次调用开始空指针的问题

api接口nacos注册(koca-cloud-registry-api-nacos-discovery):

● 修复-1端口服务注册失败问题

api接口zookeeper注册(koca-cloud-registry-api-zookeeper-discovery):

● 修复开启缓存持久化后服务结束时报错Expected state [STARTED] was [STOPPED]的问题

koca-web:

● 统一异常处理增加业务自定义规则配置,详细见官网文档

● 服务端提供获取外网IP地址的API

koca-kcbp:

● 升级kcbpclient 到2.1.15-R, 支持KcbpClient设置字符集

koca-rpc:

● 修复ComponentScan可能修改加载顺序导致HttpProtocolProvider无法被加载的问题

通用工具(koca-common-tools)

● 优化TypeUtils.isWrapperType的性能

● 日志打印工具拓展warn和error级别日志打印方法

消息中心(koca-amc):

● 在任务执行时启动超时计时,避免排队时间计算在内导致超时控制不准确

统一线程池(koca-thread-pool)

● 调整minExecTime maxExecTime, totalTime的统计顺序,确保查询时显示正确

性能工具集(koca-optimizer)

● 新增特定场景高性能字符串转Long工具

业务组件

定时任务(koca-admin-jobschedule)

● 添加远程调用超时时间配置

● 增加异常错误日志打印

● 切换RpcClient调用,增加接口处理RpcInvokeContext

● 添加是否为交易日判断器功能

流程管理(koca-admin-workflow):

● 向前加签用户范围不设置时直接使用人员弹框

● 增加向前加签、向后加签回调,增加抄送事件

● 修复抄送时间查询错误问题

● 修复流程代理失败问题

● 修复代理日志无法查询问题

交易业务框架

数据同步V2(koca-data-sync-v2)

● 消息注册同步:rpc、kafka、hare、kcxp

● 时序控制处理同步

● 基于mybatis操作拦截同步

缓存(koca-assets-cache)

● 支持使用cacheHotDataTableSql对热点数据进行预热

● 支持cacheTableSql配置为’–'时,不执行sql语句

● 支持 eventNotifyEnabled通知开关对CacheTransactionManager同样生效

● 支持缓存重载

● 支持使用数据同步组件进行缓存同步

● 删除部分未使用代码

● 修复value为空是valueIsPojo未正确初始化问题

● 修复并发删除报错问题

● 修复启动并发addCache时元数据可能为null问题

● 修复BeanPropertyRowMapper并发问题

● 修复并发clear报错问题

● 修复事务提交时删除失效索引失败问题

● 修复crc计算时忽略字段报错问题

缓存同步(koca-assets-cache-sync)

● 添加基于koca-data-sync-v2的同步方式

行情客户端(koca-market)

●v1&v2新增港股市场行情

●修复上海意向大宗逐笔行情超时问题

●修复查询行情缓存价格类为null的情况

高速消息通信框架(koca-hare)

● 升级默认hare C++依赖为2.5.2,java API版本为1.8.3,C++ hare监控代理依赖至1.0.1

● 客户端和服务端线程池队列实现改为LinkedBlockingQueue,避免大量占用CPU

● 精简hare rpc日志打印,链路耗时信息在一条日志中输出,级别为info

● 响应解包操作交给请求发起线程处理,响应线程只负责通知请求发起线程

● hare客户端支持TCP模式下,在请求成功发出去之后,连接断开的情况下,通过hare连接回调通知主动取消客户端阻塞等待

● 修复响应解包时多线程操作context的线程安全问题

● 重构hare链路埋点逻辑,移除对koca-trace-core的依赖

影响范围:

  1. 使用6.2.0版本的koca-hare时,默认使用hare C++ 2.5.2,hare java API 1.8.3,若自行修改hare版本号需要注意该事项

  2. 需要升级koca-jstp-core至6.2.0及以上版本

  3. 若升级koca-hare至6.2.0版本,那么koca-hare-transfer-jstp和koca-hare-transfer-kgbp也需要升级至6.2.0及以上版本

  4. 如果6.2.0版本的koca-hare需要集成链路追踪能力,则需要引入6.2.0及以上版本的koca-trace-integration模块

JSTP协议核心包(koca-jstp-core)

● 203版本支持结果集分页打包与合并包

● 优化203版本结果集打包性能(主包体与结果集共用内存)

● 数组拷贝由Unsafe改为System.arraycopy,提升性能

● JDK8及以上字段名称编码性能优化

● varInt变长及定长编码底层逻辑优化

● 字符串类型解码移除trim操作,避免误处理不可见ASCII字符

影响范围: 需统一升级koca-jstp-core、koca-jstp-server、koca-jstp-client、koca-tcp-transfer-kgbp至6.2.0及以上版本

JSTP服务端(koca-jstp-server)

● 203包体KGBP请求响应自动分页,202包体为全量包

● 业务执行耗时统计排除响应打包耗时,显示真实业务耗时

● 请求完整包base64信息降为debug日志

● 链路适配接口定义与实现分离,统一由koca-trace-integration模块实现

影响范围: 6.2.0及以上版本的koca-jstp-server和koca-jstp-client集成链路追踪功能,需引入6.2.0及以上版本的koca-trace-integration模块

KGBP服务端(koca-kgbp-server)-使用Hare通信的多通道架构

● 修复java8以上版本funcId解码不正确问题

影响范围:无

远程调用框架(koca-biz-prc)

● koca-jstp-client 打包KGBP请求203版本自动分帧,202为全量包,

● koca-jstp-client 添加请求链路日志埋点,记录各步骤耗时

● koca-jstp-client,koca-kgbp-client,koca-kgbp-sub-client 链路适配改造,只负责定义接口,适配实现统一交由koca-trace-integration模块

● koca-kgbp-cli-jni 升级kgbp cli jni版本到 2.2.2.20250617

● koca-kgbp-cli-jni 添加放入和获取二进制包体接口

● koca-kgbp-sub-client 修复未开启心跳时,程序退出关闭心跳线程池报错问题

● koca-kgbp-sub-client 心跳超时单位改为秒,默认值10S,对齐业务使用与内部实现

● koca-kgbp-sub-client 连接断开时通过回调传递异常信息

影响范围:

  1. 需要升级koca-jstp-core至6.2.0及以上版本

  2. 6.2.0及以上版本的koca-jstp-client使用KGBP协议需要升级koca-tcp-transfer-kgbp至6.2.0及以上版本

  3. 6.2.0及以上版本的koca-jstp-client koca-kgbp-client koca-kgbp-sub-client集成链路追踪功能,需引入6.2.0及以上版本的koca-trace-integration模块

客户端连接池(koca-connection-pool)

● 采用ScheduledExecutorService实现心跳,提供优雅关闭实现,避免程序退出时强制睡眠30S

影响范围:无

链路追踪(koca-trace)

● 重构链路追踪实现,各个模块的链路实现全部移动到koca-trace-integration模块中

● 移除koca-trace-http模块,HTTP链路追踪功能已集成到koca-trace-core模块中

● 集成http客户端链路追踪功能,支持RestTemplate、FeignHTTP客户端的链路追踪

● 优化链路信息转json性能

● 链路信息时间精度调整为微秒,支持高精度时间戳

● http 作为服务端时,支持非B3规范链路在MDC中输出

● 修复span name存在空格的问题

影响范围:

  1. 该版本不再支持koca-trace-http模块,HTTP链路追踪功能已集成到koca-trace-core模块中。

  2. 不兼容6.2.0之前版本的链路追踪实现,需使用koca-trace-integration模块进行链路追踪集成。

  3. 建议koca-hare、koca-jstp-server、koca-jstp-client、koca-kgbp-client、koca-kgbp-sub-client等模块的版本升级到6.2.0及以上,以确保兼容性。

KMDB内存数据库(koca-mdb-core)

● 内存库底层依赖升级至4.2.5版本

影响范围:6.2.0之前的版本升级到此版本需要铲库