Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature : multi-version protocol control #5738

Closed
wants to merge 31 commits into from
Closed

Conversation

Bughue
Copy link
Contributor

@Bughue Bughue commented Jul 19, 2023

  • I have registered the PR changes.

Ⅰ. Describe what this PR did

#5628

protocol的version和 codec的version完全同步,他们具有相同的含义,比如v1,v2

已确定问题:

  1. rpcMessage是否要分离开?如果不分离的话requestid如何处理?如果分离的话与他相关的基本上都会改动(甚至包括AbstractNettyRemoting等等,很难处理)
    --- 区分rpcMessage和ProtocolRpcMessage,其中rpcMessage继续服务于所有的业务代码,所以不受影响
  2. codec分离:目前是打算old(0.6.x)单独一份,和其他版本的毫无关系,然后新版本的以v1为基础去做继承,有没有问题?(默认不会改已发布版本的协议字段,也可以平行,因为默认是String to Byte会导致编解码不能复用,也可能考虑写一套通用的反射字段来做序列化)
    --- 暂时就按这个处理
  3. 如何做完整的测试?
    ---新增mock server,用来做协议的测试

未确定问题:

  1. 对各种序列化的codec都是要改造适配的,这个清铭哥会支持。具体如何分工?

Ⅱ. Does this pull request fix one issue?

fixes #6035

discussion : #5628

Ⅲ. Why don't you add test cases (unit test/integration test)?

Ⅳ. Describe how to verify it

Ⅴ. Special notes for reviews

@Bughue Bughue changed the title [discuss]multi-version protocol control [WIP]multi-version protocol control Nov 15, 2023
@Bughue
Copy link
Contributor Author

Bughue commented Nov 15, 2023

updated:

  1. EnhancedServiceLoader: all changes have been rolled back, the use of incoming parameters to determine the version number (seata-serialization) other serialization is not yet resolved
  2. version passthrough : protocol-version was not bound to the channel, sdk-version being bound to the channel, and then maps the sdk-version to the protocol-version.

更新:

  1. EnhancedServiceLoader:所有更改均已回滚,使用传入参数确定版本号(seata-serialization)的其他序列化问题尚未解决。
    2.版本号透传:协议版本号不再与channel绑定,利用sdk-version与channel原有的绑定,然后新增 sdk- version和协议版本的映射

@Bughue Bughue changed the title [WIP]multi-version protocol control feature : multi-version protocol control Nov 30, 2023
@funky-eyes funky-eyes added this to the 2.1.0 milestone Nov 30, 2023
@Bughue Bughue closed this Dec 25, 2023
@Bughue Bughue mentioned this pull request Dec 25, 2023
1 task
@Bughue
Copy link
Contributor Author

Bughue commented Dec 25, 2023

mock server拆分 #6205

@Bughue
Copy link
Contributor Author

Bughue commented Dec 25, 2023

当前版本测试 拆分 #6207

@Bughue
Copy link
Contributor Author

Bughue commented Dec 25, 2023

多版本序列化拆分 #6208

@Bughue
Copy link
Contributor Author

Bughue commented Dec 25, 2023

rpcmessage拆分 #6209

@Bughue
Copy link
Contributor Author

Bughue commented Dec 29, 2023

完整支持多版本 #6226

@funky-eyes funky-eyes removed this from the 2.1.0 milestone Mar 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Seata multi-version protocol control
2 participants