@Mr-Governor
Губернирую

Как писать микросервсиы на Java + Docker?

Я поработал с node.js + docker, и меня очень интересует Java и как на ней пишут микросерисы, поэтому у меня есть несколько вопросов, прошу помочь разобраться в этом.

1. В Node.js для запуска сервера обычно используют express.js, а что для этого используется в Java? (Servlet, Spring или что-то еще?)
2. В Node.js сервисы обычно запускают в Docker, я слышал что в Java для этого используют Tomcat, в чем разница между ними? (или это вообще разные вещи?)
3. Допустим я сделал сервер на Servlet, как запускать это в docker контейнере?
4. Если я запущу 10 Java сервисов в отдельных Docker контейнерах, в каждом из них будет отдельный экземпляр JRE\JDK?
5. Преимущество Java мискросервисов перед Node.js? (или наоборот)

Я в Java не силен, если можете добавить от себя, буду рад. Очень важно увидеть мнение адекватных людей (не зануд).
  • Вопрос задан
  • 192 просмотра
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день.
Как отметил коллега, каждый микросервис может быть написан на разных языках и это нормальная практика.
Теперь, что касается Java. Ну во-первых, касаемо используемых фреймворков. Удобонее писать микросервисы на Spring (Spring Boot) или Quarkus.
Приложения могут быть запущены в Tomcat, Jetty, Netty, GlassFish и т.д.
По умолчанию в Spring Boot есть embedded зависимость для самозапускающихся приложений. Например, embedded tomcat.

В Node.js сервисы обычно запускают в Docker, я слышал что в Java для этого используют Tomcat, в чем разница между ними? (или это вообще разные вещи?)

Это разные вещи. Приложения написанные в Java тоже можно контейнезировать и запустить внутри докера.

В Node.js для запуска сервера обычно используют express.js, а что для этого используется в Java? (Servlet, Spring или что-то еще?)

Сервлет, есть сервлет. Spring это фреймворк. А для запуска используется то, что я указал выше.

Допустим я сделал сервер на Servlet, как запускать это в docker контейнере?

https://sematext.com/blog/docker-java-tutorial/

Если я запущу 10 Java сервисов в отдельных Docker контейнерах, в каждом из них будет отдельный экземпляр JRE\JDK?

В этом и есть суть докер контейнера и микросервисов. Каждый микросервис является автономным модулем. Каждый контенер является полноценной системой.

Преимущество Java мискросервисов перед Node.js? (или наоборот)

Не хочу холиварить. У каждого языка и фреймворка свои преимущества. Потому, микросервисы могут быть написаны на разных языках и не только на ноде, но и на Rust, Kotlin, Go и т.д.
https://runnable.com/docker/java/dockerize-your-ja...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы