Skip to content

Commit b8540a1

Browse files
committed
default id gen
1 parent d037153 commit b8540a1

6 files changed

Lines changed: 8 additions & 12 deletions

File tree

txlcn-tm/src/main/java/com/codingapi/txlcn/tm/config/TxManagerConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ public TxManagerConfig(ServerProperties serverProperties) {
9191
private String exUrl;
9292

9393
/**
94-
* 机器ID长度
94+
* ID序列长度
9595
*/
96-
private int machineIdLen = 10;
96+
private int seqLen = 12;
9797

9898
public long getDtxLockTime() {
9999
return dtxLockTime == -1 ? dtxTime : dtxLockTime;

txlcn-tm/src/main/java/com/codingapi/txlcn/tm/core/storage/FastStorage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,5 +200,5 @@ public interface FastStorage {
200200
* @return
201201
* @throws FastStorageException
202202
*/
203-
int acquireOrRefreshMachineId(int machineId, int machineMaxSize, long timeout) throws FastStorageException;
203+
int acquireOrRefreshMachineId(int machineId, long machineMaxSize, long timeout) throws FastStorageException;
204204
}

txlcn-tm/src/main/java/com/codingapi/txlcn/tm/core/storage/redis/RedisStorage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ private void releaseGlobalXLock() {
242242
}
243243

244244
@Override
245-
public int acquireOrRefreshMachineId(int machineId, int machineMaxSize, long timeout) throws FastStorageException {
245+
public int acquireOrRefreshMachineId(int machineId, long machineMaxSize, long timeout) throws FastStorageException {
246246
try {
247247
acquireGlobalXLock();
248248
if (machineId < 0) {

txlcn-tm/src/main/java/com/codingapi/txlcn/tm/support/service/impl/ManagerServiceImpl.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,18 @@
1717

1818
import com.codingapi.txlcn.common.exception.FastStorageException;
1919
import com.codingapi.txlcn.common.exception.TxManagerException;
20-
import com.codingapi.txlcn.common.lock.DTXLocks;
2120
import com.codingapi.txlcn.tm.config.TxManagerConfig;
2221
import com.codingapi.txlcn.tm.core.storage.FastStorage;
23-
import com.codingapi.txlcn.tm.core.storage.LockValue;
2422
import com.codingapi.txlcn.txmsg.params.NotifyConnectParams;
2523
import com.codingapi.txlcn.tm.support.service.ManagerService;
2624
import com.codingapi.txlcn.tm.txmsg.MessageCreator;
2725
import com.codingapi.txlcn.txmsg.RpcClient;
2826
import com.codingapi.txlcn.txmsg.exception.RpcException;
29-
import com.google.common.collect.Sets;
3027
import lombok.extern.slf4j.Slf4j;
3128
import org.springframework.beans.factory.annotation.Autowired;
3229
import org.springframework.stereotype.Service;
3330

3431
import java.util.List;
35-
import java.util.Set;
3632

3733
/**
3834
* Description:
@@ -72,7 +68,7 @@ public boolean refresh(NotifyConnectParams notifyConnectParams) throws RpcExcept
7268

7369
@Override
7470
public int machineIdSync() throws TxManagerException {
75-
int machineMaxSize = (int) Math.pow(2, managerConfig.getMachineIdLen()) - 1;
71+
long machineMaxSize = ~(-1L << (64 - 1 - managerConfig.getSeqLen())) - 1;
7672
long timeout = managerConfig.getHeartTime() + 2000;
7773
int id = 0;
7874
try {
@@ -87,7 +83,7 @@ public int machineIdSync() throws TxManagerException {
8783
@Override
8884
public void refreshMachineId(int machineId) throws TxManagerException {
8985
try {
90-
int machineMaxSize = (int) Math.pow(2, managerConfig.getMachineIdLen()) - 1;
86+
long machineMaxSize = ~(-1L << (64 - 1 - managerConfig.getSeqLen())) - 1;
9187
long timeout = managerConfig.getHeartTime() + 2000;
9288
fastStorage.acquireOrRefreshMachineId(machineId, machineMaxSize, timeout);
9389
} catch (FastStorageException e) {

txlcn-tm/src/main/java/com/codingapi/txlcn/tm/txmsg/EnsureIdGenEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public void disconnect(String remoteKey, String appName) {
5555

5656
@Override
5757
public void init() throws Exception {
58-
IdGenInit.applyDefaultIdGen(managerConfig.getMachineIdLen(), managerService.machineIdSync());
58+
IdGenInit.applyDefaultIdGen(managerConfig.getSeqLen(), managerService.machineIdSync());
5959

6060
Transactions.setApplicationIdWhenRunning(ApplicationInformation.modId(environment, serverProperties));
6161
}

txlcn-tm/src/main/java/com/codingapi/txlcn/tm/txmsg/transaction/InitClientService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public Serializable execute(TransactionCmd transactionCmd) throws TxManagerExcep
7474
InitClientParams initClientParams = transactionCmd.getMsg().loadBean(InitClientParams.class);
7575
rpcClient.bindAppName(transactionCmd.getRemoteKey(), initClientParams.getAppName());
7676
// Machine len and id
77-
initClientParams.setMachineLen(txManagerConfig.getMachineIdLen());
77+
initClientParams.setMachineLen(txManagerConfig.getSeqLen());
7878
initClientParams.setMachineId(managerService.machineIdSync());
7979
// DTX Time and TM timeout.
8080
initClientParams.setDtxTime(txManagerConfig.getDtxTime());

0 commit comments

Comments
 (0)