Title Page Copyright and Credits Java EE 8 Microservices About Packt Why subscribe? Packt.com Contributors About the authors About the reviewer(s) Packt is searching for authors like you Preface Who this book is for What this book covers To get the most out of this book Download the example code files Conventions used Get in touch Reviews From Monoliths to Microservices What is Monolith design? The challenges associated with Monolith design Service-oriented architecture Understanding Microservices Advantages of Microservices Challenges with Microservices Summary Creating your first Microservice Setting up the Development Environment Environment installation Installing Java Development Kit Installing Apache Maven Downloading development tools cURL Postman Creating the project with Maven Your very first Microservice A Java EE Microservice Coding the Microservice Configuring the Microservice Code summary Running the Microservice Building and running the Weather Microservice Invoking the Microservice A Spring Boot Microservice Creating the project with Maven Coding a Spring Boot Microservice Building the Spring Boot Weather Microservice Running the Spring Boot Weather Microservice Summary Connecting Microservices Together Building a client Using third-party reactive frameworks Connecting two Microservices together Creating and pooling web targets Making Microservices discoverable Snoop Running Snoop and registering our service Consuming registered services Eureka Installing Eureka Server Registering the service Discovering and invoking the service Summary Asynchronous Communication for Microservices Speeding up services with the Reactive API Collecting results of multiple parallel calls Completing a REST response asynchronously Asynchronous exceptions Specifying and handling asynchronous timeouts A complete reactive REST service Simplifying the code with a third-party reactive framework Streaming responses with SSE Building an asynchronous service Invoking the SSE service Invoking the SSE service from JavaScript Building an SSE Java client Automatically reconnecting of SSE clients Two-way asynchronous services with WebSocket A quick comparison between HTTP and WebSockets Decoupling services with message-oriented middleware An example of message-oriented middleware Summary Path to Robust Microservices Building for failure Isolating the failure The bulkhead pattern Stateless services The robustness principle Handling the failure Asynchronous communication Fail fast Timeouts Circuit breakers A circuit breaker code example Fan out and fastest response Recovering from failure Preparing for failure Summary Scaling Microservices What is scalability? Microservices and scalability Stateless versus Stateful scalability Scaling on the cloud Going serverless with microservices Scaling databases with Microservices Scaling Microservices with caching Summary Securing Microservices Securing Microservices with JWT Anatomy of a JWT How does JWT work for Authentication? Java Security API – JSR 375 The HTTPAuthenticationMechanism API Basic HTTP Authentication Form-based Authentication Custom form-based Authentication Identity Store Built-in and Custom IdentityStores The security context API Spring Security with Spring-Boot-based Microservices Configuring Spring Security with the In-memory realm Configuring Spring Security with the database realm HTTPS – The Secured Protocol Summary Monitoring Microservices What is monitoring and why is it required? Monitoring Microservices Understanding core concepts and terms Taking a closer look using an example Creating the example services Monitoring Microservices with Zipkin Case 1 – service is unresponsive Case 2 – service responding slowly Tools for monitoring Microservices Prometheus for monitoring and alerting Elasticsearch, Logstash, and Kibana (ELK) Considering more tools Summary Building, Packaging, and Running Microservices Introduction to Java Packaging Understanding Archives Fat packages FatWAR packaging FatJAR packaging Java EE MicroService solutions OpenLiberty The OpenLiberty Maven plugin Configuring OpenLiberty The Weather Microservice with OpenLiberty The Gradle plugin WildFly Swarm The WildFly Swarm generator The WildFly Swarm Maven plugin HollowJAR Payara Micro The Payara Micro Maven plugin The Payara Micro UberJar The Deployment Architecture for Microservices Summary Documenting and Testing MicroServices Documenting Microservices Swagger APIdoc Additional Documentation Frameworks Testing Microservices Unit testing Integration Testing Service Testing End-to-end testing Levels of Testing Summary Other Books You May Enjoy Leave a review - let other readers know what you think