Java源码示例:org.apache.rocketmq.common.DataVersion

示例1
private void printClusterBaseInfo(
    final DefaultMQAdminExt defaultMQAdminExt, final String addr) throws
    InterruptedException, MQBrokerException, RemotingException, MQClientException {


    ClusterAclVersionInfo clusterAclVersionInfo = defaultMQAdminExt.examineBrokerClusterAclVersionInfo(addr);
    DataVersion aclDataVersion = clusterAclVersionInfo.getAclConfigDataVersion();
    String versionNum = String.valueOf(aclDataVersion.getCounter());

    DateFormat sdf = new SimpleDateFormat(UtilAll.YYYY_MM_DD_HH_MM_SS);
    String timeStampStr = sdf.format(new Timestamp(aclDataVersion.getTimestamp()));

    System.out.printf("%-16s  %-22s  %-22s  %-20s  %-22s%n",
        clusterAclVersionInfo.getClusterName(),
        clusterAclVersionInfo.getBrokerName(),
        clusterAclVersionInfo.getBrokerAddr(),
        versionNum,
        timeStampStr
    );
}
 
示例2
public RemotingCommand queryBrokerTopicConfig(ChannelHandlerContext ctx,
        RemotingCommand request) throws RemotingCommandException {
        final RemotingCommand response = RemotingCommand.createResponseCommand(QueryDataVersionResponseHeader.class);
        final QueryDataVersionResponseHeader responseHeader = (QueryDataVersionResponseHeader) response.readCustomHeader();
        final QueryDataVersionRequestHeader requestHeader =
            (QueryDataVersionRequestHeader) request.decodeCommandCustomHeader(QueryDataVersionRequestHeader.class);
        DataVersion dataVersion = DataVersion.decode(request.getBody(), DataVersion.class);

//       broker topic配置是否改变=》
        Boolean changed = this.namesrvController.getRouteInfoManager().isBrokerTopicConfigChanged(requestHeader.getBrokerAddr(), dataVersion);
        if (!changed) {
//            更新broker配置的最后更新时间=》
            this.namesrvController.getRouteInfoManager().updateBrokerInfoUpdateTimestamp(requestHeader.getBrokerAddr());
        }

//        查询namesrv的数据版本=》
        DataVersion nameSeverDataVersion = this.namesrvController.getRouteInfoManager().queryBrokerTopicConfig(requestHeader.getBrokerAddr());
        response.setCode(ResponseCode.SUCCESS);
        response.setRemark(null);

        if (nameSeverDataVersion != null) {
            response.setBody(nameSeverDataVersion.encode());
        }
        responseHeader.setChanged(changed);
        return response;
    }
 
示例3
public RemotingCommand queryBrokerTopicConfig(ChannelHandlerContext ctx,
    RemotingCommand request) throws RemotingCommandException {
    final RemotingCommand response = RemotingCommand.createResponseCommand(QueryDataVersionResponseHeader.class);
    final QueryDataVersionResponseHeader responseHeader = (QueryDataVersionResponseHeader) response.readCustomHeader();
    final QueryDataVersionRequestHeader requestHeader =
        (QueryDataVersionRequestHeader) request.decodeCommandCustomHeader(QueryDataVersionRequestHeader.class);
    DataVersion dataVersion = DataVersion.decode(request.getBody(), DataVersion.class);

    Boolean changed = this.namesrvController.getRouteInfoManager().isBrokerTopicConfigChanged(requestHeader.getBrokerAddr(), dataVersion);
    if (!changed) {
        this.namesrvController.getRouteInfoManager().updateBrokerInfoUpdateTimestamp(requestHeader.getBrokerAddr());
    }

    DataVersion nameSeverDataVersion = this.namesrvController.getRouteInfoManager().queryBrokerTopicConfig(requestHeader.getBrokerAddr());
    response.setCode(ResponseCode.SUCCESS);
    response.setRemark(null);

    if (nameSeverDataVersion != null) {
        response.setBody(nameSeverDataVersion.encode());
    }
    responseHeader.setChanged(changed);
    return response;
}
 
示例4
private boolean isBrokerTopicConfigChanged(final String brokerAddr, final DataVersion dataVersion) {
    BrokerLiveInfo prev = this.brokerLiveTable.get(brokerAddr);
    if (null == prev || !prev.getDataVersion().equals(dataVersion)) {
        return true;
    }

    return false;
}
 
示例5
public DataVersion queryBrokerTopicConfig(final String brokerAddr) {
    BrokerLiveInfo prev = this.brokerLiveTable.get(brokerAddr);
    if (prev != null) {
        return prev.getDataVersion();
    }
    return null;
}
 
示例6
public BrokerLiveInfo(long lastUpdateTimestamp, DataVersion dataVersion, Channel channel,
    String haServerAddr) {
    this.lastUpdateTimestamp = lastUpdateTimestamp;
    this.dataVersion = dataVersion;
    this.channel = channel;
    this.haServerAddr = haServerAddr;
}
 
示例7
/**
 * 根据Broker地址获取BrokerLiveInfo,然后获取DataVersion
 * @param brokerAddr brokerAddr
 * @return ;
 */
public DataVersion queryBrokerTopicConfig(final String brokerAddr) {
    BrokerLiveInfo prev = this.brokerLiveTable.get(brokerAddr);
    if (prev != null) {
        return prev.getDataVersion();
    }
    return null;
}
 
示例8
public BrokerLiveInfo(long lastUpdateTimestamp, DataVersion dataVersion, Channel channel,
    String haServerAddr) {
    this.lastUpdateTimestamp = lastUpdateTimestamp;
    this.dataVersion = dataVersion;
    this.channel = channel;
    this.haServerAddr = haServerAddr;
}
 
示例9
/**
 * 查询Broker的TopicConfig
 * @param ctx ctx
 * @param request request
 * @return ;
 * @throws RemotingCommandException ;
 */
public RemotingCommand queryBrokerTopicConfig(ChannelHandlerContext ctx,
    RemotingCommand request) throws RemotingCommandException {

    final RemotingCommand response = RemotingCommand.createResponseCommand(QueryDataVersionResponseHeader.class);
    final QueryDataVersionResponseHeader responseHeader = (QueryDataVersionResponseHeader) response.readCustomHeader();

    final QueryDataVersionRequestHeader requestHeader =
            (QueryDataVersionRequestHeader) request.decodeCommandCustomHeader(QueryDataVersionRequestHeader.class);
    DataVersion dataVersion = DataVersion.decode(request.getBody(), DataVersion.class);

    Boolean changed = this.namesrvController.getRouteInfoManager().isBrokerTopicConfigChanged(requestHeader.getBrokerAddr(), dataVersion);
    //如果没有变化,就是更新时间戳
    if (!changed) {
        this.namesrvController.getRouteInfoManager().updateBrokerInfoUpdateTimestamp(requestHeader.getBrokerAddr());
    }

    //返回是否有变化,并返回最新的DataVersion
    DataVersion nameSeverDataVersion = this.namesrvController.getRouteInfoManager().queryBrokerTopicConfig(requestHeader.getBrokerAddr());
    response.setCode(ResponseCode.SUCCESS);
    response.setRemark(null);

    if (nameSeverDataVersion != null) {
        response.setBody(nameSeverDataVersion.encode());
    }
    responseHeader.setChanged(changed);
    return response;
}
 
示例10
public DataVersion queryBrokerTopicConfig(final String brokerAddr) {
    BrokerLiveInfo prev = this.brokerLiveTable.get(brokerAddr);
    if (prev != null) {
        return prev.getDataVersion();
    }
    return null;
}
 
示例11
public BrokerLiveInfo(long lastUpdateTimestamp, DataVersion dataVersion, Channel channel,
    String haServerAddr) {
    this.lastUpdateTimestamp = lastUpdateTimestamp;
    this.dataVersion = dataVersion;
    this.channel = channel;
    this.haServerAddr = haServerAddr;
}
 
示例12
/**
 * 是否Broker Topic配置有变化
 *
 * @param brokerAddr  broker地址
 * @param dataVersion 数据版本
 * @return 是否变化
 */
private boolean isBrokerTopicConfigChanged(final String brokerAddr, final DataVersion dataVersion) {
    BrokerLiveInfo prev = this.brokerLiveTable.get(brokerAddr);
    if (null == prev || !prev.getDataVersion().equals(dataVersion)) {
        return true;
    }

    return false;
}
 
示例13
public BrokerLiveInfo(long lastUpdateTimestamp, DataVersion dataVersion, Channel channel,
                      String haServerAddr) {
    this.lastUpdateTimestamp = lastUpdateTimestamp;
    this.dataVersion = dataVersion;
    this.channel = channel;
    this.haServerAddr = haServerAddr;
}
 
示例14
public BrokerLiveInfo(long lastUpdateTimestamp, DataVersion dataVersion, Channel channel,
    String haServerAddr, Long maxPhyOffset, Long term) {
    this.lastUpdateTimestamp = lastUpdateTimestamp;
    this.dataVersion = dataVersion;
    this.channel = channel;
    this.haServerAddr = haServerAddr;
    this.maxPhyOffset = maxPhyOffset;
    this.term = term;
}
 
