Dalam dunia pembangunan perisian moden, aplikasi yang diedarkan adalah sangat biasa, terutamanya dalam pengkomputeran awan dan seni bina perkhidmatan mikro. Walau bagaimanapun, terdapat beberapa isu ketekalan data dalam persekitaran yang diedarkan. Sebagai contoh, operasi perlu menjangkau berbilang sumber data Jika salah satu operasi sumber data gagal, sumber data lain juga mesti digulung semula untuk memastikan konsistensi data. Oleh itu, aplikasi yang diedarkan perlu menggunakan transaksi yang diedarkan untuk memastikan ketekalan data. Artikel ini akan menyelidiki pengalaman praktikal transaksi yang diedarkan dalam pembangunan Java.
Dalam persekitaran yang diedarkan Java, operasi mungkin melibatkan berbilang sumber data, seperti berbilang pangkalan data, baris gilir mesej, dsb. Walau bagaimanapun, setiap sumber data mempunyai mekanisme pengurusan transaksinya sendiri Jika operasi merangkumi berbilang sumber data, ia mesti dipastikan bahawa urus niaga daripada sumber data ini boleh diserahkan atau digulung semula, yang memerlukan transaksi yang diedarkan.
Pelaksanaan transaksi teragih memerlukan penggunaan dua konsep penting: penyelaras transaksi dan peserta. Penyelaras urus niaga bertanggungjawab untuk menyelaraskan operasi urus niaga berbilang peserta untuk memastikan mereka boleh melakukan atau tarik balik bersama-sama. Peserta ialah entiti yang mengendalikan transaksi tertentu, seperti pangkalan data. Apabila penyelaras transaksi meminta peserta untuk melakukan transaksi tertentu, ia memulakan transaksi yang diedarkan pada peserta untuk memastikan konsistensi data.
Di bawah kami akan menggunakan kes mudah untuk menunjukkan cara menggunakan Java untuk melaksanakan transaksi yang diedarkan.
Dalam kes ini, kami akan menggunakan Spring Boot+Mybatis untuk membina persekitaran teragih, yang merangkumi dua pangkalan data MySQL (db1 dan db2), yang akan menyimpan maklumat pengguna yang sama. Kami akan menggunakan transaksi yang diedarkan untuk memastikan bahawa data bagi setiap operasi adalah konsisten. Berikut ialah langkah terperinci bagi keseluruhan proses:
Langkah 1: Buat aplikasi Spring Boot.
Dalam aplikasi ini, kita perlu mengkonfigurasi pengurus transaksi Mybatis dan JTA. Di sini kami memilih Atomikos sebagai pembekal JTA kami. Kerana Atomikos ringan, mudah dikonfigurasikan dan mudah disepadukan dengan Spring.
Langkah 2: Buat dua pangkalan data MySQL.
Kami akan mensimulasikan persekitaran teragih, jadi kami memerlukan sekurang-kurangnya dua pangkalan data. Setiap pangkalan data mesti mengandungi jadual data pengguna yang sama. Di sini kita akan mencipta dua pangkalan data bernama db1 dan db2.
Langkah 3: Konfigurasikan sumber data Mybatis.
Kami perlu mengkonfigurasi Mybatis dalam aplikasi Spring Boot supaya ia boleh menyambung ke pangkalan data MySQL kami. Kita perlu mengkonfigurasi dua sumber data, sepadan dengan pangkalan data db1 dan db2. Untuk membolehkan Mybatis menyokong transaksi JTA, kami perlu menggunakan kebergantungan spring-boot-starter-jta-atomikos Mybatis.
Langkah 4: Laksanakan UserService.
Perkhidmatan Pengguna ialah bahagian teras logik perniagaan kami. Ia akan memuatkan data pengguna daripada dua pangkalan data MySQL dan memasukkan atau mengemas kini data pengguna. Ini adalah aplikasi teragih yang dibina pada dua pangkalan data MySQL. Dalam kes ini, masuk akal untuk melihat dengan lebih mendalam cara Perkhidmatan Pengguna Spring Boot Mybatis menyelesaikan tugas ini.
Langkah 5: Konfigurasikan pengurus transaksi yang diedarkan.
Setiap operasi memerlukan penggunaan transaksi teragih, jadi kami perlu mengkonfigurasi pengurus transaksi teragih. Kami memilih Atomikos sebagai pembekal JTA kami di sini. Atomikos ialah pelaksanaan JTA yang sangat ringan yang mudah dikonfigurasikan dan disepadukan dengan Spring.
Langkah 6: Uji sama ada UserService boleh berfungsi seperti biasa.
Selepas melengkapkan langkah di atas, kami perlu menulis beberapa kes ujian untuk memastikan UserService dapat berfungsi dengan baik. Kes ujian ini akan mensimulasikan persekitaran yang diedarkan di mana UserService akan cuba memuatkan, memasukkan atau mengemas kini data pengguna daripada dua pangkalan data MySQL yang berbeza.
Melalui amalan langkah di atas, kita dapat melihat dengan jelas cara menggunakan mekanisme transaksi teragih untuk mencapai konsistensi data dalam pembangunan Java. Hanya dengan menguasai teknologi ini kita boleh mengelakkan masalah ketidakkonsistenan data dalam aplikasi yang diedarkan. Oleh itu, apabila membangunkan aplikasi teragih, sentiasa beri perhatian kepada isu ketekalan data dan gunakan pengurus transaksi teragih yang sesuai untuk melindungi ketekalan data.
Atas ialah kandungan terperinci Pengalaman praktikal dalam pembangunan Java: menggunakan transaksi yang diedarkan untuk mencapai fungsi konsistensi data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!