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
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.
Rajah struktur keseluruhan projek
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>
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; }
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!