Book Image

Java EE 8 High Performance

By : Romain Manni-Bucau
Book Image

Java EE 8 High Performance

By: Romain Manni-Bucau

Overview of this book

The ease with which we write applications has been increasing, but with this comes the need to address their performance. A balancing act between easily implementing complex applications and keeping their performance optimal is a present-day need. In this book, we explore how to achieve this crucial balance while developing and deploying applications with Java EE 8. The book starts by analyzing various Java EE specifications to identify those potentially affecting performance adversely. Then, we move on to monitoring techniques that enable us to identify performance bottlenecks and optimize performance metrics. Next, we look at techniques that help us achieve high performance: memory optimization, concurrency, multi-threading, scaling, and caching. We also look at fault tolerance solutions and the importance of logging. Lastly, you will learn to benchmark your application and also implement solutions for continuous performance evaluation. By the end of the book, you will have gained insights into various techniques and solutions that will help create high-performance applications in the Java EE 8 environment.
Table of Contents (12 chapters)

Bulk head

Bulk head is a pattern designed to ensure that no part of the system deeply impacts other system areas. The name comes from a common solution used in ships to ensure that if there is a hole in the hull, it doesn't lead to the boat sinking.

Here, for instance, the second area has a hole and the water is coming into the section but the boat will not sink, as the other sections are isolated.

The Titanic used this technique but the isolation was not fully done from down to top for passengers and crew members comfort. And we all know the outcome of that choice. That is why, if you go with isolation, it is important to make sure that it is complete; otherwise better not do anything.

What does it mean for an application? It means that each service that can sink your application should be isolated from the other ones. This isolation is mainly about the execution and, therefore...