I am reading Release It by Nygard and these are some of the things to remember:
- Use limits on queries. E.g. LIMIT 1 on Postgres or MySQL
- Watch out for point-point connections
- Set Socket.setSoTimeout() to protect against servers under heavy load
- Use circuit breakers to degrade functionality gracefully under load
- Return different errors for resource not available and application failures
- Fail fast, check availability of all required resources (ram, db, integration points, input)
- Purge data (database, caches, logs)
- Steady state
- Cooperative demand control, handshaking between client and server to allow clients to back off. Problematic with http as the setup and teardown of connections is often the most expensive. Alternatively consider health checks either from client or from load balancer. Build handshaking into lowlevel protocols.
Send en kommentar
Bemærk! Kun medlemmer af denne blog kan sende kommentarer.