Here you can find lists of great Distributed Systems books are or have been used to teach courses at Princeton.
By: Andrew S. Tanenbaum, Maarten van Steen
By: Kenneth P Birman