测试环境使用方案

1. 方案总体解释

我们整个运行方案使用Linux操作系统来执行。底层操作系统为ubuntu:14.04。如果您不熟悉Linux操作系统推荐阅读鸟哥Linux教程。您需要重点掌握如下知识: 远程登录Linux服务器的方法。查看文件系统文件的方法,运行可执行文件的方法,文件重定向的方法。

1.1 命令执行的方法

首先您需要一个Terminal 可以在gnome-terminal中打开。也可以在Mac下使用Iterm2也可以在windows下使用putty登录您的Linux。

复制文档中的命令之后请您键入回车(return)键执行命令。

2. 环境导读

在本章节中您会查看到所有环境提供的内容的大体解释在以后的章节中会详细解释所有服务的操作。

2.1 环境提供内容:

  1. consul 本地实例。
  2. 所有微服务的运行
  3. 环境变量自动管理
  4. redis-server
  5. 从外部容器提供postgres
  6. psql客户端(其实服务端也提供了)
  7. 环境为大家公有环境请请不要随意修改配置。

2.2 环境登录方法

ssh root@dev.17mei.cn -p 550

2.3 查看所有微服务

ps -aux

2.4 约定日志位置

/var/log/

2.5 环境变量管理

位置:~/.bashrc 默认运行脚本:~/runsample.sh

2.6 binary更新方法

scp

2.7 pgsql远程登录方法

PORT: 16433 User: postgres DB: wothing pwd: wothing

2.8 redis查看方法

登录后 redis-cli

2.9 自动化测试脚本运行

从您开发的计算机上直接运行

go test -v * -dh dev.17mei.cn -dp 16433 -du postgres -dpwd wothing -dn wothing -host http://dev.17mei.cn -cert /cert/public.pem -key /cert/mykey.pem

3. Consul

3.1 什么是Consul

服务发现,KV存储工具。有三个操作接口: RPC(内部自己调用),HTTP REST , DNS(服务查询用)详细

3.2 如何注册服务

curl -X PUT -d '{"Name":"authority","Port":13009}' -i http://localhost:8500/v1/agent/service/register

  • curl 为Linux常用的发送http数据的命令
  • curl -X 为http报文发送的方法详情查看REST
  • -d 为发送报文的内容 ,报文的格式为JSON
  • -i 显示所有返回状态码,因此您可以在返回的详细信息
  • 最后一个是目标访问地址。

4. 微服务的运行

需求说明: 首先我们需要一个不间断能够运行的程序,其次是我们可以指定微服务的版本,然后是我们需要能够指定微服务运行的参数,最后是日志的管理。

  • 不间断运行: nohup , 此命令后面跟上所需执行的命令参数加上日志重定向到
  • 执行不同的Linux命令可以指定不同的运行版本。
  • 参数管理是通过环境变量管理来实现的,具体的环境变量的位置为:/root/.bashrc
  • 在nohup执行过程中有一个重定向的位置为日志的位置,无论您是添加新的微服务还是更新您的微服务都可以随时随地指定日志的位置,或者append到一个旧的日志。

基于此我们有了如下的命令 nohup /app/gw.exe -ch $CH -cp $CP -ss $SS >> /var/log/gw.log &

5. 环境变量的管理

环境变量为Linux shell 下的变量。

  • 设置方法: 按照格式修改/root/.bashrc , 变量名=value 注意等号前面不要有空格。 变量需要export 为全局变量。
  • 例子: export DU=postgres 全局设置DU变量为postgres

6. REDIS server

redis 安装为服务器本地安装运行教程

7. Postgresql

从服务端连接postgresql: psql -U postgres -h pgaaa.aaa -d wothing 无需密码自动登录。

8. 更新服务流程

  1. 上传可执行文件
    • 参考命令: scp gw.exe root@dev.17mei.cn:/app/gw.exe -P 550
  2. 运行可执行文件
    • 参考命令nohup /app/gw.exe -ch $CH -cp $CP -ss $SS >> /var/log/gw.log &
    • 当然在文件/root/runsample.sh中有所有的参考执行命令。
  3. 查看日志
    • 参考方法:tail -F /var/log/gw.log

9. 注意事项

  • consul运行在登陆服务本地。在localhost:8500 需要修改什么curl到本地即可
  • 调试结束后不要忘记查看进程运行状态。ps -uax
  • 我在这里提供的是最简单的nohup进程管理方式需要手动kill进程,其实还有 systemd systemv screen tmux supervisor docker等等进程管理方式,大家可以根据自己的口味来解决进程管理的问题。