linkerd mysql_linkerd ab部署测试
环境
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部署测试相关推荐
- ab压力测试: apr_socket_recv: Connection timed out (110)
使用ab( apache benchmark )压力测试的时候,使用如下命令: ab -n 15000 -c 200 http://localhost/abc/abc.php 执行操作一定条数,或连续 ...
- Apache ab压力测试工具
查看apache是否安装 # rpm -qa httpd httpd-2.2.3-63.el5.centos (在apache 版本2以后,apache全部改名为httpd) ab压力测试工具是apa ...
- ab压力测试工具linux,【Linux】ApacheBench(ab)压力测试工具
AB的简介 ab是apachebench命令的缩写. ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比 ...
- apache ab压力测试报错apr_socket_recv
apache ab压力测试报错(apr_socket_recv: Connection reset by peer (104)) apache 自带的ab工具测试,当并发量达到1000多的时候报错如下 ...
- Apache AB 压力测试
2019独角兽企业重金招聘Python工程师标准>>> Apache AB 压力测试 安装 // 安装工具 yum install httpd-tools 使用 // URL 是网 ...
- apache ab压力测试报错
今天用apache 自带的ab工具测试,当并发量达到1000多的时候报错如下: [root@aa~]# This is ApacheBench, Version 2.3 <Revision:65 ...
- Lync2010服务器的高可用性部署测试
最近对lync2010的高可用性进行了测试,此次测试的架构为1台2012DC,DC服务器上部署CA证书和DNS服务器,两台前端服务器做高可用,用DNS轮询的办法实现地址池的容错,一台LYnc后端数据库 ...
- 并发请求多 服务器响应慢 post,【转】吞吐量、QPS(TPS)、并发数、RT性能指标及ab并发测试...
概念 吞吐量 系统的吞吐量是指系统的抗压.负载能力,指的是单位时间内处理的请求数量.通常情况下,吞吐率用 "字节数/秒" 来衡量,也可以用 "请求数/秒",&q ...
- Web性能测试篇:AB 压力测试
目录 1. 压力测试的概念\定义 2. AB的起源 3. 运行平台区分(Windows\Linux|Mac) 4. 你的第一个AB GET请求脚本 5. AB发起POST.PUT请求 6. AB附带有 ...
最新文章
- Qt应用程序主窗口之一:主窗口框架
- 初一模拟赛总结(3.23)
- Windows 如何用命令终端(CMD)启动和停止 MySQL 数据库服务
- 利用UTL_FILE包实现文件I/O操作
- linux iptables_linux 开启独立iptables日志
- 使用Python编写Prometheus监控metrics接口
- go 控制台程序 重复启动_WebAssembly 与 go
- avalon调试接口的弹出
- Activiti 单环节多人办理一件
- 东北大学c语言作业答案,{东北大学}2018年秋学期《画法几何及土木建筑制图》在线作业2课后参考答案...
- 这些屏保让你的 Mac 闲置时也能变得美观实用
- MacBook怎样退出apple id
- 4、网络嗅探器的设计与实现
- 期刊如何不分栏添加项目来源
- Blend for Visual Studio 概述
- 互联网创业公司的一段经历
- 韦丹塔和富士康投资200亿美元兴建半导体工厂;精密陶瓷3D打印中日合资企业微瓷公司在景德镇成立 | 美通企业日报...
- Linux zip 7z效率比较,linux 下面的 7z和7za的区别
- 细数mui框架走过的坑
- 生化危机 (深搜 建图)