sách gpt4 ăn đã đi

Giải thích chuyên sâu về chế độ AT của Seata

In lại Tác giả: Tôi là chú chim nhỏ Thời gian cập nhật: 2022-12-02 14:31:30 26 4
mua khóa gpt4 giày nike

Mục lục
  • 1. Nền tảng kinh doanh
  • 2. Kiến trúc Seata
    • 1. Thành phần cốt lõi
    • 2. Chế độ AT
  • 3. Phân tích trường hợp
    • 1. Phân tích quy trình
    • 2. Viết cách ly
    • 3. Đọc cách ly
  • 4. So sánh chế độ XA
  • 5. Mã nguồn tham khảo

Nếu một cá nhân tụt lại phía sau thì tập thể sẽ bị bỏ lại phía sau;

1. Nền tảng kinh doanh

Trong kiến ​​trúc phân tán, quản lý giao dịch là một vấn đề phức tạp không thể tránh khỏi. Mặc dù có nhiều giải pháp nhưng bạn cần chọn giải pháp phù hợp tùy theo doanh nghiệp;

Đánh giá từ kinh nghiệm thực tế của cá nhân trong những năm gần đây, chế độ AT của các thành phần Seata được sử dụng tương đối phổ biến.

Đầu tiên, tạo giao diện để quản lý giao dịch toàn cầu. Tại đây, các giao dịch toàn cầu được kích hoạt trong dịch vụ Facade;

Yêu cầu trải qua ba vi dịch vụ và mỗi dịch vụ thực hiện các hoạt động nguồn dữ liệu, sau đó mô phỏng các tình huống ngoại lệ và thành công liên kết để phân tích việc triển khai logic ở các trạng thái khác nhau;

2. Kiến trúc Seata

1. Thành phần cốt lõi

Ba thành phần chính.

  • TC: điều phối viên giao dịch

Nghĩa là, Điều phối viên giao dịch duy trì trạng thái của các giao dịch toàn cầu và chi nhánh, đồng thời thúc đẩy việc gửi hoặc khôi phục giao dịch toàn cầu.

  • TM: người quản lý giao dịch

Nghĩa là Trình quản lý giao dịch, xác định phạm vi giao dịch toàn cầu, bắt đầu giao dịch, cam kết giao dịch và khôi phục giao dịch.

  • RM: Người quản lý tài nguyên

Nghĩa là, Trình quản lý tài nguyên quản lý các tài nguyên để xử lý giao dịch chi nhánh, đăng ký giao dịch chi nhánh với TC, báo cáo trạng thái giao dịch chi nhánh và thúc đẩy việc gửi hoặc khôi phục giao dịch chi nhánh.

Tương tác cơ bản

TC là một dịch vụ cần được triển khai độc lập. TM và RM được tích hợp trong dịch vụ. Ba thành phần chính hợp tác với nhau để hoàn thành việc quản lý các giao dịch phân tán;

2. Chế độ AT

mô hình giao dịch.

AT là chế độ mặc định của Seata và cần dựa trên cơ sở dữ liệu quan hệ hỗ trợ các giao dịch ACID cục bộ; Các ứng dụng Java truy cập cơ sở dữ liệu thông qua JDBC dựa trên quy trình trường hợp, trước tiên hãy phân tích mô hình giao dịch của AT;

2.1 TM chịu trách nhiệm xác định ranh giới của các giao dịch toàn cầu và áp dụng cho TC để mở giao dịch toàn cầu;

2.2 Sau khi giao dịch toàn cầu được tạo thành công, XID duy nhất trên toàn cầu sẽ được tạo;

2.3 XID sẽ được phổ biến trong bối cảnh liên kết yêu cầu microservice;

2.4 RM đăng ký các giao dịch chi nhánh với TC và gán chúng cho các giao dịch toàn cầu tương ứng với XID để lập lịch;

2.5 TM bắt đầu cam kết giao dịch toàn cầu hoặc giải pháp khôi phục XID tương ứng với TC ;

2.6 TC hoàn thành việc lập kế hoạch cam kết hoặc khôi phục tất cả các giao dịch chi nhánh do XID quản lý;

cơ chế cốt lõi.

Giai đoạn thực thi: Sau khi hoàn thành mỗi yêu cầu vi dịch vụ, dựa trên khả năng giao dịch của cơ sở dữ liệu cục bộ, đảm bảo rằng dữ liệu nghiệp vụ và nhật ký khôi phục được gửi trong cùng một giao dịch cục bộ, đồng thời các kết nối và khóa tài nguyên được giải phóng nhanh chóng;

Giai đoạn hoàn thành: Trong quá trình cam kết toàn cầu, giao dịch chi nhánh đã được gửi, nhật ký khôi phục sẽ được làm sạch và quá trình này sẽ nhanh chóng kết thúc;

Đại lý nguồn dữ liệu.

Ở chế độ AT, ứng dụng cần sử dụng nguồn dữ liệu proxy JDBC DataSourceProxy trong thành phần Seata để có được quyền truy cập proxy vào nguồn dữ liệu đích thực;

3. Phân tích trường hợp

1. Phân tích quy trình

Một mô tả ngắn gọn về vụ án.

Trong trường hợp này, có ba dịch vụ liên quan. Dịch vụ Facade bắt đầu một giao dịch toàn cầu, sau đó yêu cầu giao diện cập nhật của dịch vụ Tài khoản và Quartz tương ứng. Nguyên tắc của chế độ AT có thể được gỡ lỗi bằng cách liệu giao diện Quartz có ném ngoại lệ hay không;