示例15
public BrokerLiveInfo(long lastUpdateTimestamp, DataVersion dataVersion, Channel channel,
    String haServerAddr) {
    this.lastUpdateTimestamp = lastUpdateTimestamp;
    this.dataVersion = dataVersion;
    this.channel = channel;
    this.haServerAddr = haServerAddr;
}
 
示例16
private boolean isBrokerTopicConfigChanged(final String brokerAddr, final DataVersion dataVersion) {
    BrokerLiveInfo prev = this.brokerLiveTable.get(brokerAddr);
    if (null == prev || !prev.getDataVersion().equals(dataVersion)) {
        return true;
    }

    return false;
}
 
示例17
public BrokerLiveInfo(long lastUpdateTimestamp, DataVersion dataVersion, Channel channel,
    String haServerAddr) {
    this.lastUpdateTimestamp = lastUpdateTimestamp;
    this.dataVersion = dataVersion;
    this.channel = channel;
    this.haServerAddr = haServerAddr;
}
 
示例18
public void load() {

        Map<String, PlainAccessResource> plainAccessResourceMap = new HashMap<>();
        List<RemoteAddressStrategy> globalWhiteRemoteAddressStrategy = new ArrayList<>();

        JSONObject plainAclConfData = AclUtils.getYamlDataObject(fileHome + File.separator + fileName,
            JSONObject.class);
        if (plainAclConfData == null || plainAclConfData.isEmpty()) {
            throw new AclException(String.format("%s file  is not data", fileHome + File.separator + fileName));
        }
        log.info("Broker plain acl conf data is : ", plainAclConfData.toString());
        JSONArray globalWhiteRemoteAddressesList = plainAclConfData.getJSONArray("globalWhiteRemoteAddresses");
        if (globalWhiteRemoteAddressesList != null && !globalWhiteRemoteAddressesList.isEmpty()) {
            for (int i = 0; i < globalWhiteRemoteAddressesList.size(); i++) {
                globalWhiteRemoteAddressStrategy.add(remoteAddressStrategyFactory.
                        getRemoteAddressStrategy(globalWhiteRemoteAddressesList.getString(i)));
            }
        }

        JSONArray accounts = plainAclConfData.getJSONArray(AclConstants.CONFIG_ACCOUNTS);
        if (accounts != null && !accounts.isEmpty()) {
            List<PlainAccessConfig> plainAccessConfigList = accounts.toJavaList(PlainAccessConfig.class);
            for (PlainAccessConfig plainAccessConfig : plainAccessConfigList) {
                PlainAccessResource plainAccessResource = buildPlainAccessResource(plainAccessConfig);
                plainAccessResourceMap.put(plainAccessResource.getAccessKey(),plainAccessResource);
            }
        }

        // For loading dataversion part just
        JSONArray tempDataVersion = plainAclConfData.getJSONArray(AclConstants.CONFIG_DATA_VERSION);
        if (tempDataVersion != null && !tempDataVersion.isEmpty()) {
            List<DataVersion> dataVersion = tempDataVersion.toJavaList(DataVersion.class);
            DataVersion firstElement = dataVersion.get(0);
            this.dataVersion.assignNewOne(firstElement);
        }

        this.globalWhiteRemoteAddressStrategy = globalWhiteRemoteAddressStrategy;
        this.plainAccessResourceMap = plainAccessResourceMap;
    }
 
示例19
public DataVersion getDataVersion() {
    return dataVersion;
}
 
示例20
public DataVersion getDataVersion() {
    return dataVersion;
}
 
示例21
public DataVersion getDataVersion() {
    return dataVersion;
}
 
示例22
public void setAclConfigDataVersion(DataVersion aclConfigDataVersion) {
    this.aclConfigDataVersion = aclConfigDataVersion;
}
 
示例23
public void setDataVersion(DataVersion dataVersion) {
    this.dataVersion = dataVersion;
}
 
示例24
public DataVersion getDataVersion() {
    return dataVersion;
}
 
示例25
public void setDataVersion(DataVersion dataVersion) {
    this.dataVersion = dataVersion;
}
 
示例26
public DataVersion getDataVersion() {
    return dataVersion;
}
 
示例27
public void setDataVersion(DataVersion dataVersion) {
    this.dataVersion = dataVersion;
}
 
示例28
public DataVersion getDataVersion() {
    return dataVersion;
}
 
示例29
public DataVersion getDataVersion() {
    return dataVersion;
}
 
示例30
public DataVersion getDataVersion() {
    return dataVersion;
}