1. apollo在liunx环境实战(三)

1.1. 准备

  1. 下载apollo源码 https://github.com/ctripcorp/apollo

1.2. 创建数据库

  1. 在自己的liunx环境下的mysql运行它的创库语句

1.3. 配置数据库

  1. 其中环境列表配置,部门配置,请配置数据库

  2. eureka地址配置

1.4. 构建三个服务configservice,adminservice,portal

  1. 它提供了两种方式,一种不用自己定制的直接下载它已经打包好的zip包,地址如下

https://github.com/ctripcorp/apollo/releases

  1. 另一种就是自己打包源码,我采用的自己打包源码,优点就是可以保证代码最新

1.4.1. 打包源码

  1. 打包前

  2. 打包

  3. 我用的git bash模拟liunx运行sh的打包脚本,然后被坑了一把,不知道为什么,打包后对应的数据库url地址就是没有配进去,有知道原因和如何解决的麻烦告知一声,Thanks♪(・ω・)ノ

  4. 我后来是直接手动打开压缩包,把配置文件数据库地址修改了一遍,然后覆盖

1.5. 上传服务器

  1. 把三个服务打包后的zip包上传到服务器

  2. 我编写了一点脚本启动顺手点

[root@izbp1itlw36onyj4m9b4hiz docker-apollo]# ls
adminservice configservice deleteAll.sh portal
[root@izbp1itlw36onyj4m9b4hiz docker-apollo]# cd adminservice/
[root@izbp1itlw36onyj4m9b4hiz adminservice]# ls
apollo-adminservice-1.4.0-SNAPSHOT-github.zip build.sh Dockerfile start.sh
[root@izbp1itlw36onyj4m9b4hiz adminservice]# cat build.sh
#!/bin/bash
docker build -t apollo-adminservice .
[root@izbp1itlw36onyj4m9b4hiz adminservice]# cat start.sh
#!/bin/bash
docker run -p 8090:8090 -d -v /tmp/logs:/opt/logs --name apollo-adminservice apollo-adminservice
[root@izbp1itlw36onyj4m9b4hiz adminservice]# cd ../configservice/
[root@izbp1itlw36onyj4m9b4hiz configservice]# ls
apollo-configservice-1.4.0-SNAPSHOT-github.zip build.sh Dockerfile start.sh
[root@izbp1itlw36onyj4m9b4hiz configservice]# cat build.sh
#!/bin/bash
docker build -t apollo-configservice .
[root@izbp1itlw36onyj4m9b4hiz configservice]# cat start.sh
#!/bin/bash
docker run -p 8080:8080 -d -v /tmp/logs:/opt/logs --name apollo-configservice apollo-configservice
[root@izbp1itlw36onyj4m9b4hiz configservice]# cd ../portal/
[root@izbp1itlw36onyj4m9b4hiz portal]# ls
apollo-portal-1.4.0-SNAPSHOT-github.zip build.sh Dockerfile start.sh
[root@izbp1itlw36onyj4m9b4hiz portal]# cat build.sh
#!/bin/bash
docker build -t apollo-portal .
[root@izbp1itlw36onyj4m9b4hiz portal]# cat start.sh
#!/bin/bash
docker run -p 8070:8070 -d -v /tmp/logs:/opt/logs --name apollo-portal apollo-portal
[root@izbp1itlw36onyj4m9b4hiz portal]# cd ..
[root@izbp1itlw36onyj4m9b4hiz docker-apollo]# cat deleteAll.sh
#!/bin/bash
docker stop `docker ps -a | grep apollo-adminservice | awk '{print $1}'`&docker rm `docker ps -a | grep apollo-adminservice | awk '{print $1}'`&docker rmi `docker images | grep apollo-adminservice | awk '{print $3}'` docker stop `docker ps -a | grep apollo-configservice | awk '{print $1}'`&docker rm `docker ps -a | grep apollo-configservice | awk '{print $1}'`&docker rmi `docker images | grep apollo-configservice | awk '{print $3}'` docker stop `docker ps -a | grep apollo-portal | awk '{print $1}'`&docker rm `docker ps -a | grep apollo-portal | awk '{print $1}'`&docker rmi `docker images | grep apollo-portal | awk '{print $3}'`
  1. 最后的删除脚本没优化过,我用来一键删除部署的三个docker容器的,删除一次失败隔个几秒再删,直到全部镜像删掉

1.6. 构建镜像运行

  1. 基于1.4的脚本,先后运行configservice的build.sh,start.sh,再是adminserivce,portal

1.7. 测试

  1. 访问服务器地址:8080,显示了adminservice和configservice就正确了

  2. 访问服务器地址:8070,显示如下,我已经创建了两个项目

  1. 创建新项目,进去后如下

1.8. 接入客户端

  1. 仍旧以apollo提供的demo为例

1.8.1. 前置准备

  1. 在window中需要配置 C:\opt\settings\server.properties 该文件属性,内容如下,模拟该客户端环境,eureka地址
