Header ads

Header ads

Khi bạn cần xây dựng một ứng dụng bất đồng bộ với SQL Server, ví dụ 1 ứng dụng đặt hàng online. Ta xem kịch bản sau:

  • Khi khách hàng đặt hàng xong, bấm nút ‘Kết thúc’.
  • Máy chủ của ta nhận được dữ liệu, lúc này vẫn chưa lưu vô database mà lưu vô hàng đợi (dùng Service Broker trong SQL Server)
  • Ngay sau đó người dùng nhận được thông báo đại loại như ‘thông tin đặt hàng đã được tiếp nhận, chúng tôi sẽ liên hệ với bạn sau’.
  • Rồi đến 1 thời điểm nào đó, thông tin đặt hàng này lần lượt được lấy ra hàng đợi và xử lý tuần tự, lúc này mới chính thức được lưu vào database.

Microsoft cung cấp 2 giải pháp xử lý dữ liệu bất đồng bộ là MSMQ và SQL Server Service Broker.

Cho dù có hàng trăm, hàng nghìn người đặt hàng cùng lúc, thì dữ liệu đều được lưu vô hàng đợi, và xử lý tuần tự theo nguyên tắc FIFO – First in First out, sẽ đảm bảo hệ thống hoạt động ổn định, không bị thắt cổ chai.

Service Broker còn được xem như một giải pháp Load Balancing trong SQL Server.
Nếu dùng Service Broker, yêu cầu là database phải online. Khi cấu hình thì SQL Server Management Studio không hỗ trợ giao diện để ta cấu hình, mà ta phải dùng T-SQL.

Trước tiên phải enable Service Broker, có thể dùng SSMS hay lệnh sau:

ALTER DATABASE sample_database SET ENABLE_BROKER

 Sau đó tạo Message Type

?
1
2
3
CREATE MESSAGE TYPE YourMessageType
AUTHORIZATION dbo
VALIDATION = WELL_FORMED_XML
?
1
--Tiếp theo tạo 1 object  là Contract
?
1
2
3
4
5
6
7
CREATE CONTRACT MyContract
AUTHORIZATION dbo
(YourMessageType SENT BY ANY)
CREATE CONTRACT MyContract
AUTHORIZATION dbo
(YourMessageType SENT BY INITIATOR,
AnotherMessageType SENT BY TARGET)
Tiếp theo ta cần set up Queue, Queue sẽ tạo ra những table vật lý trong database. Khi setup Queue ta để ý vài option sau: Retention: nếu là On, sau khi message được nhận, nó sẽ không bị remove khỏi Queue, nếu là off, ngay sau khi message được nhận, nó sẽ được remove khỏi Queue.

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
- Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn