现在的位置: 首页 > 云计算> 正文
Heroku 上的 Java 程序设计
2011年08月27日 云计算 暂无评论 ⁄ 被围观 6,308+

Heroku简介

Heroku is a Polyglot Cloud Application Platform. Heroku provides us a way to run Ruby, Node.js, Clojure, and Java applications on a managed, scalable, and multi-tenant system. Heroku also provides numerous add-ons that help us make the shift from monolithic middleware to Cloud Components. Another way to say it is:

Heroku = Polyglot + Platform as a Service (PaaS) + Cloud Components

Heroku是一个支持多语言的云应用平台。 它为我们提供了一个支撑的环境来运行Ruby,Node.js,Clojure,和Java应用程序,并且是可扩展,多租户的系统。 Heroku还提供了众多的组件,帮助我们从单片中间件转移到云组件。另一种说法是:

Heroku = 多语种 + 平台作为服务(PaaS)+ 云组件

Heroku 上运行Java程序

Heroku can run any Java app that runs in OpenJDK 6. Today Heroku uses Maven to create a “slug” for Java apps. That slug can then be loaded onto one or more “dynos“. You can tell a dyno to execute / start a Java app from the command line and you can also use a “Procfile” to provide a command that will auto-start for each instance of a specific dyno type. Web dynos are able to listen on a port and will receive HTTP traffic through a load balancer that is automatically setup for each app. With that background knowledge, lets dive into code!

Heroku 的Java运行时环境为OpenJDK 6,通过用Maven来编译程序,然后将程序上传到云端,用命令行方式来启动执行Java应用程序,云端会根据HTTP流量自动调节负载平衡,并启动一个运行实例。

具体步骤如下:

  1. 安装 heroku 客户端软件,参见  LinuxMac 和  Windows
  2. 安装 git  客户端软件和配置 ssh key,参见 MacWindows 和 Linux
  3. 安装 Maven
  4. 从命令行登入 Heroku :
    heroku auth:login
    依次输入Email和Password,如果是第一次登录的话会要求上传SSH key文件,选择yes就行,然后heroku会将这些信息保存在本地,以后登录就不需要再次输入了。
  5. 建立一个新的工程目录:
    mkdir herokuhellojava
    cd herokuhellojava
  6. 新建 Maven 配置文件 pom.xml:
    1
    2
    3
    4
    5
    6
    7
    8
    
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>foo</groupId>
        <version>1.0-SNAPSHOT</version>
        <name>herokuhellojava</name>
        <artifactId>herokuhellojava</artifactId>
    </project>
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>foo</groupId>
        <version>1.0-SNAPSHOT</version>
        <name>herokuhellojava</name>
        <artifactId>herokuhellojava</artifactId>
    </project>
  7. 建立Java source 目录:
    mkdir -p src/main/java
  8. 在 src/main/java 目录中新建立一个Java 源文件 Hello.java :
    1
    2
    3
    4
    5
    6
    7
    
    public class Hello
    {
      public static void main(String[] args)
      {
        System.out.println("hello, Carey");
      }
    }
    public class Hello
    {
      public static void main(String[] args)
      {
        System.out.println("hello, Carey");
      }
    }
  9. 编译工程项目:
    mvn compile
  10. 本地运行Java程序:
    java -cp target/classes Hello
    程序输出 hello, Carey
  11. 建立git本地repo,然后将 pom.xml 和 src 文件夹加入进去:
    git init
    git add pom.xml src
    git commit -m init
  12. 利用cedar栈在Heroku上建立一个新的APP:
    heroku create -s cedar
    程序输出新建立的APP的信息,比如 stark-lightning-113
  13. 把本地的java程序上传到Heroku:
    git push heroku master

    Heroku 会自动建立一个 与此APP对应的 slug .

  14. 在 Heroku上远程运行java程序:
    heroku run "java -cp target/classes Hello"

    Heroku 会新建立一个 dyno 环境,装载此APP的 slug,然后运行该APP

到目前为止,你已经开始在云端运行Java程序了,虽然只是个简单的Demo程序,但是至少知道了整个部署和执行的过程,接下来要学习的东西还有很多很多。

下一步工作

参考文献

heroku-adds-java-support

给我留言

留言无头像?


×
腾讯微博