Table of Contents
Hiểu được thách thức của sự thống nhất dữ liệu trong kho lưu trữ dữ liệu không có máy chủ
Dữ liệu không máy phục vụ như Amazon DynamoDB, Azure Cosmos DB, và Google Cloud Firestore cung cấp giá trị tự động, trả tiền phí sử dụng, và giảm chi phí hoạt động. Tuy nhiên, bản chất phân phối của họ giới thiệu các dữ liệu cơ bản trong thống nhất. Khi một ứng dụng đọc dữ liệu ngay lập tức sau khi viết nó, người dùng mong đợi xem giá trị mới nhất. Trong một hệ thống phân phối toàn cầu, đạt được bảo đảm là không cần thiết. Mặc định [FT: 0] Định lý [FL: FL] [FL] Định lý [FL] [FL] nhắc nhở chúng tôi rằng một kho dữ liệu có thể phân phối hai: sự đảm bảo là: sự đảm bảo, phần, và khả năng hỗ trợ tính năng hỗ trợ thường là: [phụ đề, và các dịch vụ không bền vững].
Tính nhất quán không phải là một tính chất riêng lẻ. Nạp khác thì cần bảo đảm khác nhau. Chẳng hạn, hệ thống kiểm kê e-commerce phải không bao giờ quá giá trị, mà đòi hỏi sự nhất quán cho việc cập nhật chứng khoán. Một hệ thống y tế xã hội, ở tay kia, có thể chịu đựng vài giây của sự trễ trong khi một bản sao mới. Chọn kiểu thiết bị xác lập đúng và thực hiện mẫu bổ sung để đảm bảo ứng dụng không máy phục vụ của bạn hoạt động dự đoán khi vẫn còn có lợi ích từ tính độ đàn hồi của nền tảng.
Mô hình độ nhất quán trong các cửa hàng không có máy phục vụ
Kiên định mạnh mẽ
Bảo đảm rằng mỗi đọc được trả lại gần đây nhất. Trong hệ thống không máy chủ, điều này thường được thực hiện bằng cách đọc từ bản sao chính hoặc bằng cách sử dụng giao thức dựa trên số. Dịch vụ như DynamoDB bảo đảm [FLT: 0] nhất quán [FLT: 1] (bằng cách thêm chi phí và chức năng) và Azuure Cosmo DB cung cấp sự nhất quán cho tài khoản phân phối toàn cầu bằng cách sử dụng tính năng thống nhất khi giao dịch, xác thực, hoặc đặt chỗ riêng.
Sự nhất quán đều đặn
Sự nhất quán theo chiều dọc là mặc định cho phần lớn các cửa hàng dữ liệu không máy chủ. Nó có nghĩa là nếu không có văn bản mới nào được viết tới mục dữ liệu, cuối cùng (thường là trong vòng vài giây) tất cả các bản sao sẽ hội tụ lại với cùng giá trị. Mô hình này cung cấp tính năng hữu dụng tốt nhất và ít nhất. Nó là lý tưởng cho việc tải dữ liệu, danh mục sản phẩm, và hệ thống ghi nhật ký nơi ít chữ viết được chấp nhận cho các cửa sổ ngắn.
Hợp nhất giữa hai bên
Sự nhất quán giữa hai cách hoạt động liên quan với nhau. Nếu thao tác A (hình ảnh ngày hôm qua) xảy ra trước thao tác B (góm lại lời chú giải), thì bất cứ người quan sát nào sẽ thấy A trước B. Mô hình này nằm giữa mạnh mẽ và cuối cùng nhất quán và được hỗ trợ bởi các dịch vụ như [FLT: 0] Dữ liệu đám mây [FLT: 1]. Nó có ích cho việc sửa đổi, cung cấp dữ liệu xã hội và trò chuyện với các ứng dụng có ý nghĩa.
Những thực hành tốt nhất để duy trì sự nhất quán
1. Chọn mô hình thống nhất hợp lệ cho mỗi thao tác
Thay vì chọn một cấp nhất quán cho toàn bộ ứng dụng, hãy thiết kế mỗi thao tác chỉ trích, hoặc viết các cuộc gọi trong khi để lại một yêu cầu nhất quán riêng. Trong DynamoDB, bạn có thể xác định [FLT: 0] cho từng cá nhân [FLT: 1) hoặc ) trong khi để lại một số người đọc nhất quán. Việc tiếp cận cân bằng và sửa đổi độ hiệu suất. Tài liệu và kiểm tra xem xét chúng có thể duy trì sự hiệu quả trong phạm vi chấp nhận được không.
2. Dùng giao dịch phân phối với Sagas hoặc cam kết hai chiều
Khi một tiến trình kinh doanh trải rộng cửa hàng hay dịch vụ, bạn cần một cơ chế để bảo trì nguyên tử. [FLT: 0] Các giao dịch — như giao thức hai phần thực hiện (PC) — đảm bảo rằng mỗi bên tham gia hoặc là tham gia sẽ cùng nhau. [LTT: 0] Tuy nhiên, 2PC có thể được chậm và giảm khả năng sẵn sàng. Một thay thế là [FL:2] mẫu [FL:2] [FL:], khi giao dịch [FL: 3], mỗi thao tác phát hành động phát sinh một sự kiện gây ra một hành động mà gây ra khi máy phục vụ thất bại. Nhiều trình phục vụ không hỗ trợ thực hiện giao dịch [FD] [FD]
3. Chiến thuật phân giải xung đột
Hiện thời, việc sắp xếp dữ liệu giống nhau trong một mục đa nền có thể tạo xung đột. Các cửa hàng không máy phục vụ thường dùng [FW:] [LT: 1] [FLT: 1], giữ nhãn thời gian gần đây nhất. Trong khi các cửa hàng không có máy phục vụ có thể mất dữ liệu nếu đồng hồ không đồng bộ. Đối với các ngữ phong phú, hãy dùng [FT:2] véc tơ [FLT:] [FT:]], hoặc [FTTTTTTTT: t] (KTTTTTTTTTTTTTTTSB - B] để giải quyết đa dạng dữ liệu có khả năng: [FB] và điều kiện tự động hoá tự động hoá tập tin.
4. Thao tác và đòi hỏi quá đáng
Lỗi mạng hoặc lỗi tạm thời có thể gây ra các ứng dụng khách, mà có thể gây ra tiến trình thay đổi trùng. Việc thiết kế thao tác là [FLT: 0] [FLT: 1] [FLT: 1]] có thể loại bỏ rủi ro đó. Lấy thí dụ, chỉ định một phím ký tự vô hạn độc nhất cho mỗi yêu cầu ghi; máy phục vụ có thể hủy bỏ các yêu cầu có chung phím. Nhiều máy phục vụ không có máy chủ hỗ trợ khả năng xác thực quyền viết. Kết hợp này với số mũ lùi và suy giảm lý, cố gắng giảm sự nhất quán và duy trì sự nhất quán định mà không cần quá nhiều hậu phương.
5 Theo dõi nội dung dữ liệu với thay đổi luồng và thính giả
Trong môi trường không máy chủ, bạn có thể dùng [FLT: 0] thu dữ liệu thay đổi (CDC) [CDC:1] [FLT: 1] [Các tính năng như DynamoDG, Cosmos DGGGS, hoặc Firestores luôn luôn có khả năng kiểm tra mọi thay đổi thời gian thực. Đặt chức năng lambda hoặc mây để xác định dữ liệu không thay đổi sau mỗi thay đổi. Chẳng hạn, một ứng dụng ngân hàng có thể đăng ký tài khoản để chuyển giao dịch và xác nhận tính cân bằng tổng số lượng tín dụng bị mất tín dụng. Các chương trình kiểm tra thường xuyên trên một chương trình lưu trữ và lưu trữ dịch sự lưu động đúng đắn.
6. Làm báp têm cho dữ liệu sao chép cho trường hợp sử dụng của bạn
Việc sao lưu toàn cục cải thiện khả năng hoạt động [FLT: 1) v. [FLT: 2] tăng cường khả năng hoạt động [FLT:] [FLT:]] khi vẫn còn sử dụng khả năng thẩm thấu [FLT:] [FLT: 2]],] khi vẫn còn sử dụng các bản sao [FLT:]. Tính năng cao . Tính năng hoạt động (có chủ động (FLT: 0], [FLTT: 0] cần sự giải quyết thấp hơn nhưng mạnh mẽ. Hơn nữa, có tính năng hiệu quả (các bản sao chính, bản sao) cung cấp tính năng nhất, khi vẫn còn sử dụng khả năng đọc từ dịch vụ phiên bản gần nhất.
Những khuôn mẫu kiến trúc bảo tồn sự nhất quán
Lệnh Truy vấn Sự phân biệt chủng tộc (CQRS)
Các mô hình này đặc biệt khác nhau giữa các mô hình đọc, cho phép tối ưu hóa độc lập. Ghi vào một cửa hàng nhất định; đọc từ các dự đoán nhất quán. Mẫu này đặc biệt mạnh mẽ khi kết hợp với một [FLT: 0] mở rộng [FLT: 1], nơi mọi thay đổi trạng thái được lưu trữ như là các sự kiện không thể thay đổi. Các mô hình đọc có thể được tái lập từ các vấn đề đăng nhập nếu có vấn đề nhất quán.
Sự kiện tranh chấp và sự nhất quán
Cho phép sử dụng chuỗi các sự kiện thay vì trạng thái hiện thời. Vì các sự kiện chỉ phụ và không thay đổi, chúng đều nhất quán. Các dịch vụ như DynamoDB hay Cosmos DB có thể hoạt động như cửa hàng sự kiện. Người tiêu dùng xử lý các sự kiện nhanh chóng, cuối cùng xây dựng mô hình. Trong trường hợp hiếm của xung đột, bạn có thể xem lại dòng lệnh kiểm tra đã biết. Mẫu này đảm bảo khả năng [FL: 0] khả năng kiểm tra [FL: 1] trong khi làm cho nó trở nên thống nhất về ranh giới.
Name
Khi một hàm không máy phục vụ viết vào cơ sở dữ liệu, rồi gửi một thông điệp đến một hàng đợi, hai thao tác có thể không phải là nguyên tử. [FLT: 0] Mô hình [FLT: 0] [FLT: 1]] giải quyết được điều này bằng cách lưu trữ thông điệp trong cùng một cơ sở dữ liệu trong cùng một cơ sở dữ liệu. Một tiến trình riêng (như bộ xử lý dòng) đọc hộp ra và xuất bản thông điệp. Điều này bảo đảm rằng cơ sở dữ liệu được ghi và cả hai gửi đi, được thực hiện hoặc cả hai đều được cuộn lại, bảo tồn liên kết qua các dịch vụ. SaaSeSeSe (L: T: T-AWT)
Giải quyết các trường hợp đặc biệt: Bản phân phối địa lý và tác giả ngoại tuyến
Ứng dụng « Mobile và Iert » thường hoạt động ngoại tuyến và đồng bộ sau. Nhà cung cấp SDK không máy phục vụ cung cấp tính kiên trì ngoại tuyến với sự đồng bộ hóa giải quyết xung đột qua các tùy chọn giải quyết xung đột. Lấy thí dụ, ứng dụng AWS AppSSc với DyDB có thể hợp nhất phiên bản dựa trên nhãn thời gian hoặc các ứng dụng khách hàng xác định. Khi sử dụng thư viện như thế, luôn luôn kiểm tra độ phân giải logic trong mạng thực và theo số xung đột.
Đối với sự nhất quán đa mục tiêu, hãy dùng để hợp nhất ), nơi có thể có một khái niệm được hỗ trợ bởi Cosmos DB để nhóm các mục liên quan đến nhau. Trường hợp này ngăn cản hình ảnh của người dùng được cập nhật trong vùng A nhưng sự cập nhật sinh học (trong cùng một nhóm) chưa đến trong vùng B.
Kiểm tra và kiểm tra hiệu quả
Những lỗi tương thích thường chỉ xuất hiện dưới các vật thể phân phối. Viết những thử nghiệm hợp nhất với một trình giả lập không có máy chủ thật hay một đám mây, rồi mô phỏng việc ghi và đọc. Công cụ như [FLT: 0]; [FLT: 1] có thể xác nhận rằng cửa hàng dữ liệu của bạn hoạt động đúng dưới sự phân chia mạng. Để thực hiện việc tạo, việc sử dụng chim yến và dần dần chuyển giao thông sang đường dẫn mới trong khi theo dõi các đường dẫn bộ phận nhất quán. Định nghĩa là sự chậm (thời gian có thể chấp nhận được) và đo đạc chúng với giao dịch tổng hợp.
Tóm tắt
Theo dõi sự bảo đảm nhất quán của hệ thống này qua dòng thay đổi và kiểm toán, và áp dụng các mẫu như CQS, và các mẫu thiết kế ngoài đời để duy trì sự trung thực qua các công việc dịch vụ. Với các thực hành tốt nhất này, hậu phương máy chủ không có gì sẽ cung cấp một kinh nghiệm nhất quán, đúng đắn cho người dùng.