我有一个应用程序,作为一个弹簧靴脂肪罐。 我根据"official" documentation在azure网站上托管它,web.config也类似:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
</handlers>
<httpPlatform processPath="%JAVA_HOME%\bin\java.exe" arguments="-Djava.net.preferIPv4Stack=true -Dserver.port=%HTTP_PLATFORM_PORT% -jar "%HOME%\site\wwwroot\my-web-project.jar"">
</httpPlatform>
</system.webServer>
</configuration>
应用程序在结构上是单片的,不是太大但是有一些映射并且有一些层要初始化,所以启动时间在本地大约12秒。 它在内存数据库中运行H2仅用于测试目的。
实际部署并让它在天蓝色网站上运行从来都不是真正的问题,但是存在一些真正的性能问题,至少在我的设置上是这样。
感兴趣的一些设置:
为了能够将数字与我在Azure VM上运行应用程序的内容进行比较,我有相似(但不相同)的规格和价格范围,并在该虚拟机上运行应用程序。
以下是一些结果:
部署/启动应用程序并让它在第二天拨打电话。
在冷呼叫后直接呼叫,但到另一个端点。
我的问题是: 有人知道在天蓝色网站上运行弹簧靴脂肪罐是否可行? 由于有来自微软的官方文档,人们会认为它是,当然在技术上它是,但它在生产中是否可行?
关于AWS vs Azure与Google App Engine的辩论之后我真的没有......, 或写战争/罐子或如何托管它。
我有理由这样想。如果不可能,我还有其他选择但想先探讨这个想法,看看是否有其他人有更好的经历?
编辑:只是为了添加信息。所有呼叫的数据库都是空的。所以不应该增加任何开销来说话。实际上没有数据只被提取空列表。
答案 0 :(得分:1)
虽然这是一个老问题而且我的答案没有价值,因为我对Azure没有任何了解,但我想分享我的研究结果。我有几个Spring Boot微服务和一个相对较大的服务(我的本地机器上的170 MB胖罐在大约70秒内启动)。 Azure以几十秒(如果不是数百秒)开始小型微服务......我的意思是非常小的微服务(Spring Cloud等配置服务器的一个例子......那里没有任何花哨的东西)。如果它涉及到大的 - Azure启动它并在2分钟后......再次启动它......再次......再次启动它。因此它永远不会开始。
这一切都在B3应用服务计划上。这么大的计划。
总结一下,在我(非常主观)的观点中,Azure不是Java应用程序的可行选择。
答案 1 :(得分:0)
关于运行Azure网站上托管的春季启动脂肪罐的问题,这是可行的,请参阅我对SO线程Deploying Springboot to Azure App Service的回答,并关注该部分的官方document春天的靴子。
希望它有所帮助。如有任何疑虑,请随时告诉我。