1. 通过源码打包

到携程Apollo地址 https://github.com/ctripcorp/apollo 下载Apollo源码,可在源码中进行自定义配置日志路径及端口等,之后打包。

打包完成后在 target 目录下的 apollo-configservice-1.3.0-github.zip 即为可部署的服务包

apollo-configservice-1.3.0-github.zip 内容如下

上面以apollo-configservice为例,部署所需的另外两个模块apollo-adminservice,apollo-portal的打包步骤相同。

当然,如果不需要特别定制开发,Release 也提供了预先打包好的安装包,可以到 https://github.com/ctripcorp/apollo/releases 下载使用。

2. 部署数据库

Apollo服务端共需要两个数据库:ApolloPortalDB 和 ApolloConfigDB,创建这两个数据库,1.3.0版本开始为了支持Flyway,sql位置和命名已修改,位置如下。

注意:需配置数据库大小写不敏感

另外需要注意的是ApolloPortalDB只需要在生产环境部署一个即可,而ApolloConfigDB需要在每个环境部署一套,如dev、uat和pro分别部署3套ApolloConfigDB。但是ApolloPortalDB.serverconfig表中需要把可支持的环境列表配置到apollo.portal.envs字段上。

3. 部署服务

3.1 部署apollo-configservice

将对应环境的apollo-configservice-x.x.x-github.zip上传到服务器上,解压,核对修改scripts/startup.sh中的配置,数据库、JVM配置、日志、端口等都可以在这里再次进行配置。

  • 如果需要修改JVM参数,可以修改scripts/startup.sh的JAVA_OPTS部分。
  • 如要调整服务的日志输出路径,可以修改scripts/startup.sh和apollo-configservice.conf中的LOG_DIR。
  • 如要调整服务的监听端口,可以修改scripts/startup.sh中的SERVER_PORT。另外apollo-configservice同时承担meta server职责,如果要修改端口,注意要同时ApolloConfigDB.ServerConfig表中的eureka.service.url配置项以及apollo-portal和apollo-client中的使用到的meta server信息。
  • 如果ApolloConfigDB.ServerConfig的eureka.service.url只配了当前正在启动的机器的话,在启动apollo-configservice的过程中会在日志中输出eureka注册失败的信息,如com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused。需要注意的是,这个是预期的情况,因为apollo-configservice需要向Meta Server(它自己)注册服务,但是因为在启动过程中,自己还没起来,所以会报这个错。后面会进行重试的动作,所以等自己服务起来后就会注册正常了。

如下为pro环境的配置

如果配置多个环境,需要另外单独部署 apollo-configservice的服务和ApolloConfigDB数据库,同时脚本中修改meta。

执行scripts/startup.sh即可启动configservice服务。如需停止服务,执行scripts/shutdown.sh。

访问ip:9001验证服务是否启动。

3.2 部署apollo-adminservice

将对应环境的apollo-adminservice-x.x.x-github.zip上传到服务器上,解压后执行scripts/startup.sh即可。如需停止服务,执行scripts/shutdown.sh。

自定义启动脚本中的参数。

如果配置多个环境,需要另外单独部署 apollo-adminservice的服务和ApolloConfigDB数据库,同时脚本中修改meta。

执行scripts/startup.sh即可启动adminservice服务。如需停止服务,执行scripts/shutdown.sh。

访问ip:9002,如果页面出现 apollo-adminservice 即为启动成功。

3.3 部署apollo-portal

将apollo-portal-x.x.x-github.zip上传到服务器上,解压后执行scripts/startup.sh即可。如需停止服务,执行scripts/shutdown.sh.

自定义启动脚本中的参数。

执行scripts/startup.sh即可启动portal服务。如需停止服务,执行scripts/shutdown.sh。

访问ip:9003出现登录页面即为启动成功,超级管理用户为apollo/admin,进入即可进行配置。

