2014-11-24 17 views
7

Có cơ sở nào trong công thức khóa Apache Curator (hoặc trình độ thấp hơn ZooKeeper) cho tự động nhả ổ khóa đã vượt quá một số TTL không? Nếu không, liệu có cách nào tốt nhất để giải quyết vấn đề đó? Tôi thấy rằng Curator tự động giải phóng ổ khóa trong trường hợp kết nối máy khách bị mất, điều này thật tuyệt ... và thời gian chờ trên khóa chuyển đổi cũng hữu ích.Apache Zookeeper/Curator time-to-live trên ổ khóa

Tôi tự hỏi mức độ nào tôi cần để bảo vệ hệ thống của mình bằng cách thực hiện công việc định kỳ tìm kiếm các khóa đã có từ lâu và tự phát hành chúng. Tôi sẽ làm điều đó bằng cách có quá trình riêng biệt của tôi trực tiếp xóa ZNode có liên quan?

Trả lời

7

Khóa của người quản lý được triển khai bằng cách sử dụng các mã số EPHEMERAL. Vì vậy, nếu ngăn chứa khóa trở nên không ổn định theo một cách nào đó, ZooKeeper sẽ tự động nhả khóa. Nếu bạn đang tìm cách thu hồi các khóa do các quy trình khác nắm giữ, một số công thức chế biến khóa của Curator có cơ sở thu hồi hợp tác xã. Ngoài ra, xóa một khóa từ bên dưới một quá trình có vẻ như nó sẽ gây ra sự bất ổn lớn. Tôi không thể nghĩ ra một lý do chính đáng để làm điều đó.

(lưu ý: Tôi là tác giả chính của Curator)

+0

Cảm ơn bạn đã trả lời! Đã hy vọng bạn sẽ thấy điều này và tôi đã đánh giá cao các đại diện SO khác của bạn. Chắc chắn nhận thức được việc xử lý tự động của một máy khách ZK bị mất kết nối của nó và hợp tác xã bị thu hồi. Có lẽ tôi đang quá hoang tưởng nhưng tôi đang sử dụng ZK/Curator như là một chi tiết thực hiện của một thư viện mà không phân phối khóa. Không kiểm soát mã thực hiện khi khóa được giữ. Tôi cho rằng tôi có thể tóm tắt khía cạnh hợp tác thu hồi và do đó có cách xử lý mã khách hàng không đúng. Cảm ơn vi đa trả lơi. –

3

FYI - đây là 2 năm sau đó. Tôi đã viết và đã chấp nhận TTL Nodes cho ZooKeeper (mà, tất nhiên, Curator sẽ hỗ trợ). Bây giờ nó đã thành thạo và sẽ được phát hành trong tương lai của ZooKeeper và Curator.

https://issues.apache.org/jira/browse/ZOOKEEPER-2169

Các vấn đề liên quan