Tôi muốn một số thông tin về luồng dữ liệu trong quy trình Xử lý hàng loạt mùa xuân nhưng không tìm thấy những gì tôi đang tìm kiếm trên Internet (mặc dù some useful questions trên trang web này).Spring Batch quản lý các giao dịch (với nhiều nguồn dữ liệu có thể) như thế nào?
Tôi đang cố gắng thiết lập các tiêu chuẩn để sử dụng Spring Batch trong công ty và chúng tôi tự hỏi Spring Batch hoạt động như thế nào khi một số bộ xử lý trong một bước cập nhật dữ liệu trên các nguồn dữ liệu khác nhau.
Câu hỏi này tập trung vào một quá trình chunked nhưng cảm thấy tự do để cung cấp thông tin về các chế độ khác. Từ những gì tôi đã nhìn thấy (xin vui lòng sửa tôi nếu tôi sai), khi một dòng được đọc, nó theo toàn bộ dòng chảy (đọc, xử lý, ghi) trước khi đọc tiếp theo (trái ngược với xử lý silo). nơi người đọc sẽ xử lý tất cả các dòng, gửi chúng đến bộ vi xử lý, v.v.).
Trong trường hợp của tôi, một số bộ xử lý đọc dữ liệu (trong cơ sở dữ liệu khác nhau) và cập nhật chúng trong tiến trình, và cuối cùng người viết chèn dữ liệu vào một DB khác. Hiện tại, JobRepository không được liên kết với một cơ sở dữ liệu, nhưng đó sẽ là một cơ sở dữ liệu độc lập, làm cho mọi thứ trở nên phức tạp hơn một chút.
Không thể thay đổi mô hình này vì dữ liệu thuộc về một số lĩnh vực kinh doanh.
Giao dịch được quản lý trong trường hợp này như thế nào? Dữ liệu có được cam kết chỉ khi đoạn dữ liệu đầy đủ được xử lý không? Và sau đó, có quản lý cam kết 2 pha không? Nó được đảm bảo như thế nào? Những gì phát triển hoặc cấu hình nên được thực hiện để đảm bảo tính nhất quán của dữ liệu?
Nói chung, đề xuất của bạn sẽ như thế nào trong trường hợp tương tự?
Cảm ơn câu trả lời của bạn. Chúng tôi sẽ phải đối mặt với tình hình cơ sở dữ liệu nhiều (mỗi ngành kinh doanh có DB của riêng mình và đôi khi chúng ta cần phải truy cập vào một số yếu tố kinh doanh). Đó là những yếu tố hữu ích mặc dù. – Chop
vâng tôi đã suy nghĩ về điều này, bạn sẽ phải cấu trúc nó để sự kiện đến từ một nguồn duy nhất và bước quy trình có khả năng truy vấn các cơ sở dữ liệu khác nhau (sẽ xảy ra trong giao dịch đã thiết lập) và sau đó cập nhật db mục tiêu.Hoặc có thể có một cái gì đó tổng hợp các sự kiện từ các nhà sản xuất khác nhau và sau đó có một bộ xử lý duy nhất thực sự thực hiện các bản cập nhật. – stringy05