Skip to content
This repository has been archived by the owner on Dec 6, 2021. It is now read-only.

deployment

kevin edited this page Apr 16, 2018 · 18 revisions

部署

duic 部署仅依赖于 mongodb,不依赖其它任何中间件即可支持分布式集群部署,同时 duic 采用 spring-boot + spring-webflux 开发,内置使用 netty 作为 HTTP Server,所以 duic 的部署非常的简单。

前提

  • java >= 1.8

  • mongodb >= 2.6

Tip

考虑到实际应用中我们一般都使用 linux 作为服务器,该文档目前只针对 linux 系统部署。

配置

启动配置文件默认采用 yaml 格式,你可以根据自己的喜好使用其它配置 spring-boot 支持的文件格式。

配置文件路径
  1. 当前目录的`/config`子目录

  2. 当前目录

  3. CLASSPATH `/config`包目录

  4. CLASSPATH 根目录

该列表按优先顺序排列(在列表中较高的位置定义的属性会覆盖在较低位置定义的属性)。

application.yaml
server:
  port: 7777

spring:
  reactor:
    stacktrace-mode:
      enabled: true

  data:
    mongodb:
      uri: mongodb://127.0.0.1:27017/duic

duic:
  root-email: kevinz@weghst.com
  root-password: 123456
  jwt:
    secret: U2FsdGVkX1/jO0KlWumac4yDM8rOgWPkaV0KrSHDynWOP6n8FMJB9uSc8EW/qM+VagrMBAXGpyw=
    expires-in: 720
  app:
    watch:
      updated:
        fixed-delay: 5000
      deleted:
        fixed-delay: 600000

一般在部署时只需要将 spring.data.mongodb.uri 配置参数修改为指定的 mongodb 连接地址,即可正常启动 duic。

参数详细解释
  • server.port 服务端口(默认为 7777

  • spring.reactor.stacktrace-mode.enabled 启用 reactor 调用堆栈(默认为 false),设置为 false 可以提高性能,但是不建议修改该配置项。更详细的解释请参考 reactor 官方文档 Activating Debug Mode

  • spring.data.mongodb.uri mongodb 数据库连接 uri

  • duic 应用程序基础配置

    • root-email ROOT 用户邮箱,如果用户不存在则会直接创建他

    • root-password ROOT 用户密码,初始创建时默认设置的密码

    • jwt 配置管理控制台登录安全信息,JWT 使用 HmacSHA256 算法生成

      • secret JWT 签名字符串

      • expires-in JWT 过期时间(单位:秒)

    • app.watch.updated.fixed-delay 监控数据库配置更新时间间隔周期默认为 5 秒扫描一次数据库,将更新的配置加载至内存中(单位:毫秒)

    • app.watch.deleted.fixed-delay 监控数据库配置删除时间音阶周期默认为 10 分钟挚友一次数据库,将删除的配置从内存中移除释放内存(单位:毫秒)

Tip

更详细的解释请参考 spring-boot 官方文档 Application Property Files

传统 java 方式部署

  1. 确认 java 环境至少是 1.8 或以上的版本

    $ java -version
    
    java version "1.8.0_151"
    Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
  2. 确认 mongo 环境至少是 2.6 或以上的版本并且服务已经启动

    $ mongo -version
    
    MongoDB shell version: 2.6.3
  3. 创建 duic 目录

    $ mkdir /opt/duic
  4. 进入 duic 目录

    $ cd /opt/duic
  5. GitHub Releases 页面获取 duic-[version].jar 并放置在 /opt/duic 目录中

    $ wget https://github.com/zhudyos/duic/releases/download/1.4.1/duic-1.4.1.jar -O duic.jar
    Tip

    在部署时需要将 url 中的版本替换为你需要的版本号,最好从 GitHub Releases 找到合适的版本后复制下载地址

  6. 创建配置文件目录

    $ mkdir config
    Tip

    确保当前目录是在 /opt/duic 目录中

  7. 进入配置文件目录

    $ cd config
  8. 创建启动配置文件

    $ touch application.yml
  9. spring.data.mongodb.uri 写入 config/application.yml 配置文件

    spring:
      data:
        mongodb:
          uri: mongodb://127.0.0.1:27017/duic
    Tip

    确保 spring.data.mongodb.uri 正确可连接至数据库

  10. 启动 duic

    $ java -Dspring.profiles.active=prod -jar duic.jar
    Tip

    不增加 -Dspring.profiles.active=prod 参数则以 debug 方式启动

  11. 启动成功后可在 logs/duic.log 日志文件中看见类似的如下信息

    2018-04-12 11:27:16,786 INFO  o.s.boot.SpringApplication -
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.0.1.RELEASE)
    
    
    2018-04-12 11:27:17,195 INFO  i.z.d.server.Application$Companion - Starting Application.Companion on e629cf1fe74f with PID 7 (/app/duic.jar started by root in /app)
    2018-04-12 11:27:17,195 INFO  i.z.d.server.Application$Companion - The following profiles are active: prod
    
    ...
    
    2018-04-12 11:27:20,558 INFO  o.s.j.e.a.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
    2018-04-12 11:27:20,572 INFO  o.s.s.a.ScheduledAnnotationBeanPostProcessor - No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
    2018-04-12 11:27:20,690 INFO  r.i.netty.tcp.BlockingNettyContext - Started HttpServer on /0:0:0:0:0:0:0:0%0:7777
    2018-04-12 11:27:20,690 INFO  o.s.b.w.e.netty.NettyWebServer - Netty started on port(s): 7777
    2018-04-12 11:27:20,696 INFO  i.z.d.server.Application$Companion - Started Application.Companion in 4.995 seconds (JVM running for 7.767)
  12. 测试

    $ curl http://localhost:7777/index.html

docker 部署

镜像已经同步至 docker 官方镜像仓库 https://hub.docker.com/r/zhudyos/duic

  1. 拉取镜像

    $ docker pull zhudyos/duic
  2. 确认 mongo 环境至少是 2.6 或以上的版本并且服务已经启动

    $ mongo -version
    
    MongoDB shell version: 2.6.3
  3. 创建配置文件目录

    $ mkdir config
  4. 进入配置文件目录

    $ cd config
  5. 创建启动配置文件

    $ touch application.yml
  6. spring.data.mongodb.uri 写入 config/application.yml 配置文件

    spring:
      data:
        mongodb:
          uri: mongodb://127.0.0.1:27017/duic
    Tip

    确保 spring.data.mongodb.uri 正确可连接至数据库

  7. 启动镜像

    $ docker run -d -p 7777:7777 -v $(pwd)/config:/app/config zhudyos/duic
    Tip

    application.yml 配置文件所在目录挂载到容器的 /app/config 目录中

  8. 测试

    $ curl http://localhost:7777/index.html