Rumah >Java >javaTutorial >Cara menggunakan komponen JTA untuk melaksanakan pengurusan transaksi sumber berbilang data dalam SpringBoot2

Cara menggunakan komponen JTA untuk melaksanakan pengurusan transaksi sumber berbilang data dalam SpringBoot2

王林
王林ke hadapan
2023-05-10 22:07:042023semak imbas

1. Pengenalan kepada komponen JTA

1. Konsep asas JTA

JTA ialah Java-Transaction-API membolehkan aplikasi melakukan pemprosesan transaksi teragih, iaitu antara dua atau lebih Akses dan kemas kini data pada sumber komputer rangkaian. Sokongan pemandu JDBC untuk JTA sangat meningkatkan keupayaan capaian data.

Protokol XA ialah satu set spesifikasi pengurusan transaksi yang diedarkan di peringkat pangkalan data ialah pelaksanaan protokol XA dalam Java Berbilang pangkalan data atau vendor mesej yang melaksanakan antara muka JTA antara muka. Boleh merealisasikan fungsi pengurusan transaksi JTA.

Transaksi JTA lebih berkuasa daripada transaksi JDBC. Transaksi JTA boleh mempunyai berbilang peserta, manakala transaksi JDBC terhad kepada satu sambungan pangkalan data. Mana-mana komponen platform Java berikut boleh mengambil bahagian dalam transaksi JTA

2. Transaksi teragih

Transaksi Teragih termasuk pengurus transaksi (TransactionManager) dan satu atau lebih Pengurus Sumber yang menyokong protokol XA.

Pengurus sumber ialah sebarang jenis bekas penyimpanan data yang berterusan, seperti pangkalan data hubungan yang biasa digunakan dalam pembangunan: MySQL, Oracle, dsb., dan perisian tengah mesej RocketMQ, RabbitMQ, dsb.

Pengurus urus niaga menyediakan pengisytiharan urus niaga, pengurusan sumber urus niaga, penyegerakan, penyebaran konteks urus niaga dan fungsi lain, dan bertanggungjawab ke atas komunikasi bersama semua unit yang mengambil bahagian urus niaga. Spesifikasi JTA mentakrifkan antara muka untuk pengurus transaksi berinteraksi dengan peserta transaksi lain, dan peserta transaksi lain untuk berinteraksi dengan pengurus transaksi.

2. SpringBoot bersepadu JTA

Rajah struktur keseluruhan projek

Cara menggunakan komponen JTA untuk melaksanakan pengurusan transaksi sumber berbilang data dalam SpringBoot2

1. Kebergantungan teras

rreee

2 . Konfigurasi Persekitaran

Konfigurasi jtaManager di sini sangat kritikal dalam output log.

<!--SpringBoot核心依赖-->
<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-web</artifactid>
</dependency>
<!--JTA组件核心依赖-->
<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-jta-atomikos</artifactid>
</dependency>

3. Bekas teras

Teknik konfigurasi untuk dua sambungan pangkalan data di sini adalah sama, dan anda boleh memuat turun dan membacanya dalam kod sumber. Idea asas adalah untuk menyerahkan sumber data kepada komponen JTA untuk pengurusan bersatu bagi memudahkan komunikasi transaksi.

Parameter sumber data

spring:
  jta:
    transaction-manager-id: jtaManager
  # 数据源配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    data01:
      driverClassName: com.mysql.jdbc.Driver
      dbUrl: jdbc:mysql://localhost:3306/data-one
      username: root
      password: 000000
    data02:
      driverClassName: com.mysql.jdbc.Driver
      dbUrl: jdbc:mysql://localhost:3306/data-two
      username: root
      password: 000000

Konfigurasi komponen JTA

@Component
@ConfigurationProperties(prefix = "spring.datasource.data01")
public class DruidOneParam {
    private String dbUrl;
    private String username;
    private String password;
    private String driverClassName;
}

4 Membandingkan keputusan ujian kedua-dua kaedah, apabila melakukan operasi data antara kedua-dua sumber data, anda hanya perlu menambah anotasi @Transactional pada kaedah antara muka, untuk memastikan bahawa data adalah konsisten antara kedua-dua sumber data.

rreeee

Atas ialah kandungan terperinci Cara menggunakan komponen JTA untuk melaksanakan pengurusan transaksi sumber berbilang data dalam SpringBoot2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam