Điểm kiểm tra và trang trí liên quan đến thư viện AWS KCL như thế nào?Điểm kiểm soát Amazon KCL và Trim Horizon
Các trang tài liệu Xử lý Startup, Shutdown, và tốc độ nhâp nói:
Theo mặc định, KCL bắt đầu đọc bản ghi từ đỉnh của dòng ;, đó là kỷ lục được thêm gần đây nhất. Trong cấu hình này, nếu ứng dụng tạo dữ liệu thêm bản ghi vào luồng trước khi bất kỳ bộ xử lý ghi nào đang chạy, các bản ghi không được bộ xử lý ghi đọc sau khi chúng khởi động.
Để thay đổi hành vi của các bộ vi xử lý kỷ lục để nó luôn đọc dữ liệu từ đầu dòng, thiết lập giá trị sau trong các thuộc tính tập tin cho các ứng dụng Amazon Kinesis Streams của bạn:
initialPositionInStream = TRIM_HORIZON
Tài liệu trang Phát triển một Amazon Kinesis Thư viện khách tiêu dùng trong Java nói:
Các luồng yêu cầu bộ xử lý bản ghi để theo dõi các bản ghi đã được xử lý trong phân đoạn. KCL sẽ chăm sóc theo dõi này cho bạn bằng cách chuyển một máy kiểm tra (IRecordProcessorCheckpointer) tới processRecords. Bộ xử lý bản ghi gọi phương thức trạm kiểm soát trên giao diện này để thông báo cho KCL về cách đến nay nó đã tiến triển trong việc xử lý các bản ghi trong phân đoạn. Trong sự kiện mà nhân viên thất bại, KCL sử dụng thông tin này để khởi động lại việc xử lý phân đoạn tại hồ sơ được xử lý cuối cùng đã biết.
Trang đầu tiên dường như để nói rằng KCL sơ yếu lý lịch ở mũi của con suối, trang thứ hai tại kỷ lục cuối cùng xử lý được biết đến (đã được đánh dấu là xử lý bởi các RecordProcessor
sử dụng checkpointer
). Trong trường hợp của tôi, tôi chắc chắn cần phải khởi động lại ở bản ghi được xử lý cuối cùng đã biết. Tôi có cần đặt initialPositionInStream thành TRIM_HORIZON không?
Cảm ơn bạn, vì vậy trong thực tế, initialPositiionInStream áp dụng để xác định giá trị để bắt đầu nếu không có chekpoint có sẵn? – Edmondo1984
Có, được sử dụng khi KCL của bạn không lưu lại các trạm kiểm soát. –