NATS is a mature, high-performance publish/subscribe messaging system that’s part of the Cloud Native Computing Foundation (CNCF). NATS has a goal of connecting services in the simplest, most secure and reliable way possible, and cloud native applications built using NATS inherit much of that simplicity and become easier to operate, benefiting from the performance and resiliency characteristics from the server.
Waldemar Quevedo walks you through how to build an application using NATS and how to set up, deploy, and operate a NATS cluster on top of Kubernetes. You’ll learn core NATS features like publish/subscribe, load-balanced queue subscribers, request/response, and handing connection events and examine NATS cluster setup and client application failover, graceful NATS server shutdown and NATS server configuration reload, and graceful client shutdown with NATS Drain mode. You’ll also learn how to secure a NATS cluster with Transport Layer Security (TLS) and secure streams and services with permissions, account isolation and NATS keys (NKEYS) (ed25519 based), and decentralized permissions via JSON Web Tokens (JWTs).
After covering the basics, Waldemar dives into NATS on Kubernetes, explaining how to use the NATS operator to quickly set up a secure cluster and how to set up Prometheus monitoring to monitor NATS and NATS applications. You’ll also learn global uses for NATS, such as NATS gateways and superclusters and deploying a NATS supercluster on top of Kubernetes, and see how to handle potential issues with NATS, such as slow consumers, application debugging, and remotely introspecting message streams and services.
Waldemar (Wally) Quevedo is a software engineer at Synadia and is a core maintainer of NATS and author of Practical NATS. Previously, he worked on a container orchestration system that used NATS for its control plane at Apcera and formed part of the PaaS team at Rakuten in Tokyo.
©2019, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • email@example.com