The first version of Seata 2.x is officially released, supporting Raft cluster mode

User registration

Existing users are welcome to register at this link so that we can better optimize business scenarios:

https://github.com/apache/incubator-seata/issues/1246

 

2.x Roadmap

Release overview

2.0.0 supports the long-awaited Raft cluster mode. Raft cluster mode eliminates dependence on third-party registration centers and Seata-Server back-end storage, making operation and maintenance simpler and more reliable. . In addition, AT mode supports SQLServer, Dameng and PolarDB-X 2.0 databases; it has unified the API of transaction mode; it supports two-stage transaction parallelism to greatly improve transaction performance; and it supports IPV6. It has passed more than 110 sets of cross-compatibility tests for jdk (8, 11, 17, 21) + Spring versions + OS (x86, arm64) + druid major versions, so you can upgrade smoothly with confidence.

The total number of files modified in this release is: 930, the cumulative code submitted is +56171 −6549, 182 PRs were merged, and a total of 47 people participated in code commit.

https://github.com/apache/incubator-seata/pull/6067

2.0.0 milestone:

https://github.com/apache/incubator-seata/milestone/21

seata-server: 

https://github.com/apache/incubator-seata/releases/download/v2.0.0/seata-server-2.0.0.tar.gz

docker image:

https://hub.docker.com/repository/docker/seataio/seata-server

Deployment Guide:

https://seata.apache.org/zh-cn/docs/ops/deploy-server-raft

Upgrade guide:

https://seata.apache.org/zh-cn/docs/ops/upgrade

Smoothly compatible with lower versions. 

 

The main updates of the version are as follows

