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)

Be Fault-Tolerant

For years, Java EE has been about putting the maximum number of applications inside a single application server, but it has been changing for a few years now. It has become more common to deploy a single application in a container instance and to reduce the application size to handle a single responsibility. The direct implication of such a paradigm change is that a system, as a whole, is now composed of far more applications than before, and we rely more and more on remote communications.

In such a context, the performance of one application directly depends on another application, and it is important to be able to limit the side effects between applications. To ensure that your applications identified the impact of its environment and can work with such constraints, we will cover the following topics in this chapter:

  • Load balancing on clients and servers
  • Fail...