同一个微服务模块多实例,TM会发生事物通知TC错乱的问题
- Dominant language
- Java
- Stars
- 4.2k
- Forks
- 1.4k
- PR merge metrics
- No merged PRs in 30d
Description
- [ ] I have searched the [issues](https://github.com/codingapi/tx-lcn/issues) of this repository and believe that this is not a duplicate.
### 1. Bug Description
在多台机器上部署相同的服务模块moduleA(ip不同,端口也不同),代开tm的debug日志,发现在请求再moduleA_1的时候是正常的,然后内部服务调用切换到moduleA_2的时候,事物会发生超时,然后才删除redis的资源锁.如果再超时的这段时间内,有去获取排他锁会发生resource loack的异常情况.
在源码排查的情况中发现,在tm进行事务通知tx的时候

只会通知一个? 而且这边获取modId的时候进行获取的是模块名,即使我再tc那边重写的modId的生成规则,但是注册到tm的时候这个再客户端看来是modid的值变成了labelName
所以再通知tc事务的时候错乱了.下面是获取modid的方法

拿到是moduleA这个模块名,而不是具体的moduleA_1或者module_2具体的服务标识.
### 2. Environment:
- JDK version:1.8
- OS: ubuntu 16.0.4
- TX-LCN version: 5.0.2
- Others:
### 3. Exception Stacktrace
```
Paste your Exception Stacktrace here!
```
### 4. Tour Idea
所以,我这边想问下,当前5.0.2这个版本是不是对提供的modid的更改接口对接到tm的功能是否还没有完成?当前的labelName好像只是作为tm的后台展示所用,并没有其他的作用,那么当前是否不支持tc的多实例的应用?
我们这边对获取modid获取方式进行了更改,取的是labelName而不是appname

Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.