Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Melaksanakan pemprosesan transaksi teragih dengan mudah dengan go-zero

Melaksanakan pemprosesan transaksi teragih dengan mudah dengan go-zero

PHPz
PHPzasal
2023-06-23 09:40:152038semak imbas

Dengan perkembangan Internet dan pendigitalan, terdapat lebih banyak permintaan untuk aplikasi yang diedarkan, dan pemprosesan transaksi yang diedarkan telah menjadi masalah yang tidak dapat dielakkan. Ramai pembangun bergantung pada pengalaman mereka sendiri dan menulis kod secara manual apabila berurusan dengan urus niaga yang diedarkan, bagaimanapun, pendekatan ini melibatkan risiko dan kerumitan yang besar, dan sukar untuk dikekalkan dan dikembangkan. Rangka kerja berpusatkan transaksi go-zero boleh menyediakan pembangun penyelesaian yang mudah dan mudah digunakan.

go-zero ialah rangka kerja pembangunan aplikasi teragih yang ditulis dalam bahasa golang, yang mewakili tahap tertinggi teknologi bahasa go semasa. Dari segi seni bina asas, ia menggunakan grpc sebagai protokol dan rangka kerja interaksi data untuk pembangunan, dan pada peringkat logik perniagaan, ia menggunakan model perkhidmatan mikro bersatu untuk membina aplikasi. Oleh kerana konsep reka bentuk go-zero adalah ringan dan mudah digunakan, dan ia berfungsi dengan baik dalam pelbagai senario, ia mempunyai kadar penggunaan yang tinggi dalam bidang perindustrian.

Dari segi pemprosesan transaksi teragih, go-zero menggunakan mekanisme pampasan untuk mencapai konsistensi dan kebolehpercayaan transaksi. Mekanisme pampasan yang dipanggil bermakna jika perkhidmatan gagal dilaksanakan semasa operasi, beberapa operasi pampasan yang sepadan perlu dilakukan untuk memastikan ketekalan dan kebolehpulihan operasi. Sebagai contoh, selepas pembayaran pesanan berjaya, operasi potongan inventori terlibat Jika potongan inventori gagal, operasi pembayaran pesanan perlu ditarik balik dan inventori diberi pampasan pada masa yang sama.

Apabila melaksanakan transaksi teragih, terdapat dua kaedah utama mekanisme pampasan yang terlibat dalam go-zero, iaitu pampasan TCC dan pampasan SAGA. Antaranya, pampasan TCC ialah pelaksanaan protokol penyerahan tiga peringkat, iaitu mod "Cuba-Sahkan-Batal" Prinsipnya adalah untuk melaksanakan operasi pengesahan dan pembatalan yang aktif apabila melaksanakan operasi perniagaan. Pampasan SAGA ialah model pampasan yang didorong oleh peristiwa, iaitu, operasi berikutnya dilakukan dengan menghantar acara semasa pelaksanaan perniagaan.

Ambil pampasan TCC sebagai contoh proses pelaksanaannya adalah seperti berikut:

1 Perniagaan memulakan operasi Cuba, iaitu, melaksanakan operasi perniagaan yang sepadan.

2. Selepas operasi Cuba berjaya dilaksanakan, perniagaan memulakan operasi Sahkan, iaitu, hasil operasi diserahkan.

3 Jika operasi Sahkan berjaya, proses perniagaan akan tamat.

4 Jika operasi Sahkan gagal, perniagaan memulakan operasi Batal, iaitu operasi dibatalkan.

Melalui model penyerahan tiga fasa ini, ketekalan data antara perkhidmatan yang berbeza dalam sistem teragih dapat dipastikan, sekali gus menyelesaikan masalah transaksi teragih.

Melaksanakan mekanisme pampasan TCC dalam go-zero memerlukan penggunaan rangka kerja berpusat, iaitu komponen rangka kerja yang disertakan dengan go-zero. Dalam komponen rangka kerja go-zero, transaksi TCC terdiri daripada tiga bahagian: kaedah Cuba, Sahkan dan Batal standard, dan kaedah ini diuruskan secara seragam melalui pusat pendaftaran. Kaedah pelaksanaan khusus adalah seperti berikut:

1 Tentukan antara muka perniagaan dan warisi antara muka "go-zero/gateway/pkg/tcc.Tcc".

taip antara muka DemoTcc {

tcc.Tcc
Try(ctx context.Context, req *logic.OrderLogic) error
Confirm(ctx context.Context, req *logic.OrderLogic) error
Cancel(ctx context.Context, req *logic.OrderLogic) error

}

2 Rangka kerja menjana kod perkhidmatan Tcc secara automatik

$ goctl tcc demo

3. . Tulis kod logik perniagaan dalam direktori pengendali perkhidmatan, dan laksanakan kaedah Cuba, Sahkan dan Batal antara muka Tcc.

func (s Perkhidmatan) Cuba(ctx context.Context, req logic.OrderLogic) ralat {

//执行业务逻辑

}

func (s Service) Confirm(ctx context.Context, req logic.OrderLogic) ralat {

//确认操作

}

func (s Service) Cancel(ctx context.Context, req ralat logic.OrderLogic) {

//取消操作

}

4.

//Daftar demo perkhidmatan Tcc
service.RegisterTccCompensateDemo(zrpc.MustNewClient(zrpc.RpcClientConf{

Name:       conf.ReorderService.Service.Name(),
Balancer:   conf.ReorderService.Service.Balancer,
Direct:     true,
Timeout:    time.Second,
Mode:       zrpc.BROADCAST,

}))

Melalui langkah di atas, anda boleh lengkap Pelaksanaan mekanisme pampasan Tcc untuk transaksi yang diedarkan.

Menggunakan go-zero untuk melaksanakan pemprosesan transaksi teragih dengan mudah bukan sahaja boleh meningkatkan kebolehselenggaraan dan kebolehskalaan program, tetapi juga mengurangkan kos pembangunan pembangun dan kesukaran penyelenggaraan sistem. Sebagai salah satu rangka kerja pembangunan aplikasi teragih bahasa Go yang paling popular, go-zero boleh menyediakan rangka kerja pembangunan yang stabil dan persekitaran pembangunan yang kaya, dan telah menjadi pilihan pertama bagi semakin ramai pembangun dan perusahaan.

Atas ialah kandungan terperinci Melaksanakan pemprosesan transaksi teragih dengan mudah dengan go-zero. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn