KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Consider a few web server instances running in parallel. Each server holds a reference to a single shared "Status keeper", whose role is keeping the last N requests from all servers. For example ( N=3 ): Server a: "Request id = ABCD" Status keeper=["ABCD"] Server b: "Request id = XYZZ" Status keeper=["ABCD", "XYZZ"] Server c: "Request id = 1234" Status keeper=["ABCD", "XYZZ", "1234"] Server b: "Request id = FOO" Status keeper=["XYZZ", "1234", "FOO"] Server a: "Request id = BAR" Status keeper=["1234", "FOO", "BAR"] At any point in time, the "Status keeper" might be called from a monitoring application that reads these last N requests for an SLA report. What's the best way to implement this producer-consumer scenario in Java, giving the web servers higher priority than the SLA report? CircularFifoBuffer seems to be the appropriate data structure to hold the requests, but I'm not sure what's the optimal way to implement efficient concurrency.
Tags (comma-separated)
Save Edits
Cancel