前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务架构之Spring Boot(八十四)

微服务架构之Spring Boot(八十四)

作者头像
用户1289394
发布2022-05-23 15:47:21
2.1K0
发布2022-05-23 15:47:21
举报
文章被收录于专栏:Java学习网Java学习网

63.2 Heroku

Heroku是另一个流行的PaaS平台。要自定义Heroku构建,请提供 Procfile ,它提供部署应用程序所需的咒语。Heroku为要使用的Java应用

程序分配 port ,然后确保路由到外部URI工作。

您必须将应用程序配置为侦听正确的端口。以下示例显示了我们的入门REST应用程序的 Procfile :

web: java -Dserver.port=$PORT -jar target/demo-0.0.1-SNAPSHOT.jar

Spring Boot使 -D 个参数可用作可从Spring Environment 实例访问的属性。server.port 配置属性被馈送到嵌入式Tomcat,Jetty或

Undertow实例,然后在启动时使用该端口。$PORT 环境变量由Heroku PaaS分配给我们。

这应该是你需要的一切。Heroku部署最常见的部署工作流程是 git push 生产代码,如以下示例所示:

$ git push heroku master

Initializing repository, done.

Counting objects: 95, done.

Delta compression using up to 8 threads.

Compressing objects: 100% (78/78), done.

Writing objects: 100% (95/95), 8.66 MiB | 606.00 KiB/s, done.

Total 95 (delta 31), reused 0 (delta 0)

-----> Java app detected

-----> Installing OpenJDK 1.8... done

-----> Installing Maven 3.3.1... done

-----> Installing settings.xml... done

-----> Executing: mvn -B -DskipTests=true clean install

[INFO] Scanning for projects...

Downloading: https://repo.spring.io/...

Downloaded: https://repo.spring.io/... (818 B at 1.8 KB/sec)

....

Downloaded: http://s3pository.heroku.com/jvm/... (152 KB at 595.3 KB/sec)

[INFO] Installing /tmp/build_0c35a5d2-a067-4abc-a232-14b1fb7a8229/target/...

[INFO] Installing /tmp/build_0c35a5d2-a067-4abc-a232-14b1fb7a8229/pom.xml ...

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 59.358s

[INFO] Finished at: Fri Mar 07 07:28:25 UTC 2014

[INFO] Final Memory: 20M/493M

[INFO] ------------------------------------------------------------------------

-----> Discovering process types

Procfile declares types -> web

-----> Compressing... done, 70.4MB

-----> Launching... done, v6

http://agile-sierra-1405.herokuapp.com/ deployed to Heroku

To git@heroku.com:agile-sierra-1405.git

* [new branch] master -> master

您的应用程序现在应该在Heroku上启动并运行。

63.3 OpenShift

OpenShift是Kubernetes容器编排平台的Red Hat公共(和企业)扩展。与Kubernetes类似,OpenShift有许多选项可用于安装基于Spring

Boot的应用程序。

OpenShift有许多资源描述如何部署Spring Boot应用程序,包括:

使用S2I构建器

建筑指南

在Wildfly上作为传统Web应用程序运行

OpenShift Commons简报

63.4亚马逊网络服务(AWS)

Amazon Web Services提供了多种方法来安装基于Spring Boot的应用程序,可以是传统的Web应用程序(war),也可以是带有嵌入式Web

服务器的可执行jar文件。选项包括:

AWS Elastic Beanstalk

AWS Code Deploy

AWS OPS Works

AWS Cloud Formation

AWS容器注册表

每个都有不同的功能和定价模型。在本文档中,我们仅描述了最简单的选项:AWS Elastic Beanstalk。

63.4.1 AWS Elastic Beanstalk

正如官方的 Elastic Beanstalk Java指南中所述,部署Java应用程序有两个主要选项。您可以使用“Tomcat平台”或“Java SE平台”。

使用Tomcat平台

此选项适用于生成war文件的Spring Boot项目。无需特殊配置。您只需遵循官方指南即可。

使用Java SE平台

此选项适用于生成jar文件并运行嵌入式Web容器的Spring Boot项目。Elastic Beanstalk环境在端口80上运行nginx实例以代理在端口5000上运

行的实际应用程序。要配置它,请将以下行添加到 application.properties 文件中:

server.port=5000

默认情况下,Elastic Beanstalk上传源并在AWS中编译它们。但是,最好上传二进制文件。为此,请

在 .elasticbeanstalk/config.yml 文件中添加与以下内容类似的行:

deploy:

artifact: target/demo-0.0.1-SNAPSHOT.jar

默认情况下,Elastic Beanstalk环境是负载平衡的。负载平衡器具有显着的成本。要避免此成本,请将环境类型设置为“Single

instance”,如 Amazon文档中所述。您还可以使用CLI和以下命令创建单实例环境:

eb create -s

63.4.2摘要

这是访问AWS的最简单方法之一,但还有更多内容需要涉及,例如如何将Elastic Beanstalk集成到任何CI / CD工具中,使用Elastic Beanstalk

Maven插件代替CLI和其他人。有一篇 博文更详细地介绍了这些主题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档