跳到主要内容
版本:2.5.4

2.5.1 Milestone Notes

新功能特性

  • Phoenix-Console 支持 Topic 消费控制
  • 实体聚合根增加 Timer 功能
  • 分布式数据值过期
  • 分布式数据批量删除

杂项

  • 提高了 Consul 组建集群的稳定性
  • 提高了 Phoenix 测试的稳定性

不兼容的 API 变动

1. DistributedDataRemote 包结构调整

- com.iquantex.phoenix.distributed.data
- DefaultDistributedDataRemote
- DistributedDataRemote
- api
- DDataAPI
- model
- Subscriber

2. DistributedDataRemote 分布式数据远程接口 API 变动

public interface DistributedDataRemote {

/**
* 新增分布式数据
*
* @param ddataCls
* @param ddataCode
* @param value
* @param targetTopic
*/
<T> boolean addDData(Class<T> ddataCls, String ddataCode, Object value, String targetTopic);

/**
* 单查询分布式对象,不维护订阅关系
*
* @param ddataCls
* @param ddataCode
* @param targetTopic
* @param <T>
* @return
*/
<T> T queryDData(Class<T> ddataCls, String ddataCode, String targetTopic);

/**
* 调用远程方式获取分布式数据并建立订阅关系
*
* @param ddataCls
* @param ddataCode
* @param targetTopic
* @param selfTopic
* @param <T>
* @return
*/
<T> T getDData(Class<T> ddataCls, String ddataCode, String targetTopic, String selfTopic);

/**
* 解绑某一订阅者和某一具体的分布式数据之间的订阅关系
*
* @param ddataCls
* @param ddataCode
* @param targetTopic
* @param selfTopic
*/
<T> boolean remove(Class<T> ddataCls, String ddataCode, String targetTopic, String selfTopic);
}

3. DDataMap 接口新增 API

public class DDataMap<VALUE> implements Serializable {
/**
* 更新本地的分布式数据
*
* @param key
* @param value
*/
public void updateLocal(String key, VALUE value);

/** 更新带过期时间的本地的分布式数据 */
public void updateLocal(String key, VALUE value, long expireTime);
/**
* 根据订阅消息更新本地缓存
*
* @param cmd
*/
public void updateLocal(DdataChangeCmd cmd);
/**
* <strong>Warning:</strong> 清理本地缓存以及远程分布式聚合根下的所有分布式数据.
*
* @return
*/
public boolean clear();
}

4. DdataChangeCmd 类新增方法

public class DdataChangeCmd implements WriteCmd {

/**
* 新增获取过期时间
* @return 可能为 null
*/
public Long getExpireTime();
}