env=DEV
apollo.meta=http://ip:8080
  1. 修改客户端app.properties中,app.id=你新建项目中配置的appid

1.8.2. 启动客户端

  1. 第一次启动可能有些警告啥的,因为第一次没有本地缓存读不到,忽略它,只要你再界面配置了属性,第一次启动后就会有本地缓存了

  2. 控制台输入属性名回车,后台界面修改属性提交,客户端也能接收到改变,再次获取,属性值改变

Apollo Config Demo. Please input key to get the value. Input quit to exit.
> count
> [apollo-demo][main]2019-03-19 10:49:27,240 INFO [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Loading key : count with value: 20
[apollo-demo][Apollo-Config-1]2019-03-19 11:33:50,330 INFO [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Changes for namespace application
[apollo-demo][Apollo-Config-1]2019-03-19 11:33:50,334 INFO [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Change - key: count, oldValue: 20, newValue: 30, changeType: MODIFIED
count
> [apollo-demo][main]2019-03-19 11:33:54,232 INFO [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Loading key : count with value: 30

apollo在liunx环境实战(三)的更多相关文章

  1. Liunx 环境下vsftpd的三种实现方法(超详细参数)

    以下文章介绍Liunx 环境下vsftpd的三种实现方法 ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本.假 ...

  2. MySQL 系列(四)主从复制、备份恢复方案生产环境实战

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  3. 用grunt搭建自动化的web前端开发环境实战教程(详细步骤)

    用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!前端自动化, ...

  4. zabbix生产环境案例(三)

    生产环境案例(三) 链接:https://pan.baidu.com/s/1q5YwJMTcZLcS5OQ0iOu44A 提取码:8gdi 复制这段内容后打开百度网盘手机App,操作更方便哦 1. Z ...

  5. miniFTP项目实战三

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

  6. MySQL 系列(五) 多实例、高可用生产环境实战

    MySQL 系列(五) 多实例.高可用生产环境实战   第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 史上最屌.你不知道的数据库操作 第三 ...

  7. coreseek实战(三):全文搜索在php中应用(使用api接口)

    coreseek实战(三):全文搜索在php中应用(使用api接口) 这一篇文章开始学习在php页面中通过api接口,使用coreseek全文搜索. 第一步:综合一下前两篇文章,coreseek实战( ...

  8. 在阿里云 ECS 搭建 nginx https nodejs 环境(三、nodejs)

    在阿里云 ECS 搭建 nginx https nodejs 环境(三.nodejs) 在阿里云 ECS 搭建 nginx https nodejs 环境(三.nodejs) 第一步 指定版本源 执行 ...

  9. 项目部署到liunx环境下访问接口返回异常

    1.访问接口返回异常 已经连续踩了两次这个坑了.所以记下来了.方便下次搜索! 项目在window下运行正常,无任何异常! 但是部署到liunx环境下的服务器上就有问题 访问静态页面毫无问题,一旦涉及到 ...

随机推荐

  1. Mybatis 源码学习系列

    前言 很久以前,我们学习了Java,从一个控制台的 Hello world .开始,我们进入了面向对象的世界. 然后由学习了SQL语言,可以写出SQL语句来将尘封在硬盘之下的数据库数据,展现出来. 后 ...

  2. [转] 以 async/await 为例,说明 babel 插件怎么搭

    你一定碰到过这些库 babel-polyfill 项目地址:https://github.com/babel/babel/blob/master/packages/babel-polyfill 通过两 ...

  3. MBR分区操作-增加、扩展、删除

    MBR分区操作-增加.扩展.删除 GPT分区参考 http://www.blogjava.net/haha1903/archive/2011/12/21/366942.html l  fdisk 显示 ...

  4. c# MD5及盐值加密

    using System;using System.Collections.Generic;using System.Linq;using System.Security.Cryptography;u ...

  5. 如何在Ubuntu 18.04中安装VMware Workstation Player

    参考链接 如何在Ubuntu 18.04中安装VMware Workstation Player https://www.sysgeek.cn/ubuntu-18-04-install-vmware- ...

  6. Linux文件名匹配和输出重定向--2019-4-24

    1.文件名匹配 例:rm *.bak;   删除结尾是.bak的文件 rm *4*.bak; 删除名称中有“4”的.bak文件 ls *.????; 查找结尾是“.”后有四个字母的文件 2.管道 先进 ...

  7. linux 端口占用

    进程id为9106,进程名称为java的进程,占用了8080端口(监听了8080端口)

  8. html网页调用本地exe程序

    1.使用记事本(或其他文本编辑器)创建一个protocal.reg文件,并写入以下内容 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\ ...

  9. 2019 蓝桥杯省赛 A 组模拟赛(一)-修建公路

    题目: 蒜头国有 nn 座城市,编号分别为 0,1,2,3,...,n-1.编号为 x 和 y 的两座城市之间如果要修高速公路,必须花费 x|y 个金币,其中|表示二进制按位或. 吝啬的国王想要花最少 ...

  10. Cow Contest POJ - 3660 (floyd 传递闭包)

    N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we ...