Pro Java Clustering and Scalability: Building Real-Time Apps with Spring, Cassandra, Redis, WebSocket and RabbitMQ

  • 1h 19m
  • Jorge Acetozi
  • Apress
  • 2017

Build clustered and scalable Java-based, real-time applications using Spring Framework, Boot, WebSocket, Cassandra, Redis and RabbitMQ. In this book, you'll tie all this together with a dive-in case study, a real-time scalable chat application under differing scenarios. Pro Java Clustering and Scalability also discusses how to horizontally scale the WebSocket chat application using a full STOMP broker such as RabbitMQ.

Although this is a programming book, it also discusses many interesting infrastructure topics and tips about continuous delivery, Docker, NoSQL (Cassandra and Redis) and other related technologies.

What You Will Learn

  • Handle clustering and scalability using various open source Java, microservices, and web services tools and technologies
  • Use Spring Framework, Boot, and other Spring technologies
  • Integrate with Redis, RabbitMQ, Cassandra, NoSQL, and much more
  • Test the case study code under various scenarios and stresses

Who This Book Is For

Experienced Java developers with at least some prior experience with Java, especially Spring Framework, Boot and other tools, and some web services.

About the Author

Jorge Acetozi is a Software Engineer who spends almost his whole day having fun with things like AWS, CoreOS, Kubernetes, Docker, Terraform, Cassandra, Redis, Elasticsearch, Graylog, New Relic, Sensu, Logstash, RabbitMQ, Kafka, and Spring Boot. He loves things like deploying applications in production while thousands of users are online, monitoring the infrastructure and acting fast when monitoring tools decides to challenge his heart’s health!

In this Book

  • Docker
  • Prerequisites
  • Executing the Project Locally
  • Simulating a Conversation
  • Setting Up the Development Environment
  • Understanding the Relationship Between Domain and Architecture
  • Introduction to NoSQL
  • The Spring Framework
  • WebSocket
  • Spring WebSocket
  • Single-Node Chat Architecture
  • Multinode Chat Architecture
  • Horizontally Scaling Stateful Web Applications
  • Changing the Application Language
  • Login
  • New Account
  • New Chat Room
  • Joining the Chat Room
  • Sending a User's Public Messages Over WebSocket
  • Sending a User's Private Messages Over WebSocket
  • Lazy Deployments vs. Fast Deployments
  • Continuous Delivery
  • Types of Automated Tests
  • Unit Tests
  • Integration Tests
  • Splitting Unit Tests from Integration Tests Using Maven Plug-ins
  • Continuous Integration Server