zoukankan      html  css  js  c++  java
  • Vertx的命令行

     IntelliJ----创建一个运行配置(Application), 用io.vertx.core.Launcher类作为主类,在程序参数输入:run your-verticle-fully-qualified-name--redeploy=**/*.class --launcher-class=io.vertx.core.Launcher。为了触发重布署,需要显示生成项目或者模块(Build menu->Make project)。

     run your-verticle-fully-qualified-name--redeploy=**/*.class --launcher-class=io.vertx.core.Launcher

    Vertx的命令行

    vertx命令被用于命令行与Vert.x进行交互。这是在运行Vert.x的 verticle的主要方式。为了运行命令行,需要下载并安装Vert.x发行版,并添加安装路径中的bin路径到PATH环境变量。同时必须确认安装了Java8的JDK,并在命令行可执行。

    注意:需要JDK是为了支持运行时编译java代码。

     运行Verticles

    可以使用vertx run命令从命令行直接运行一个原生的Vert.x veticles。有一两个run命令的例子。

    vertx run my-verticle.js                                 (1)

    vertx run my-verticle.groovy                             (2)

    vertx run my-verticle.rb                                 (3)

     vertx run io.vertx.example.MyVerticle                    (4)

    vertx run io.vertx.example.MVerticle -cpmy-verticle.jar (5)

     vertx run MyVerticle.java

     1. 布署一个JavaScript verticle

    2. 布署一个Groovy verticle

    3. 布署一个Ruby veticle

    4. 布署一个已经编译过的java verticle,根类路径是当前目录。

    5. 布署一个打成jar包的verticle,jar包必须在类路径中。

    6. 编译Java源代码并布署。、

    如你所见,在Java例子中,名称可以是安整合规则的Verticle类名,也可以直接指Java源代码文件,Vert.x会为你编译它。

    也可给在verticle名称前添加实现语言前缀。例如,如果Verticle是一个编译的Groovy类,可以添加groovy:前缀,以便于Vert.x知道,这是一个Groovy类而不是一个Java类。

    vertx rungroovy:io.vertx.example.MyGroovyVerticle

    vertx run命令可以有一些可选参数,他们是:

    ·          -conf<config_file> 向verticle提供一些配置。config_file是一个包含JSON对象的文本文件的名字。当JSON对象代表了verticle对象的配置,这是可选的。

    ·          -cp<path> - 这是寻找verticle的路径并且也是verticle要使用的一些其他资源的路径。默认的“.”(当前路径)。如果verticle引用了其他脚本,类,或者其他资源(如jar文件),请确保它们在此路径下。此路径可以包含多个路径实体,有:或者;分隔开,具体什么分隔符依赖于操作系统。每个路径 实体可以是绝对路径也可以是档对于包含脚本的路径,或者绝对,和相对的jar/zip文件的文件名。一个路径的例子可能是这样-cpclasses:lib/otherscripts:jars/myjar.jar:jars/otherjar.jar。总是这样使用路径引用一些verticle需要的资源。不要将这些资源放在系统类路径中,因为这样会在布署的verticle之间造成隔离问题。

    ·          -instance<instance> - 初始veticle实例的数目。每个verticle实例是一个严格的单线程,所以为在所有能获得的运算核心上伸缩应用,应该布署多个实例。如果忽视这个参数,verticle单实例将会部署。

    ·          -worker—此选项决定是verticle是否是一个工作verticle。

    ·          -cluster-port如果cluster选项被设置,此参数决哪个端口通为与其他Vert.x实例进行通迅。默认是0,表明随机选择空端口。通常不需要设置此参数除非你真得需要绑定到指定端口。

    ·          -cluster-host如果集群选项被指定,这参数决定那个主机地址被用于与其他Vert.x实例进行通迅。默认是从可用的地址中选择一个。如果有多个网卡,就需要使用指定的,就在这里设置。

    ·          -ha 如果设置verticle被布署成高可用。参考相关章节获取更多信息。

    ·          -quorum 与-ha参数联合使用。此参数指定集群中最小节点数,这些节点为了激活高可用布署ID。默认是0。

    ·          -hagroup与-ha参数联合使用。指定此节点要加入的HA组。一个集群上可能有多个HA组。节点在失效时,由同组中的其他节点备份。默认值是` __DEFAULT__`

    也可以使用   -Dkey=value设置系统属性

    这里有一些更多的例子,用默认的设置运行javascript的verticleserver.js。

    vertx run server.js

    运行预编译java verticle 100个实例,并指定类路径:

    vertx run com.acme.MyVerticle -cp"classes:lib/myjar.jar" -instances 10

    从源文件运行java verticle 10个实例

    vertx run MyVerticle.java -instances 10

    运行ruby工作verticle20个实例

    vertx run order_worker.rb -instances 20 –worker

    在同一个机器上运行两个Javascript实例,并让将其集群起来

    vertx run handler.js -cluster

    vertx run sender.js –cluster

    传入一些参数运行一个Ruby verticle

    vertx run my_verticle.rb -conf my_verticle.conf

    my_verticle.conf可以包含像下面的内容:

    {

     "name": "foo",

     "num_widgets": 46

    }

    通过内核API,在verticle内部,可以获取配置。在使用vert.x高可用特性时,可能想创建一个裸vert.x实例。此实例在启动后,不布署任何verticles。但是如果集群中的节点崩溃,将会接收一个verticle。为了创建裸实例,启动如下:
    vertx –ha

    取决于集群配置,有可能必须添加 cluster-host和cluster-port参数。

     从一个fat jar中执行Vert.x应用

    一个fat jar包是一个内嵌了依赖的可执行jar包。这就意味着,你不必预选在机器上安装Vert.x,然后执行jar。与一些可执行java jar包类似,它可以这样被执行:

    java -jar my-application-fat.jar

    关于这个,Vert.x没有什么需要设置的,一些应用程就可以这样做。也可以创建主程序并在mainfest中进行设置,但,建议编写自己的verticle代码,并用Vert.x的Launcher(io.vertx.core.Launcher)类作为你的主类。这个主与与命令行运行Vert.x是相同的主类,因此允许指定命令行参数,如 instances让应用伸缩更容易。

    为了用fat jar方式布署verticle,必须有一个manifest:

    ·          Main-Class设置为 io.vertx.core.Launcher

    ·          Main-Verticle指定主verticle(完整严格的类名或脚本文件名

    也可使用传递给vertx run命令的通用的命令行参数。

    java -jar my-verticle-fat.jar -cluster -confmyconf.json

    java -jar my-verticle-fat.jar -cluster -confmyconf.json -cp path/to/dir/conf/cluster_xml

     默认的,一个fat jar执行run命令。

     显示Vert.x版本

    用下面命令显示Vert.x版本:

    vertx version

     其他命令

    vertx命令行和Launcher都提供除了run和version命令之外的其他命令,可以用下面代码创建 一个裸实例:

    vertx bare

    # or

    java -jar my-verticle-fat.jar bare

    可以在后台启动一个应用:

    java -jar my-verticle-fat.jar start-Dvertx-id=my-app-name

    如果 my-app-name没有设置,一个随机产生一个ID,并输出到命令提示。可以将run选项传递给start命令:

    java -jar my-verticle-fat.jar start-Dvertx-id=my-app-name –cluster

    一旦后台加载,可用stop命令停止:

    java -jar my-verticle-fat.jar stop my-app-name

    也可以列出后台运行的Vert.x应用:

    java -jar my-verticle-fat.jar list

    start,stop和list命令也可以从vertx工具中找到。start命令支持几个选项:值

    ·          vertx-id:应用ID,没有设定,使用随机UUID

    ·          java-opts:JVM选项,如果未设定,使用JAVA_OPTS变量

    ·          redirect-output:重定向启动进程输出和错误流到父进程流。

    如果选项值包含了空格,一定要用双引号引起来

    因为start命令起动一个新进程,传入JVM选项不会传播。所有必须使用‘java-opts’配置JVM。如果设置了CLASSPATH环境变量,请确保包含所有的需要的jar包(vert-xore,应用jar及所有依赖项)

    命令集合是可扩展的,参考扩展vert.x加载器小节。

     热布署

    在文件改变时自动重新布署应用,在开发应用时是非常方便的。vertx命令行工具和更常用的Launcher 类都提供此特性。下面有一些例子:

    vertx run MyVerticle.groovy--redeploy="**/*.groovy" --launcher-class=io.vertx.core.Launcher

    vertx run MyVerticle.groovy--redeploy="**/*.groovy,**/*.rb" --launcher-class=io.vertx.core.Launcher

    java io.vertx.core.Launcher runorg.acme.MyVerticle --redeploy="**/*.class"  --launcher-class=io.vertx.core

    .Launcher -cp ...

    重布署实现如下。首先,应用程序以后台应用加载(用start命令)。匹配文件变化,进程被停止并且应用重新启动。这样可以避免泄漏。

    为了启用执布署,向run命令添加—redeploy选项。--redeploy指定要监视的文件集合。这个文件集合使用Ant风格模式(用**,*和?)匹配。你可以指通过用”,”号分隔指定多个集合。模式是相对于当前工作目录的。

    传递给run命令的参数被传给了应用。可用—java-opts设置JVM选项。

    --launcher-class选项指定应用启动的主类。通常是Launcher,但也可以使用自己的主类。

    在IDE中也可以使用重布署的特性:

    ·          Eclipse---创建一个运行配置(Run configuration),用io.vertx.core.Launcher类作为主类。在程序参数区域(在参数标签),输入run your-verticle-fully-qualified-name--redeploy=**/*.java --launcher-class=io.vertx.core.Launcher。也可以加入其他参数。在保存文件时,Eclipse会增量编译修改的文件,重新布署平滑工作。

    ·          IntelliJ----创建一个运行配置(Application), 用io.vertx.core.Launcher类作为主类,在程序参数输入:run your-verticle-fully-qualified-name--redeploy=**/*.class --launcher-class=io.vertx.core.Launcher。为了触发重布署,需要显示生成项目或者模块(Build menu->Make project)。

    为了调试你的应用,创建你的运行配置作为远程应用并用—java-opts配置调试器。然而,不要忘记在每次重新布署一个新进程时重新插入调试器。

    也可以在布署周期的构建进程下钩子。

    java -jar target/my-fat-jar.jar--redeploy="**/*.java" --on-redeploy="mvn package"

    java -jar build/libs/my-fat-jar.jar--redeploy="src/**/*.java" --on-redeploy='./gradlew shadowJar'

    on-redeploy选项指定一个在应用关闭或应用重启后调用的命令,所以能钩信你的构建工具,如果更新一些运行时资源。例如启动gulp或者grunt更新你的资源。

    重新布署特性支持下面设置:

    ·          redeploy-scan-period:文件系统检查周期,单位毫秒,默认250ms

    ·          redeploy-grace-period:在两重布署之间的等待时间默认是1000ms,单位毫秒

    redeploy-termination-period:在停止应用之后启动用户命令之前的等待时间量。这在Windows上是有用的,因为进程不是立既被kill。单位毫秒,默认值为0ms.

  • 相关阅读:
    我的学习之路_第八章_map集合
    我的学习之路_第七章_list集合,set集合
    我的学习之路_第六章_迭代器,泛型
    我的学习之路_第五章_Data,正则
    我的学习之路_第四章_异常
    我的学习之路_第三章_匿名内部类
    我的学习之路_第二章_接口/多态
    如何使用电脑上的谷歌浏览器来调试安卓手机上的移动端页面
    跨域之jsonp
    跨域之同源策略 Same-origin policy
  • 原文地址:https://www.cnblogs.com/endv/p/11265159.html
Copyright © 2011-2022 走看看