跳到主要内容
版本:2.5.4

2.5.4 Milestone Notes

新功能特性

  • PhoenixClient 支持自定义 RPC 回复 Topic(支持回复消息的分发)
  • 支持一键清除自定义已注册元数据
  • 元数据注册 API 支持 KeyValue 结构注册 & 新增 containKey API
  • 优化自动归档策略
  • Console 支持 License 过期提示
  • 优化 Console 对事件反序列化异常的提示.

性能修复补丁

  • 修复 SenderActor 消息积压(导致内存泄漏)
  • 调优线程池、解决分布式数据死锁
  • 修复服务重启后无法结束在途事务的漏洞
  • 修复了 KafkaSubscribe(ReceiverActor) 中的吞吐率(CPU 空转)

漏洞修复

  • 修复 DBUtils 多线程并发问题
  • 修复 EntityAggregateFixture 定时任务测试 NPE 问题
  • 修复分布式数据 IO 缓存错误.
  • DDataMap 缓存过期时间, 修复溯源过期
  • 修复聚合根定时任务消息的幂等
  • 区分 DDataMap 业务以及超时空值
  • 修复 Console 按聚合根查询事件时乱序问题
  • 修复 H2 下 Console 查询事件错误
  • 修复 Consul 集群时健康检查心跳间隔的错误
  • 修复 EntityAggregateFixture 缺失内部聚合根扫描
  • 修复元数据注册在 EventSouring 下的反序列化问题
  • EntityAggregateFixture 支持自定义订阅

API 变动

PhoenixClient 新增 API

/**
* Client 端异步发送接口. 回复到指定 topic
*
* @param msg
* @param targetTopic 接收命令的服务 Topic
* @param sourceTopic 接收回复的响应服务 Topic
* @param requestId
*/
public void sendNoReply(Object msg, String targetTopic, String sourceTopic, String requestId)

元数据注册 API 支持 KeyValue 结构注册

RegistryCollectData overSeasTag = null;
if (createCmd.getAccountCode().contains("OS")) {
// 单个多次调用
overSeasTag =
RegistryCollectData.builder()
.type(RegistryCollectData.Type.REGISTRY)
.splitRangeId(KafkaSubscribe.genSplitRangeId(mqAddress, subscribeTopic))
.registryValue("OS_AMT", String.valueOf(this.balanceAmt))
.registryValue("Overseas", this.account)
.build();
// 直接传入 Map
Map<String, String> registryKVMap = new HashMap<>();
registryKVMap.put("OS_AMT", String.valueOf(this.balanceAmt));
registryKVMap.put("Overseas", this.account);
overSeasTag =
RegistryCollectData.builder()
.type(RegistryCollectData.Type.REGISTRY)
.splitRangeId(KafkaSubscribe.genSplitRangeId(mqAddress, subscribeTopic))
.registryKV(registryKVMap)
.build();
}