Từ góc độ thực hiện yêu cầu thực tế, phần lớn các yêu cầu có thể được thực hiện thành công và việc gửi không đồng bộ của chế độ AT sẽ tính đến hiệu quả của các giao dịch toàn cầu ở mức độ lớn nhất. Một số lỗi cũng có thể được đảo ngược thông qua nhật ký khôi phục. đền bù; .

2. Viết cách ly

Quá trình trên phân tích tính nguyên tử của chế độ AT, nghĩa là nhiều giao dịch nhánh thành công hoặc thất bại. Tiếp theo, cơ chế cách ly khóa toàn cầu trong nhiều giao dịch sẽ được phân tích trước tiên.

logic TX1.

  • TX1 bắt đầu giao dịch cục bộ, lấy khóa cục bộ và sau đó thực hiện thao tác cập nhật;
  • Trước khi giao dịch cục bộ TX1 được gửi, nó cần phải có khóa toàn cầu, nếu không thì không thể gửi được;
  • TX1 lấy được khóa chung và cam kết nó, giải phóng khóa cục bộ nhưng không giải phóng khóa chung;

logic TX2.

  • TX2 bắt đầu giao dịch cục bộ tại thời điểm này và nhận được khóa cục bộ;
  • TX2 cố gắng lấy khóa toàn cầu trước khi thực hiện gửi giao dịch cục bộ;
  • Vì khóa chung được giữ bởi TX1, TX2 sẽ thử lại chờ khóa chung;

Giả sử TX1 cam kết trên toàn cầu.

  • TX1 sẽ mở khóa toàn cầu nếu giao dịch toàn cầu được thực hiện;
  • TX2 lấy được khóa toàn cầu thành công và thực hiện gửi giao dịch cục bộ;

Giả sử TX1 được khôi phục trên toàn cầu.

  • TX1 Nếu giao dịch toàn cầu bị khôi phục, khóa dữ liệu cục bộ phải được lấy lại và hành động bù khôi phục phải được thực hiện;
  • Nếu TX2 vẫn đang chờ khóa chung và vẫn giữ khóa cục bộ thì quá trình khôi phục giao dịch TX1 không thành công và sẽ tiếp tục được thử lại;
  • Khi TX2 đợi khóa toàn cầu hết thời gian, nó sẽ từ bỏ khóa toàn cầu và khôi phục giao dịch cục bộ, giải phóng khóa cục bộ;
  • TX1 cuối cùng có được khóa dữ liệu cục bộ và hoàn thành hành động khôi phục;

Trong quá trình này, TX1 giữ khóa chung cho đến hết. TX2 không thể lấy khóa chung và không thể thực hiện các hành động cập nhật trên cùng một dữ liệu, do đó tránh được vấn đề ghi bẩn;

3. Đọc cách ly

Trên cơ sở mức cô lập cục bộ của cơ sở dữ liệu được cam kết đọc hoặc cao hơn, mức cô lập toàn cầu mặc định của chế độ AT của Seata là không được cam kết đọc; nếu bạn cần cam kết đọc toàn cục, bạn có thể sử dụng tác nhân của câu lệnh SELECT FOR UPDATE;

Việc thực thi câu lệnh này cũng cần có khóa chung. Nếu khóa chung được giữ bởi TX1, TX2 sẽ giải phóng khóa cục bộ, truy vấn sẽ bị chặn và thử lại, đồng thời quay trở lại sau khi lấy được khóa chung và đọc thành công;

4. So sánh chế độ XA

XA là giao thức gửi phân đoạn giao dịch phân tán; người quản lý giao dịch là TM: với tư cách là người lập lịch giao dịch toàn cầu, chịu trách nhiệm gửi và khôi phục tài nguyên cục bộ trong toàn bộ giao dịch; người quản lý tài nguyên cục bộ là RM: hầu hết các cơ sở dữ liệu quan hệ đều triển khai giao diện XA; ;

Trước tiên, TM gửi yêu cầu xác nhận đến tất cả các RM tham gia giao dịch và dựa trên kết quả xác nhận, sẽ xác định xem nên gọi cam kết hay khôi phục của RM;

XA có tính nhất quán cao Trong quá trình gửi 2 giai đoạn, nó sẽ giữ các khóa tài nguyên. Nếu nó nằm trong một liên kết phức tạp như đặt hàng giao dịch và số lượng đồng thời cao thì sẽ có nguy cơ giao dịch kéo dài và XA. không thể đáp ứng loại yêu cầu này.

Trong chế độ AT của Seata, sau khi hoàn tất quá trình thực thi dịch vụ, việc gửi RM và giải phóng tài nguyên được thực hiện trực tiếp, cung cấp giải pháp tương đối cân bằng cho lý thuyết CAP mà không xâm phạm kỹ thuật kinh doanh;

5. Mã nguồn tham khảo

                        
                          Kho ứng dụng: https://gitee.com/cicadasmile/butte-flyer-parent Gói thành phần: https://gitee.com/cicadasmile/butte-frame-parent

                        
                      

Cuối cùng, bài viết giới thiệu chuyên sâu về chế độ AT của Seata kết thúc tại đây. Nếu bạn muốn biết thêm về lời giải thích chuyên sâu về chế độ AT của Seata, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. ủng hộ blog của tôi trong tương lai! .

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress