环境

deepin jdk1.8 linkerd 1.0.2

部署

创建服务app1

mkdir /data/linkerd_tmp1/app1

cd /data/linkerd_tmp1/app1

echo 'app1' > index.html

/usr/bin/python -m SimpleHTTPServer 9999

##这里笔者使用python 快速启动了一个占用端口为9999的服务.

curl http://127.0.0.1:9999

## 返回app1,服务正常

linkerd配置,通过linkerd访问app1服务

笔者linkerd安装目录:/opt/soft/linkerd-1.0.2/ 配置目录:/data/linkerd_tmp1/config.yaml

配置如下

admin:

port: 9990

routers:

- protocol: http

servers:

- ip: 0.0.0.0

port: 4140

dtab: >-

/svc/app1 => /$/inet/127.1/9999;

label: app

启动

/opt/soft/linkerd-1.0.2/linkerd-1.0.2-exec /data/linkerd_tmp1/config.yaml

访问

http_proxy=http://127.0.0.1:4140/ curl http://app1

##返回app1,正常linkerd通过app1代理9999端口服务成功.

同理配置app2服务.使用端口9998,返回app2

mkdir /data/linkerd_tmp1/app2

cd /data/linkerd_tmp1/app2

echo 'app2' > index.html

/usr/bin/python -m SimpleHTTPServer 9998

##这里笔者使用python 快速启动了一个占用端口为9999的服务.

curl http://127.0.0.1:9998

## 返回app1,服务正常

修改linkerd配置,使之代理app2

admin:

port: 9990

routers:

- protocol: http

servers:

- ip: 0.0.0.0

port: 4140

dtab: >-

/svc/app1 => /$/inet/127.1/9999;

/svc/app2 => /$/inet/127.1/9998; #多了这行,app2代理9998端口服务.

label: app

重启linkerd服务

http_proxy=http://127.0.0.1:4140/ curl http://app2

##返回app2,正常linkerd通过app1代理9998端口服务成功.

修改linkerd配置,使访问app1服务的流量分50%到app2

admin:

port: 9990

routers:

- protocol: http

servers:

- ip: 0.0.0.0

port: 4140

dtab: >-

/svc/app1 => /$/inet/127.1/9999;

/svc/app2 => /$/inet/127.1/9998;

/svc/app1 => 5 * /$/inet/127.1/9999 & 5 * /svc/app2;

label: app

重启linkerd服务.

for k in $( seq 1 100 ); do http_proxy=http://127.0.0.1:4140/ curl http://app1; done

循环100次访问app1,可以从linkerd admin管理页面看到两个服务的访问频率大致平衡

将比例切换为2:8.

/svc/app1 => 2 * /$/inet/127.1/9999 & 8 * /svc/app2;

循环100次结果如下.

紫色线条为app2服务,与app1访问频比为2:8

使用namer动态变更dtab

上面讲了修改配置文件重启的方式,但是这种方式是不可取的,在生产环境中,每时每刻都有请求,每次变更都要重启造成的影响太大了.

使用namer参数,将服务发现从配置中摘取出来,每次变动不需要修改配置.

基于文件的服务发现机制. io.l5d.fs

任然是上面两个服务 app1: 9999 app2: 9998

配置文件地址: /data/linkerd_tmp2

config.yaml配置如下

admin:

port: 9990

namers:

- kind: io.l5d.fs

rootDir: root

routers:

- protocol: http

dtab: |

/svc => /#/io.l5d.fs;

label: int

servers:

- port: 4140

ip: 0.0.0.0

命令行:

root@superwen2-pc:/data/linkerd_tmp2/root# ls

root@superwen2-pc:/data/linkerd_tmp2/root# echo '127.1 9999' > app1

root@superwen2-pc:/data/linkerd_tmp2/root# cat app1

127.1 9999

root@superwen2-pc:/data/linkerd_tmp2/root# http_proxy=http://127.0.0.1:4140/ curl http://app1

app1

root@superwen2-pc:/data/linkerd_tmp2/root# echo '127.1 9998' > app1

root@superwen2-pc:/data/linkerd_tmp2/root# cat app1

127.1 9998

root@superwen2-pc:/data/linkerd_tmp2/root# http_proxy=http://127.0.0.1:4140/ curl http://app1

app2

root@superwen2-pc:/data/linkerd_tmp2/root# echo -e '127.1 9999\n127.1 9998' > app1

root@superwen2-pc:/data/linkerd_tmp2/root# cat app1

127.1 9999

127.1 9998

root@superwen2-pc:/data/linkerd_tmp2/root# http_proxy=http://127.0.0.1:4140/ curl http://app1

app1

root@superwen2-pc:/data/linkerd_tmp2/root# http_proxy=http://127.0.0.1:4140/ curl http://app1

app2

执行下面命令,返回app1和app2的数量大致相同.

for k in $( seq 1 100 ); do http_proxy=http://127.0.0.1:4140/ curl http://app1; done

注意的一些坑.

如果配置写错了,并不会生效,还是会使用上次正确的配置.例如

root@superwen2-pc:/data/linkerd_tmp2/root# echo 'asdfad' > app1

root@superwen2-pc:/data/linkerd_tmp2/root# http_proxy=http://127.0.0.1:4140/ curl http://app1

app2

2.不能使用下面这种配置了,linkerd解析到了这层,不会再去递归解析/svc/app2地址,而是直接转发了.

127.1 9999

/svc/app2

由于Java中的文件监视器的隐含,该namer消耗大量CPU,不适合生产使用。

linkerd mysql_linkerd ab部署测试相关推荐

  1. ab压力测试: apr_socket_recv: Connection timed out (110)

    使用ab( apache benchmark )压力测试的时候,使用如下命令: ab -n 15000 -c 200 http://localhost/abc/abc.php 执行操作一定条数,或连续 ...

  2. Apache ab压力测试工具

    查看apache是否安装 # rpm -qa httpd httpd-2.2.3-63.el5.centos (在apache 版本2以后,apache全部改名为httpd) ab压力测试工具是apa ...

  3. ab压力测试工具linux,【Linux】ApacheBench(ab)压力测试工具

    AB的简介 ab是apachebench命令的缩写. ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比 ...

  4. apache ab压力测试报错apr_socket_recv

    apache ab压力测试报错(apr_socket_recv: Connection reset by peer (104)) apache 自带的ab工具测试,当并发量达到1000多的时候报错如下 ...

  5. Apache AB 压力测试

    2019独角兽企业重金招聘Python工程师标准>>> Apache AB 压力测试  安装 // 安装工具 yum install httpd-tools 使用 // URL 是网 ...

  6. apache ab压力测试报错

    今天用apache 自带的ab工具测试,当并发量达到1000多的时候报错如下: [root@aa~]# This is ApacheBench, Version 2.3 <Revision:65 ...

  7. Lync2010服务器的高可用性部署测试

    最近对lync2010的高可用性进行了测试,此次测试的架构为1台2012DC,DC服务器上部署CA证书和DNS服务器,两台前端服务器做高可用,用DNS轮询的办法实现地址池的容错,一台LYnc后端数据库 ...

  8. 并发请求多 服务器响应慢 post,【转】吞吐量、QPS(TPS)、并发数、RT性能指标及ab并发测试...

    概念 吞吐量 系统的吞吐量是指系统的抗压.负载能力,指的是单位时间内处理的请求数量.通常情况下,吞吐率用 "字节数/秒" 来衡量,也可以用 "请求数/秒",&q ...

  9. Web性能测试篇:AB 压力测试

    目录 1. 压力测试的概念\定义 2. AB的起源 3. 运行平台区分(Windows\Linux|Mac) 4. 你的第一个AB GET请求脚本 5. AB发起POST.PUT请求 6. AB附带有 ...

最新文章

  1. Qt应用程序主窗口之一:主窗口框架
  2. 初一模拟赛总结(3.23)
  3. Windows 如何用命令终端(CMD)启动和停止 MySQL 数据库服务
  4. 利用UTL_FILE包实现文件I/O操作
  5. linux iptables_linux 开启独立iptables日志
  6. 使用Python编写Prometheus监控metrics接口
  7. go 控制台程序 重复启动_WebAssembly 与 go
  8. avalon调试接口的弹出
  9. Activiti 单环节多人办理一件
  10. 东北大学c语言作业答案,{东北大学}2018年秋学期《画法几何及土木建筑制图》在线作业2课后参考答案...
  11. 这些屏保让你的 Mac 闲置时也能变得美观实用
  12. MacBook怎样退出apple id
  13. 4、网络嗅探器的设计与实现
  14. 期刊如何不分栏添加项目来源
  15. Blend for Visual Studio 概述
  16. 互联网创业公司的一段经历
  17. 韦丹塔和富士康投资200亿美元兴建半导体工厂;精密陶瓷3D打印中日合资企业微瓷公司在景德镇成立 | 美通企业日报...
  18. Linux zip 7z效率比较,linux 下面的 7z和7za的区别
  19. 细数mui框架走过的坑
  20. 生化危机 (深搜 建图)

热门文章

  1. css行内元素和块级元素
  2. Linq快速入门——扩展方法
  3. cmd fsutil 命令 - 创建指定大小文件命令
  4. C#网络编程概述 二
  5. 自己编写错误代码的规范
  6. Nginx安装及配置反向代理
  7. java四类八种基本数据类型
  8. java并发2--进阶
  9. priority_quenue
  10. servelt笔记一