Apollo源码打包及部署的更多相关文章

  1. Spark1.0.0 源码编译和部署包生成

    问题导读:1.如何对Spark1.0.0源码编译?2.如何生成Spark1.0的部署包?3.如何获取包资源? Spark1.0.0的源码编译和部署包生成,其本质只有两种:Maven和SBT,只不过针对 ...

  2. Apollo源码解析看一文就够

    对于配置中心我们先抛出问号三连,什么是配置中心?为什么要用配置中心?配置中心怎么用? 笔者说说自己理解的配置中心,个人观点的十六字 消息存储 消息推送 环境隔离 灰度发布 今天我们先来看Apollo配 ...

  3. maven源码打包

    1.打包时附加外部Jar包 <!--编译+外部 Jar打包-->          <plugin>            <artifactId>maven-co ...

  4. 使用 maven 自动将源码打包并发布

    1.maven-source-plugin 访问地址 在 pom.xml 中添加 下面的 内容,可以 使用 maven 生成 jar 的同时 生成 sources 包 <plugin> & ...

  5. Apollo源码阅读笔记(二)

    Apollo源码阅读笔记(二) 前面 分析了apollo配置设置到Spring的environment的过程,此文继续PropertySourcesProcessor.postProcessBeanF ...

  6. Apollo源码阅读笔记(一)

    Apollo源码阅读笔记(一) 先来一张官方客户端设计图,方便我们了解客户端的整体思路. 我们在使用Apollo的时候,需要标记@EnableApolloConfig来告诉程序开启apollo配置,所 ...

  7. 【maven】maven源码打包

    1.打包时附加外部Jar包 <!--编译+外部 Jar打包-->          <plugin>            <artifactId>maven-co ...

  8. 01.LNMP架构-Nginx源码包编译部署详细步骤

    操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:Pcre+Zlib+Openssl+Nginx 操作步骤: 一.创建目录 [root@localhost ~]# mk ...

  9. 02.LNMP架构-MySQL源码包编译部署详细步骤

    操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:Cmake+Boost+MySQL 操作步骤: 一.安装依赖组件 [root@localhost ~]# yum -y ...

随机推荐

  1. Linux之redis-sentinel

    一,Redis-Sentinel介绍 Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或 ...

  2. php图形图像处理技术

    图形图像处理技术,gd库的强大支持,PHP的图像可以是PHP的强项,PHP图形化类库,jpgraph是一款非常好用的强大的图形处理工具. 在PHP中加载GD库 gd官方网址下载: http://www ...

  3. java请求url可以带参数

    /** * * @param urlStr * url * @param content * 提交的参数 * @param encoding * 编码格式 * @return */ public st ...

  4. virtual box 6.0 扩容原有磁盘空间 ubuntu18.04

    virtual box 6.0 扩容原有磁盘空间 ubuntu18.04 1虚拟介质管理 1.1点击菜单 1.2 修改磁罗容量大小(需要关闭虚拟机),点击应用 2使用ubuntu安装镜像将新加容量添加 ...

  5. 使用SikuliX定位Object(flash)元素

    先说一下背景,这个是我们测试的系统上的一个上传文件的地方,但是用传统的selenium方法很难定位的到.具体的样子是下面这样的. 使用id等属性定位做点击操作好像不能直接操作.无奈之下,只好从网上找找 ...

  6. python3 tkinter模块

    一.tkinter 1.tkinter--tool kit interface工具包接口,用于GUI(Graphical User Interface)用户图形界面, 2.python3.x把Tkin ...

  7. Spark-2.3.2 HBase BulkLoad

    在大量数据需要写入HBase时,通常有Put方式和BulkLoad两种方式. Put不做解释. BulkLoader方式的优势在于: 1.不会触发WAL预写日志,当表还没有数据时进行数据导入不会产生F ...

  8. 2.遍历XML即添加修改节点

    1.xml <?xml version="1.0" encoding="utf-8" ?> <stories> <story ac ...

  9. P1801 黑匣子[堆]

    题目描述 Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个Black Box要处理一串命令. 命令只有两种: ...

  10. 《hello-world》第九次团队作业:【Beta】Scrum meeting 2

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目验收 团队名称 <hello--wor ...