You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@servicecomb.apache.org by "Jeremy Xu (JIRA)" <ji...@apache.org> on 2018/08/05 12:56:00 UTC
[jira] [Created] (SCB-805) 当alpha与omega所在节点的时间不同步时,分布式事务会被异常aborted
Jeremy Xu created SCB-805:
-----------------------------
Summary: 当alpha与omega所在节点的时间不同步时,分布式事务会被异常aborted
Key: SCB-805
URL: https://issues.apache.org/jira/browse/SCB-805
Project: Apache ServiceComb
Issue Type: Improvement
Components: Saga
Affects Versions: saga-0.2.0
Reporter: Jeremy Xu
RT, 当alpha与omega所在节点的时间不同步时,分布式事务会被异常aborted。检查代码发现alpha侧创建TxEvent时用到了omega侧传过来的时间戳。
{code:java}
@Override
public void onTxEvent(GrpcTxEvent message, StreamObserver<GrpcAck> responseObserver) {
boolean ok = txConsistentService.handle(new TxEvent(
message.getServiceName(),
message.getInstanceId(),
new Date(message.getTimestamp()), // 这里用到了omega侧传过来的时间戳
message.getGlobalTxId(),
message.getLocalTxId(),
message.getParentTxId().isEmpty() ? null : message.getParentTxId(),
message.getType(),
message.getCompensationMethod(),
message.getTimeout(),
message.getRetryMethod(),
message.getRetries(),
message.getPayloads().toByteArray()
));{code}
这里感觉可以直接用收到TxEvent的时间,即*new Date()*即可。
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)