2.5.2 Milestone Notes
优化
- 优化了分布式数据 API
 - 优化聚合根定时任务内部调度
 - 优化 Phoenix 加载数据源的速度
 
漏洞修复
- 解决了 DDataMap RPC 缓存数据隔离问题
 - 修复 Console 不显示事务聚合根的 BUG
 - 修复聚合根合法性校验 BUG
 
不兼容的 API 变动
DistributedDataRemote 分布式数据远程接口 API 变动
- 2.5.1
 - 2.5.2
 
public interface DistributedDataRemote {
    /**
     * 新增单个分布式数据, 由一个聚合根维护
     *
     * @param ddataCls
     * @param ddataCode
     * @param value
     * @param targetTopic
     */
    <T> boolean addSingleDData(
            Class<T> ddataCls, String ddataCode, Object value, String targetTopic);
    /**
     * 新增带过期时间的单个分布式数据, 由一个聚合根维护
     *
     * @param ddataCls
     * @param ddataCode
     * @param value
     * @param targetTopic
     * @param expireTime 过期时间
     */
    <T> boolean addSingleDData(
            Class<T> ddataCls, String ddataCode, Object value, String targetTopic, long expireTime);
    /**
     * 新增分布式数据
     *
     * @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 value
     * @param targetTopic
     * @param expireTime 过期时间
     */
    <T> boolean addDData(
            Class<T> ddataCls, String ddataCode, Object value, String targetTopic, long expireTime);
    /**
     * 单查询单个聚合根的分布式对象,不维护订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param <T>
     * @return
     */
    <T> DData<T> querySingleDData(Class<T> ddataCls, String ddataCode, String targetTopic);
    /**
     * 单查询分布式对象,不维护订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param <T>
     * @return
     */
    <T> DData<T> queryDData(Class<T> ddataCls, String ddataCode, String targetTopic);
    /**
     * 调用远程方式获取单个聚合根的分布式数据并建立订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param selfTopic
     * @param <T>
     * @return
     */
    <T> DData<T> subscribeSingle(
            Class<T> ddataCls, String ddataCode, String targetTopic, String selfTopic);
    /**
     * 解绑某一订阅者和某一具体单个聚合根的分布式数据之间的订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param selfTopic
     */
    <T> boolean unsubscribeSingle(
            Class<T> ddataCls, String ddataCode, String targetTopic, String selfTopic);
    /**
     * 调用远程方式获取分布式数据并建立订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param selfTopic
     * @param <T>
     * @return
     */
    <T> DData<T> subscribe(
            Class<T> ddataCls, String ddataCode, String targetTopic, String selfTopic);
    /**
     * 解绑某一订阅者和某一具体的分布式数据之间的订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param selfTopic
     */
    <T> boolean unsubscribe(
            Class<T> ddataCls, String ddataCode, String targetTopic, String selfTopic);
    /**
     * 清除该类下所有的分布式数据, 仅作用于 MultiMode
     *
     * @param ddataCls
     * @param targetTopic
     */
    <T> boolean clear(Class<T> ddataCls, String targetTopic);
}
public interface DistributedDataRemote {
    /**
     * 新增单个分布式数据, 由一个聚合根维护
     *
     * @param ddataCls
     * @param ddataCode
     * @param value
     * @param targetTopic
     */
    <T> boolean addSingleDData(
            Class<T> ddataCls, String ddataCode, Object value, String targetTopic);
    /**
     * 新增带过期时间的单个分布式数据, 由一个聚合根维护
     *
     * @param ddataCls
     * @param ddataCode
     * @param value
     * @param targetTopic
     * @param expireTime 过期时间
     */
    <T> boolean addSingleDData(
            Class<T> ddataCls,
            String ddataCode,
            Object value,
            String targetTopic,
            Duration expireTime);
    /**
     * 新增分布式数据
     *
     * @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 value
     * @param targetTopic
     * @param expireTime 过期时间
     */
    <T> boolean addDData(
            Class<T> ddataCls,
            String ddataCode,
            Object value,
            String targetTopic,
            Duration expireTime);
    /**
     * 单查询单个聚合根的分布式对象,不维护订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param <T>
     * @return
     */
    <T> DData<T> querySingleDData(Class<T> ddataCls, String ddataCode, String targetTopic);
    /**
     * 单查询分布式对象,不维护订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param <T>
     * @return
     */
    <T> DData<T> queryDData(Class<T> ddataCls, String ddataCode, String targetTopic);
    /**
     * 调用远程方式获取单个聚合根的分布式数据并建立订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param selfTopic
     * @param <T>
     * @return
     */
    <T> DData<T> subscribeSingle(
            Class<T> ddataCls, String ddataCode, String targetTopic, String selfTopic);
    /**
     * 解绑某一订阅者和某一具体单个聚合根的分布式数据之间的订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param selfTopic
     */
    <T> boolean unsubscribeSingle(
            Class<T> ddataCls, String ddataCode, String targetTopic, String selfTopic);
    /**
     * 调用远程方式获取分布式数据并建立订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param selfTopic
     * @param <T>
     * @return
     */
    <T> DData<T> subscribe(
            Class<T> ddataCls, String ddataCode, String targetTopic, String selfTopic);
    /**
     * 解绑某一订阅者和某一具体的分布式数据之间的订阅关系
     *
     * @param ddataCls
     * @param ddataCode
     * @param targetTopic
     * @param selfTopic
     */
    <T> boolean unsubscribe(
            Class<T> ddataCls, String ddataCode, String targetTopic, String selfTopic);
    /**
     * 清除该类下所有的分布式数据, 仅作用于 MultiMode
     *
     * @param ddataCls
     * @param targetTopic
     */
    <T> boolean clear(Class<T> ddataCls, String targetTopic);
}