Hazelcast is an operational, in-memory, distributed computing platform for managing data and performing parallel execution for application speed and scale.
Eureka Server is an application that holds the information about all client-service applications. Every Micro service will register into the Eureka server and Eureka server knows all the client applications running on each port and IP address. Eureka Server is also known as Discovery Server.
Eureka is a REST (Representational State Transfer) based service that is primarily used in the cloud for locating services for the purpose of load balancing and failover of middle-tier servers. We call this service, the Eureka Server. Eureka also comes with a Java-based client component,the Eureka Client, which makes interactions with the service much easier. The client also has a built-in load balancer that does basic round-robin load balancing. At Netflix, a much more sophisticated load balancer wraps Eureka to provide weighted load balancing based on several factors like traffic, resource usage, error conditions etc to provide superior resiliency.
Because of its inherent nature, servers come and go. Unlike the traditional load balancers which work with servers with well known IP addresses and host names, in AWS, load balancing requires much more sophistication in registering and de-registering servers with load balancer on the fly. Since AWS does not yet provide a middle tier load balancer, Eureka fills a big gap in the area of mid-tier load balancing.
High Availability, Zones and Regions
Standalone Mode
Peer Awareness
When to Prefer IP Address
Securing The Eureka Server
Spring Cloud Config provides server and client-side support for externalized configuration in a distributed system. With the Config Server you have a central place to manage external properties for applications across all environments.
Actuator is a Spring Boot module, which adds REST/JMX endpoints to your application, so you can easily monitor and manage it in production. The endpoints offer health-check, metrics monitoring, access to logs, thread dumps, heap dumps, environmental info and more.
Actuator is powerful and great and it is easy and convenient to consume the endpoints with some other application - you just make a simple REST call. It is not so great when used by a human. For humans, it is much more convenient to have a nice user interface you can use to browse all the monitoring data and manage your application. This is actually what Spring Boot Admin Does. It provides you a nice UI layer on top of actuator endpoints with a few extra features on top.
It provides the following features for registered applications.
Show health status
Show details, like
JVM & memory metrics
micrometer.io metrics
Datasource metrics
Cache metrics
Show build-info number
Follow and download logfile
View jvm system- & environment-properties
View Spring Boot Configuration Properties
Support for Spring Cloud's postable /env- &/refresh-endpoint
Easy loglevel management
Interact with JMX-beans
View thread dump
View http-traces
View auditevents
View http-endpoints
View scheduled tasks
View and delete active sessions (using spring-session)
View Flyway / Liquibase database migrations
Download heapdump
Notification on status change (via e-mail, Slack, Hipchat, ...)
Event journal of status changes (non persistent)