EasyTransaction icon indicating copy to clipboard operation
EasyTransaction copied to clipboard

关于幂等表的设计

Open MiracleJy opened this issue 6 years ago • 1 comments

CREATE TABLE idempotent ( src_app_id smallint(5) unsigned NOT NULL COMMENT '来源AppID', src_bus_code smallint(5) unsigned NOT NULL COMMENT '来源业务类型', src_trx_id bigint(20) unsigned NOT NULL COMMENT '来源交易ID', app_id smallint(5) NOT NULL COMMENT '调用APPID', bus_code smallint(5) NOT NULL COMMENT '调用的业务代码', call_seq smallint(5) NOT NULL COMMENT '同一事务同一方法内调用的次数', handler smallint(5) NOT NULL COMMENT '处理者appid', called_methods varchar(64) NOT NULL COMMENT '被调用过的方法名', md5 binary(16) NOT NULL COMMENT '参数摘要', sync_method_result blob COMMENT '同步方法的返回结果', create_time datetime NOT NULL COMMENT '执行时间', update_time datetime NOT NULL, lock_version smallint(32) NOT NULL COMMENT '乐观锁版本号', PRIMARY KEY (src_app_id,src_bus_code,src_trx_id,app_id,bus_code,call_seq,handler) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

请问幂等表的设计中src_app_id、src_bus_code、src_trx_id是代表调用者信息,app_id、bus_code代表被调用者信息吗?call_seq代表什么?

MiracleJy avatar Dec 18 '18 08:12 MiracleJy

有更正:

如注释及你所描述:

  • src_app_id、src_bus_code、src_trx_id是代表调用者信息,发起方
  • app_id、bus_code代表调用的业务代码/发送的消息代码
  • call_seq表示 同一事务同一方法内调用的次数,因为有可能发起方会多次调用同一个app_id,bus_code对应的业务,因此需要区分
  • handler 代表处理者的APPID

skyesx avatar Dec 18 '18 10:12 skyesx