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

Optimize docs wrong typo and pretty the page #945

Merged
merged 3 commits into from
Mar 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ XML DSL sample:

## Eventuate Tram Saga

[Eventuate Tram Saga](https://github.com/eventuate-tram/eventuate-tram-sagas)[4] The framework is a Saga framework for Java microservices using JDBC/JPA. Similar to Camel Saga, it also adopts Java DSL to define compensating operations:
[Eventuate Tram Saga](https://github.com/eventuate-tram/eventuate-tram-sagas)[4] The framework is a Saga framework for Java microservices using JDBC/JPA. Similar to Camel Saga, it also adopts Java DSL to define compensating operations:

```java
public class CreateOrderSaga implements SimpleSaga<CreateOrderSagaData> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ nacos-config.text
registry.conf
```

There are a total of five files. Among them, `file.conf` and `registry.conf` are needed in the code segments for both service consumers and providers. Note: `file.conf` and `registry.conf` must be included in the current applications in use, i.e., both service consumer and provider applications must include them. If you are using a configuration center like Nacos or ZK, `file.cnf` can be ignored. However, if `type="file"` is specified, then `file.cnf` must be used.
There are a total of five files. Among them, `file.conf` and `registry.conf` are needed in the code segments for both service consumers and providers. Note: `file.conf` and `registry.conf` must be included in the current applications in use, i.e., both service consumer and provider applications must include them. If you are using a configuration center like Nacos or ZK, `file.conf` can be ignored. However, if `type="file"` is specified, then `file.conf` must be used.

Below is the configuration information in the `registry.conf` file. The `registry` section is for the service registration center configuration, and the `config` section is for the configuration center.

Expand Down
100 changes: 50 additions & 50 deletions i18n/en/docusaurus-plugin-content-blog/seata-analysis-simple.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,56 +231,56 @@ During this process, the undo_log for rollback operation is generated by analyzi
The rollback_info column contains the detailed information of the undo_log, which is of type longblob. The structure is as follows:
```json
{
    "branchId":3958194,
    "sqlUndoLogs":[
        {
            "afterImage":{
                "rows":[
                    {
                        "fields":[
                            {
                                "keyType":"PrimaryKey",
                                "name":"ID",
                                "type":4,
                                "value":10
                            },
                            {
                                "keyType":"NULL",
                                "name":"COUNT",
                                "type":4,
                                "value":98
                            }
                        ]
                    }
                ],
                "tableName":"storage_tbl"
            },
            "beforeImage":{
                "rows":[
                    {
                        "fields":[
                            {
                                "keyType":"PrimaryKey",
                                "name":"ID",
                                "type":4,
                                "value":10
                            },
                            {
                                "keyType":"NULL",
                                "name":"COUNT",
                                "type":4,
                                "value":100
                            }
                        ]
                    }
                ],
                "tableName":"storage_tbl"
            },
            "sqlType":"UPDATE",
            "tableName":"storage_tbl"
        }
    ],
    "xid":"192.168.7.77:8091:3958193"
"branchId":3958194,
"sqlUndoLogs":[
{
"afterImage":{
"rows":[
{
"fields":[
{
"keyType":"PrimaryKey",
"name":"ID",
"type":4,
"value":10
},
{
"keyType":"NULL",
"name":"COUNT",
"type":4,
"value":98
}
]
}
],
"tableName":"storage_tbl"
},
"beforeImage":{
"rows":[
{
"fields":[
{
"keyType":"PrimaryKey",
"name":"ID",
"type":4,
"value":10
},
{
"keyType":"NULL",
"name":"COUNT",
"type":4,
"value":100
}
]
}
],
"tableName":"storage_tbl"
},
"sqlType":"UPDATE",
"tableName":"storage_tbl"
}
],
"xid":"192.168.7.77:8091:3958193"
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,22 +100,22 @@ This solution increases the maintenance cost of message service, but since messa
### Application scenario

Since consuming messages from a business service is an asynchronous process, the execution time is uncertain, which may lead to an increase in the inconsistency time window. Therefore, the Asynchronous Ensured TCC Distributed Transaction Solution is only applicable to some passive businesses that are less sensitive to the final consistency time (the processing result of the slave business service does not affect the decision of the master business service, and only passively receives the decision result of the master business service). For example, the member registration service and the email sending service:<br />
![10.png](/img/blog/TCC10.png)<br /> <br />When a user registers for a membership successfully, an email needs to be sent to the user to tell the user that the registration was successful and to prompt the user to activate the membership. But pay attention to two points:
![10.png](/img/blog/TCC10.png)<br /> <br />When a user registers for a membership successfully, an email needs to be sent to the user to tell the user that the registration was successful and to prompt the user to activate the membership. But pay attention to two points:

1. If the user registration is successful, make sure to send an email to the user;
1. if the user's registration fails, an email must not be sent to the user.

So again, this requires the membership service and the mail service to ensure atomicity, either both are executed or neither is executed. The difference is that the mail service is only a passive business, it does not affect whether the user can register successfully or not, it only needs to send an email to the user after the user has registered successfully, and the mail service does not need to be involved in the decision making of the activities of the membership service.

For this kind of business scenario, you can use the asynchronous ensured TCC distributed transaction solution, as follows:<br />
![11.png](/img/blog/TCC11.png)<br /> <br /> <br /> The reliable messaging service decouples the member and mail services, and the member service and the messaging service comprise the TCC transaction model, which ensures the atomicity of transactions. Then through the reliable feature of the message service, it ensures that the message can definitely be consumed by the mail service, so that the member and the mail service are in the same distributed transaction. At the same time, the mail service will not affect the execution process of the member service, and will only passively receive the request to send mail after the member service is executed successfully.
![11.png](/img/blog/TCC11.png)<br /> <br /> <br /> The reliable messaging service decouples the member and mail services, and the member service and the messaging service comprise the TCC transaction model, which ensures the atomicity of transactions. Then through the reliable feature of the message service, it ensures that the message can definitely be consumed by the mail service, so that the member and the mail service are in the same distributed transaction. At the same time, the mail service will not affect the execution process of the member service, and will only passively receive the request to send mail after the member service is executed successfully.

<a name="69910d05"></a>

## Compensated TCC solution

Compensated TCC solution is similar in structure to generic TCC solution, and its slave services also need to participate in the decision making of the main business service. However, the difference is that the former slave service only needs to provide Do and Compensate two interfaces, while the latter needs to provide three interfaces. <br />
![12.png](/img/blog/TCC12.png)<br /> <br /> The Do interface directly executes the real complete business logic, completes the business processing, and the result of the business execution is visible externally; the Compensate operation is used for the business compensation, which offsets or partially offsets the business result of the positive business operation. Compensate operation needs to satisfy idempotency. <br />Compensate operation is used to offset or partially offset the business results of positive business operations, and the Compensate operation needs to satisfy idempotency. <br />Compared with the general-purpose solution, Compensate solution does not need to transform the original business logic from the business service, and only needs to add an additional Compensate rollback logic, which is a lesser business transformation. However, it is important to note that the business executes the entire business logic in one phase and cannot achieve effective transaction isolation. When rollback is required, there may be a compensation failure, and additional exception handling mechanisms, such as manual intervention, are also required.
![12.png](/img/blog/TCC12.png)<br /> <br /> The Do interface directly executes the real complete business logic, completes the business processing, and the result of the business execution is visible externally; the Compensate operation is used for the business compensation, which offsets or partially offsets the business result of the positive business operation. Compensate operation needs to satisfy idempotency. <br />Compensate operation is used to offset or partially offset the business results of positive business operations, and the Compensate operation needs to satisfy idempotency. <br />Compared with the general-purpose solution, Compensate solution does not need to transform the original business logic from the business service, and only needs to add an additional Compensate rollback logic, which is a lesser business transformation. However, it is important to note that the business executes the entire business logic in one phase and cannot achieve effective transaction isolation. When rollback is required, there may be a compensation failure, and additional exception handling mechanisms, such as manual intervention, are also required.

<a name="62b37e99-2"></a>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ when the undolog serialization is configured as Jackson, the Jackson version nee
<h3 id='10'>Q: 10. Why didn't my mybatis operation return auto-generated ID? </h3>

**A:**
plan1.You should update the configuraton of `mybatis`: set annotation `@Options(useGeneratedKeys = true, keyProperty = "id")` or set the value of useGeneratedKeys and keyProperty in `mybatis` xml configuraton
plan1.You should update the configuraton of `mybatis`: set annotation `@Options(useGeneratedKeys = true, keyProperty = "id")` or set the value of useGeneratedKeys and keyProperty in `mybatis` xml configuraton
plan2.Delete the id field of the undo_log table

---
Expand Down Expand Up @@ -436,7 +436,7 @@ Examples:
public void A()\{

call remoting B();//Remote call B service
local DB operation;
local DB operation;

}

Expand Down
28 changes: 14 additions & 14 deletions i18n/en/docusaurus-plugin-content-docs/current/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -1772,7 +1772,7 @@ The version is updated as follows:

<details>
<summary><mark>Release notes</mark></summary>

### Seata 1.3.0

Seata 1.3.0 Released.
Expand Down Expand Up @@ -1930,7 +1930,7 @@ The version is updated as follows:

<details>
<summary><mark>Release notes</mark></summary>

### Seata 1.2.0

Seata 1.2.0 Released.
Expand Down Expand Up @@ -2074,7 +2074,7 @@ The version is updated as follows:

<details>
<summary><mark>Release notes</mark></summary>

### Seata 1.1.0

Seata 1.1.0 Released.
Expand Down Expand Up @@ -2203,7 +2203,7 @@ The version is updated as follows:

<details>
<summary><mark>Release notes</mark></summary>

### Seata 1.0.0

Seata 1.0.0 Released.
Expand Down Expand Up @@ -2316,7 +2316,7 @@ The version is updated as follows:
- [[#1920](https://github.com/apache/incubator-seata/pull/1920)] use iterator to remove timeout future.
- [[#1907](https://github.com/apache/incubator-seata/pull/1907)] encapsulation determines the supported database type
- [[#1903](https://github.com/apache/incubator-seata/pull/1903)] batch query branchSession by xid list
- [[#1910](https://github.com/apache/incubator-seata/pull/1910)] all Override methods must be annotated with [@override](https://github.com/override)
- [[#1910](https://github.com/apache/incubator-seata/pull/1910)] all Override methods must be annotated with [@override](https://github.com/override)
- [[#1906](https://github.com/apache/incubator-seata/pull/1906)] add exception system exit code when rpcServer init.
- [[#1897](https://github.com/apache/incubator-seata/pull/1897)] remove clientTest it's not use
- [[#1883](https://github.com/apache/incubator-seata/pull/1883)] restructure SQLRecognizer and UndoExecutor
Expand Down Expand Up @@ -2433,7 +2433,7 @@ The version is updated as follows:
- [[#1759](https://github.com/apache/incubator-seata/pull/1759)] fix saga service method not support interface type parameter
- [[#1401](https://github.com/apache/incubator-seata/pull/1401)] fix the first registration resource is null when RM starts



#### optimize

Expand All @@ -2452,9 +2452,9 @@ The version is updated as follows:
- [[#1756](https://github.com/apache/incubator-seata/pull/1756)] security: upgrade jackson to avoid security vulnerabilities
- [[#1657](https://github.com/apache/incubator-seata/pull/1657)] optimize the problem of large direct buffer when file rolling in file storage mode

Thanks to these contributors for their code commits. Please report an unintended omission.

Thanks to these contributors for their code commits. Please report an unintended omission.


- [slievrly](https://github.com/slievrly)
- [long187](https://github.com/long187)
Expand Down Expand Up @@ -2490,15 +2490,15 @@ Thanks to these contributors for their code commits. Please report an unintended

<details>
<summary><mark>Release notes</mark></summary>

### Seata 0.8.1

Seata 0.8.1 Released.

Seata is an easy-to-use, high-performance, open source distributed transaction solution.

The version is updated as follows:

#### feature

- [[#1598](https://github.com/apache/incubator-seata/pull/1598)] support profile to use absolute path
Expand Down
2 changes: 1 addition & 1 deletion i18n/en/docusaurus-plugin-content-docs/current/user/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ You can use this input parameter to pass query parameters in the transaction con

## 4.2.2 @BusinessActionContextParameter
Use this annotation to annotate the parameters that need to be passed in the transaction context. The parameters modified by this annotation will be set in BusinessActionContext.
You can use the getActionContext method of BusinessActionContext to obtain the passed business parameter values ​​in the commit and rollback phases.
You can use the getActionContext method of BusinessActionContext to obtain the passed business parameter values in the commit and rollback phases.
As follows:
```java
context.getActionContext("id").toString();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ description: Seata FAQ.
<a href="#23" target="_self">23.Spring boot 1.5.x appear the Jackson related NoClassDefFoundException?</a>
<br/>

<a href="#24" target="_self">24.SpringCloud xid cannot transmit?</a>
<a href="#24" target="_self">24.SpringCloud xid cannot transmit?</a>
<br/>

<a href="#25" target="_self">25.undo_log cannot be deleted after using the mybatis plus dynamic data source component?</a>
Expand Down Expand Up @@ -201,7 +201,7 @@ abnormal:io.seata.common.exception.FrameworkException: can not register RM,err
Error: A fatal exception has occurred. Program will exit.
```

If the environment is sh, replace the last paragraph in the script:
If the environment is sh, replace the last paragraph in the script:

```shell
exec "$JAVACMD" $JAVA_OPTS -server -Xmx2048m -Xms2048m -Xmn1024m -Xss512k -XX:SurvivorRatio=10 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:
Expand Down Expand Up @@ -245,7 +245,7 @@ when the undolog serialization is configured as Jackson, the Jackson version nee
<h3 id='10'>Q: 10. Why didn't my mybatis operation return auto-generated ID? </h3>

**A:**
plan1.You should update the configuraton of `mybatis`: set annotation `@Options(useGeneratedKeys = true, keyProperty = "id")` or set the value of useGeneratedKeys and keyProperty in `mybatis` xml configuraton
plan1.You should update the configuraton of `mybatis`: set annotation `@Options(useGeneratedKeys = true, keyProperty = "id")` or set the value of useGeneratedKeys and keyProperty in `mybatis` xml configuraton
plan2.Delete the id field of the undo_log table

---
Expand Down Expand Up @@ -430,8 +430,8 @@ Examples:
@GlobalTransactional(timeout=60000)
public void A()\{

call remoting B();//Remote call B service
local DB operation;
call remoting B();//Remote call B service
local DB operation;

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ description: This article will introduce you how to understand the details of ea

<details>
<summary><mark>Release notes</mark></summary>

### Seata 1.0.0

Seata 1.0.0 Released.
Expand Down Expand Up @@ -132,7 +132,7 @@ The version is updated as follows:
- [[#1920](https://github.com/apache/incubator-seata/pull/1920)] use iterator to remove timeout future.
- [[#1907](https://github.com/apache/incubator-seata/pull/1907)] encapsulation determines the supported database type
- [[#1903](https://github.com/apache/incubator-seata/pull/1903)] batch query branchSession by xid list
- [[#1910](https://github.com/apache/incubator-seata/pull/1910)] all Override methods must be annotated with [@override](https://github.com/override)
- [[#1910](https://github.com/apache/incubator-seata/pull/1910)] all Override methods must be annotated with [@override](https://github.com/override)
- [[#1906](https://github.com/apache/incubator-seata/pull/1906)] add exception system exit code when rpcServer init.
- [[#1897](https://github.com/apache/incubator-seata/pull/1897)] remove clientTest it's not use
- [[#1883](https://github.com/apache/incubator-seata/pull/1883)] restructure SQLRecognizer and UndoExecutor
Expand Down
Loading