feature:

  • [#5226] Support Raft cluster mode

  • [#5165] Unify API for multiple transaction modes

  • [#5352] Integrate jackson and gson serialization functions in TCC Business Action Context

  • [#5377] Support http PUT request

  • [#5396] TC exception log indicator collection

  • [#5118] Support two-stage parallel delivery execution

  • [#5529] Docker image supports injecting JVM parameters into the container

  • [#3887] Add support for SQLServer database in AT mode

  • [#4033] Add SQLServer support for ServerDB storage mode

  • [#5600] The skywalking plug-in supports tracking transactions based on XID

  • [#5357] seata console integrates saga designer

  • [#5717] Compatible with file.conf/registry.conf configuration of 1.4.2 and below versions

  • [#5842] Add relevant git information when building docker images to facilitate locating code relationships

  • [#5902] Support IPv6 network environment

  • [#5907] Add support for PolarDB-X 2.0 database in AT mode

  • [#5932] AT mode supports Dameng database

  • [#5946] Add sqlserver’s adaptation to the console paging interface

     

bugfix:

  • [#5677] Fix the problem of serviceTask input parameter autoType conversion failure in saga mode

  • [#5277] Fixed the console global lock query interface finding the released lock

  • [#5282] Fix the array index out-of-bounds issue during parallel rm request processing

  • [#5294] Fix the problem of the primary key column of pgsql/oracle increasing automatically in AT mode

  • [#5298] Transaction commit or rollback timeout does not remove global session

  • [#5304] Remove RollbackRetryTimeout transaction based on file storage recovery

  • [#5310] Fix the bug of not escaping keywords in the image sql before and after generating update

  • [#5318] Fix G1 parameter in jdk8

  • [#5330] Fix bugs found in unit tests

  • [#5337] Fix the problem in feature #5165 about the sorting of multiple interceptors in the spring environment, and also fix the problem of not being able to use BeforeTransaction (AfterTransaction) transaction sorting when the order is consistent.

  • [#5347] Fix console printing unauthorized error problem

  • [#5355] Fix the problem when customizing context-path

  • [#5362] Fixed the problem that the custom FailureHandler method is not executed when the TC side rollback returns RollbackFailed.

  • [#5373] Fixed the problem of hook and failureHandler not being executed before client-side transaction timeout

  • [#5395] Fixed the problem that the fields generated by new fields in AT mode cannot be found.

  • [#5426] Fixed the problem of not being able to obtain GlobalTransactional annotation

  • [#5464] Fix the problem that the global transaction status of saga mode is always Begin

  • [#5478] Fixed the problem of no exception being thrown when the transaction is completed when submitting the transaction

  • [#5490] Fixed the problem of not printing method names in logs

  • [#5449] Fix Oracle XA mode start reentry problem

  • [#5462] When using @GlobalTransactional in RM, ShouldNeverHappenException will be thrown if RM execution fails.

  • [#5498] Fix the full table scan problem of "setDate" condition in Oracle 10g

  • [#5531] Fix the problem of incorrect path of reading logback file

  • [#5523] Fix the problem that GlobalStatus=9 cannot be cleared in DB storage mode

  • [#5558] Fix the problem of mariadb rollback failure

  • [#5556] Fix the problem of Oracle inserting undolog failure

  • [#5579] Fixed the problem of obtaining RM_CHANNELS null pointer when resourceId is empty

  • [#5577] Fix grpc interceptor failure to unbind xid

  • [#5594] Fix duplicate logs in participant case

  • [#5604] Fix the problem that the asyncCommit and queueToRetryCommit methods always fail in DB mode

  • [#5658] Fix escaping characters for uppercase and lowercase column names

  • [#5661] Fixed timeout being null when connectionProxyXA connection is reused

  • [#5679] Fix the compatibility issue between xxx.grouplist and grouplist.xxx configuration items

  • [#5715] Fixed the error in selecting the underline configuration item

  • [#5748] Fix that in some cases, the case of the primary key field name in business SQL is inconsistent with the table metadata, causing the rollback to fail.

  • [#5745] Fixed the problem of not meeting the parameter prefix requirements of the setAttachment method in sofa-rpc

  • [#5772] Fix some field types of TableMetaCache to avoid overflow

  • [#5787] Solve the bug that the cluster cannot be customized when redis is used as the registration center

  • [#5810] Fix XA transaction start exception and rollback failure caused by druid dependency conflict

  • [#5821] Fix the problem of insert executor not escaping keywords

  • [#5835] bugfix: Fixed the issue where TC will continue to retry the rollback after the XA transaction fails to roll back.

  • [#5881] Fixed the issue of lock not being deleted when transaction is rolled back

  • [#5930] Fixed the problem of missing sentry password when stored in redis sentry mode

  • [#5958] When reselection occurs in the two-phase commit state, the global lock needs to be released

  • [#5971] Fixed some non-deprecated configurations showing "deprecated"

  • [#5977] Fix the problem that the rpc server is not closed when the raft server is closed.

  • [#5954] Fix the issue where the saved branch session state is inconsistent with the actual branch session state

  • [#5990] Fix the problem that the lua script is not synchronized when the redis sentinel master node is down.

  • [#5997] Fix global transaction hook repeated execution

  • [#6018] Fix incorrect metric reporting

  • [#6024] Fixed the problem of white screen after clicking the "View Global Lock" button in the transaction information page in the console

  • [#6015] Fixed the problem that dubbo cannot be integrated in spring environment

  • [#6049] Fixed the problem that when the client is in the raft registration center type and the network is interrupted, the watch thread does not pause for one second to wait for retry.

  • [#6050] Modify RaftServer#destroy to wait for all shutdown processes to end

  • [#6033] Fix the isReference judgment logic in HSFRemotingParser and remove the useless judgment about FactoryBean

optimize:

  • [#5966] Saga expression decoupling and unified format

  • [#5928] Add Saga mode state machine semantic verification phase

  • [#4858] Refactor and optimize SessionManager usage

  • [#4881] Reclassify the usage of SessionManager and SessionLifecycleListener

  • [#5273] Optimize the compilation configuration of the protobuf-maven-plugin plug-in to solve the problem of too long command lines in higher versions

  • [#5278] Clean up the legacy code of sessionmanager multi-instance mode

  • [#5302] Remove -Xmn parameter of startup script

  • [#4880] Optimize log output when commit and rollback encounter exceptions

  • [#5322] Optimize SPI loading log

  • [#5326] Add time information to global transaction timeout log

  • [#5328] Add the corresponding lua implementation for the Redis mode of global transactions and transaction storage

  • [#5341] Optimize gRPC TCC mode

  • [#5342] Optimize TCC fence log cleanup delay parameter value check of scheduled tasks

  • [#5344] Add configuration center, registration center type and storage mode log information

  • [#5351] Optimize RPC filter in TCC mode

  • [#5354] Refactor RPC integration module

  • [#5370] Optimize transaction failure handling handler

  • [#5431] Optimize github workflow

  • [#5461] Optimize license workflow

  • [#5456] Refactor ColumnUtils and EscapeHandler

  • [#5438] Optimize code style detection attributes

  • [#5471] Optimize client-side transaction log

  • [#5485] Optimize Server log output

  • [#4907] Adjust the second-stage result thread pool size and optimize the code

  • [#5487] Add final modification to the lockholder in branchsession

  • [#5519] Optimize Oracle FenceHandler

  • [#5501] Support optimistic locking mode to update transaction status

  • [#5419] Optimize the image release pipeline to support jdk8/17 and maven 3.9.0

  • [#5549] Optimize gpg key and release pipeline

  • [#5576] Only when useTCCFence is set to true, the Fence table cleanup task is enabled.

  • [#5623] Optimize possible conflicts between asynchronous submission threads and retry threads

  • [#5563] Optimize channel channel availability log output

  • [#5553] Support table and column metadata case sensitivity settings

  • [#5644] Optimize Server log output

  • [#5680] Optimize case escape characters

  • [#5686] Optimize license check actions

  • [#5714] Optimize distributed lock competition log

  • [#5723] Optimize the default time zone of docker image

  • [#5779] Delete useless output logs and unify log output paths

  • [#5802] Optimize the server-side transaction isolation level to read committed

  • [#5783] Support application name configuration on nacos

  • [#5524] Support more operation commands in seata-server.sh

  • [#5836] Separate AT implementation of mariadb and mysql

  • [#5869] Optimize some minor syntax

  • [#5885] Optimize logging in ConnectionProxyXA

  • [#5894] Remove unlicensed components

  • [#5895] Remove 7z compression support

  • [#5896] Remove mariadb.jdbc dependency

  • [#5384] Unified version number management, only need to maintain the version number in build/pom.xml.

  • [#5419] Publish docker images based on multiple java versions

  • [#5829] Fixed the problem that codecov chart is not displayed

  • [#5878] Optimize dependency definitions of httpcore and httpclient

  • [#5917] Upgrade native-lib-loader version

  • [#5926] Optimize some Apollo-related scripts

  • [#5938] Support jmx monitoring configuration

  • [#5944] Fix build operation warning

  • [#5951] Delete configuration items not supported in jdk17

  • [#5959] Fix code style issues and remove useless class references

  • [#6002] Remove fst serialization module

  • [#6045] Optimize MySQL derived database judgment logic

security:

  • [#5642] Add Hessian serialization black and white list

  • [#5694] Fix several Node.js dependency security vulnerabilities

  • [#5801] Fix Java dependency security vulnerability

  • [#5805] Fix serialization vulnerability

  • [#5868] Fix npm package vulnerability

  • [#5916] Fix npm package vulnerability

  • [#5942] Upgrade dependency version

  • [#5987] Upgrade dependency version

  • [#6013] Upgrade the spring version that seata-server depends on

test:

  • [#5308] Add unit test case [FileLoader, ObjectHolder, StringUtils]

  • [#5309] Add unit test cases [ArrayUtils, ConfigTools, MapUtil]

  • [#5335] Add unit test case [EnhancedServiceLoader,ExtensionDefinition,SizeUtilTest,ReflectionUtil,LowerCaseLinkHashMap,FileLoader,ObjectHolder]

  • [#5367] Fix UpdateExecutorTest single test failure problem

  • [#5383] Fix multi-Spring version test failure

  • [#5391] Add unit test cases for config module

  • [#5428] Fix FileTransactionStoreManagerTest single test failure problem

  • [#5622] Add unit test case [ExporterType, RegistryType]

  • [#5637] Add unit test case [BatchResultMessage, HeartbeatMessage, RegisterRMResponse, ResultCode, RegisterTMResponse, MergeResultMessage, MergedWarpMessage, Version]

  • [#5893] Remove sofa test case

  • [#5845] Upgrade the druid version and add test-druid.yml to test the compatibility between seata and druid versions.

  • [#5863] Fix the problem that unit test cannot run properly under Java21.

  • [#5986] Fix zookeeper single test failure problem

  • [#5995] Add unit test cases for RaftClusterMetadataMsg module

  • [#6001] Add unit test cases under the branch package of the RaftMsgExecute module

  • [#5996] Add unit test cases under the global package of the RaftMsgExecute module

  • [#6003] Add unit test cases under the lock package of the RaftMsgExecute module

  • [#6005] Fix undefined behavior of saga asynchronous test

  • [#6009] Add unit test cases for RaftServerFactory

  • [#6052] UT upgrades the spring version of springboot and server

 

English version reference: https://github.com/seata/seata/releases/tag/v2.0.0

Acknowledgments

Many thanks to the following contributors for their code contributions. If there are any inadvertent omissions, please report them.

  • slievrly

  • xssdpgy

  • albums

  • PeppaO

  • yuruixin

  • CrazyLionLi

  • xingfudeshi

  • Bughue

  • pint

  • wangliang181230

  • GoodBoyCoder

  • funky-eyes

  • isharpever

  • mxsm

  • liuqiufeng

  • l81893521

  • dmego

  • zsp419

  • tuwenlin

  • sixlei

  • Yixia

  • capthua

  • robynron

  • XQDD

  • Weelerer

  • Ifdevil

  • iquanzhan

  • leizhiyuan

  • Aruato

  • ggbocoder

  • ptyin

  • jsbxyyx

  • xxxcrel

  • fengzhenhai168

  • tobehardest

  • leezongjie

At the same time, we have received many valuable issues and suggestions from the community. Thank you very much.

Community discussion group

 

Most used link

Set: https://github.com/apache/incubator-set

Samples: https://github.com/apache/incubator-seata-samples

Release: https://github.com/apache/incubator-seata/releases

Official website: https://seata.apache.org/

 

Developer recruitment

If you are interested in Seata's front-end and back-end development, testing and documentation, please contact us by email: [email protected]

Guess you like

Origin www.oschina.net/news/272189