一,一般实现
有时候我们需要一个定长的队列,超过的数据会挤掉最先添加的数据
这里提供一个技术数组实现
/***
* data format of offset+separator+operation+separator+identify+separator+key+separator+dataSerial+endMark
*
*/
public class RaftLeaderAppendData implements FixedLengthStoreQueue{
private Integer appendArraySize = 1024 ;
private RaftData[] appendData ;
private int headIndex = -1 ;
private long headOffset ;
public RaftLeaderAppendData(int size){
this.appendArraySize = size;
appendData = new RaftData[appendArraySize];
}
public RaftLeaderAppendData(){
appendData = new RaftData[appendArraySize];
}
@Override
public synchronized void append(RaftData raftData){
Assert.notNull(raftData,"raft data cannot be