[JAVA] What is Eclipse Micro Profile?

Overview

In the previous Article, I introduced how to get started with Eclipse Micro Profile. In this article, what is Eclipse MicroProfile in the first place? I'd like to introduce_______

How did you get born

It was originally created by multiple vendors and the Java community who were concerned about the slow Java EE specification process and the lack of adequate resources.

The feature is that while incorporating some of the specifications familiar in Java EE such as JAX-RS and CDI, the functions required for the microservice architecture will be incorporated independently.

image.png

After that, around January 2017, it officially joined the Eclipse Foundation.

https://www.publickey1.jp/blog/17/javamicroprofileeclipse.html

Products and implementations that comply with the specifications

This is also an excerpt from the white paper mentioned above.

image.png

The points to note here are as follows.

--JBoss EAP is also MicroProfile compliant despite being a Java EE server --Open Liberty is compliant with MicroProfile even though it is compliant with JavaEE's WebProfile specification. --Only Fujitsu supports Java EE server vendors in Japan.

Eclipse MicroProfile 3.0 specification list

Finally, although it is simple, I will explain each specification word by word.

Eclipse MicroProfile Config Makes it easy to set up applications on the cloud or as a microservice. Specifically, if you hard code the settings in the application, you will need to build the application each time depending on the environment, so you can overwrite the settings with the arguments at startup and the contents of environment variables. can do. Spring Boot has a similar function.

Eclipse MicroProfile Fault Tolerance When creating an application as a microservice, it is a function that aims to separate the business logic from the relationship with another service. Specific features include TimeOut, RetryPolicy, Fallback, Bulkhead, and Circuit Breaker.

Eclipse MicroProfile Health As a service called a microservice, it is a specification that provides a function that indicates whether the service is in a responsive and healthy state. Not only Up and Down, but also captured information can be returned.

Eclipse MicroProfile JWT Authentication It uses OpenID Connect (OIDC) and JSON Web Tokens (JWT) to provide authentication capabilities. It is assumed that it will be provided as a microservice created by role based access control (RBAC).

Eclipse MicroProfile Metrics It is a specification that shows the function that provides the necessary metrics during operation.

Eclipse MicroProfile OpenAPI It is a specification that provides a function that can output API documentation that conforms to the OpenAPI v3 specification, which is an OpenAPI specification for microservices.

Eclipse MicroProfile OpenTracing For microservices, it's important to have visibility into which services are delayed and which services are in error at what frequency. You can output the trace result.

Eclipse MicroProfile Rest Client It is a specification that provides a function that enables more type-safe implementation based on the Rest Client creation of JavaEE's JAX-RS 2.1 API.

Specifications inherited from JavaEE

Summary

This time I explained Eclipse Micro Profile without code. I skipped the story of UberJar, but I think I somehow got the whole picture.

I think that there were some useful ones because of the specifications familiar with JavaEE + the functions required for microservices. Personally, I think that Config and other apps will be easier to develop if they have this function, regardless of microservices, so I thought it would be nice if they could be used easily elsewhere.

Recommended Posts

What is Eclipse Micro Profile?
What is Cubby
What is Docker?
What is null? ]
What is Keycloak
What is maven?
What is Jackson?
What is Docker
What is self
What is Jenkins
What is ArgumentMatcher?
What is IM-Juggling?
What is params
What is SLF4J?
What is Facade? ??
What is Java <>?
What is Gradle?
What is POJO
What is Java
What is centOS
What is RubyGem?
What is programming?
What is before_action?
What is Docker
What is Byte?
What is Tomcat
How to get started with Eclipse Micro Profile
What is Maven Assembly?
What is `docker-compose up`?
What is a constructor?
What is vue cli
What is an interface?
What is Ruby's self?
Is Eclipse IDE dying?
What is hard coding?
What is a stream
What is Ruby's attr_accessor?
What is Java Encapsulation?
What is permission denied?
What is instance control?
What is an initializer?
What is Spring Tools 4
What is an operator?
What is object orientation?
What is Guava's @VisibleForTesting?
What is MVC model?
What is an annotation?
What is Java technology?
What is Java API-java
What is @ (instance variable)?
What is Gradle's Artifact?
What is JPA Auditing?
[Swift] What is dismiss?
[Java] What is flatMap?
What is a Servlet?
What is web development?
[Java] What is JavaBeans?
[Android] What is Context? ??
[Java] What is ArrayList?
[Ruby] What is true?
What is object-oriented after all?