haproxy2.0 支持基于dataplaneapi 的haproxy 动态配置修改以及服务生效,早期大家为了动态
可以会基于dsn 的服务发现模式,基于confd 结合consul 动态生成配置并加载,现在支持了基于
api 的控制,还是很方便的

帮助命令

 
Usage:
  dataplaneapi [OPTIONS]
API for editing and managing haproxy instances
Application Options:
      --scheme= the listeners to enable, this can be repeated and defaults to the schemes in the swagger spec
      --cleanup-timeout= grace period for which to wait before killing idle connections (default: 10s)
      --graceful-timeout= grace period for which to wait before shutting down the server (default: 15s)
      --max-header-size= controls the maximum number of bytes the server will read parsing the request header's keys and values, including the request line. It does not limit the size
                                                   of the request body. (default: 1MiB)
      --socket-path= the unix socket to listen on (default: /var/run/data-plane.sock)
      --host= the IP to listen on (default: localhost) [$HOST]
      --port= the port to listen on for insecure connections, defaults to a random value [$PORT]
      --listen-limit= limit the number of outstanding requests
      --keep-alive= sets the TCP keep-alive timeouts on accepted connections. It prunes dead TCP connections ( e.g. closing laptop mid-download) (default: 3m)
      --read-timeout= maximum duration before timing out read of the request (default: 30s)
      --write-timeout= maximum duration before timing out write of the response (default: 60s)
      --tls-host= the IP to listen on for tls, when not specified it's the same as --host [$TLS_HOST]
      --tls-port= the port to listen on for secure connections, defaults to a random value [$TLS_PORT]
      --tls-certificate= the certificate to use for secure connections [$TLS_CERTIFICATE]
      --tls-key= the private key to use for secure connections [$TLS_PRIVATE_KEY]
      --tls-ca= the certificate authority file to be used with mutual tls auth [$TLS_CA_CERTIFICATE]
      --tls-listen-limit= limit the number of outstanding requests
      --tls-keep-alive= sets the TCP keep-alive timeouts on accepted connections. It prunes dead TCP connections ( e.g. closing laptop mid-download)
      --tls-read-timeout= maximum duration before timing out read of the request
      --tls-write-timeout= maximum duration before timing out write of the response
HAProxy options:
  -c, --config-file= Path to the haproxy configuration file (default: /etc/haproxy/haproxy.cfg)
  -u, --userlist= Userlist in HAProxy configuration to use for API Basic Authentication (default: controller)
  -b, --haproxy-bin= Path to the haproxy binary file (default: haproxy)
  -d, --reload-delay= Minimum delay between two reloads (in s) (default: 5)
  -r, --reload-cmd= Reload command
  -s, --restart-cmd= Restart command
      --reload-retention= Reload retention in days, every older reload id will be deleted (default: 1)
  -t, --transaction-dir= Path to the transaction directory (default: /tmp/haproxy)
  -n, --backups-number= Number of backup configuration files you want to keep, stored in the config dir with version number suffix (default: 0)
  -m, --master-runtime= Path to the master Runtime API socket
  -i, --show-system-info Show system info on info endpoint
Logging options:
      --log-to=[stdout|file] Log target, can be stdout or file (default: stdout)
      --log-file= Location of the log file (default: /var/log/dataplaneapi/dataplaneapi.log)
      --log-level=[trace|debug|info|warning|error] Logging level (default: warning)
      --log-format=[text|JSON] Logging format (default: text)
Show version:
  -v, --version Version and build information
Help Options:
  -h, --help Show this help message
 
 

<wiz_tmp_tag class="wiz-block-scroll">

 

启动

  • 普通方式
./dataplaneapi --port 5555 -b /usr/sbin/haproxy -c /etc/haproxy/haproxy.cfg -d 5 -r "service haproxy reload" -s "service haproxy restart" -u dataplaneapi -t /tmp/haproxy
  • 容器方式
 ./dataplaneapi --host 0.0.0.0 --port 5555 --haproxy-bin /usr/sbin/haproxy --config-file /etc/haproxy/haproxy.cfg --reload-cmd "kill -SIGUSR2 1" --reload-delay 5 --userlist controller
  • api 请求方式
curl -u <user>:<pass> -H "Content-Type: application/json" "http://127.0.0.1:5555/v1/"
  • haproxy 2.0 的process manager
   program api
    command dataplaneapi --host 0.0.0.0 --port 5555 --haproxy-bin /usr/sbin/haproxy --config-file /etc/haproxy/haproxy.cfg --reload-cmd "systemctl reload haproxy" --reload-delay 5 --userlist controller

说明

haproxy2.0 的扩展能力还是很不错的,而且源码在github 开放的,后续基于docker 运行下dataplaneapi,试用下功能

api 参考资料

https://www.haproxy.com/documentation/hapee/1-9r1/configuration/dataplaneapi/
https://github.com/haproxytech/dataplaneapi

haproxy2.0 dataplaneapi 简单说明的更多相关文章

  1. haproxy 2.0 dataplaneapi rest api 几个方便的问题排查接口

    在使用haproxy 2.0 dataplaneapi的时候,刚开始的时候我们可能需要进行调试,保证我们的配置在我们的系统环境中 是可以使用的,以下是自己在当前学习中为了排查问题会使用的几个api 创 ...

  2. haproxy 2.0 dataplaneapi rest api 转为graphql

    haproxy 2.0 dataplaneapi rest api 是比较全的,以下是一个简单的集成graphql,通过swagger-to-graphql 转换为graphql api 方便使用 环 ...

  3. haproxy 2.0 dataplaneapi docker 镜像

    为了方便测试dataplaneapi 基于官方的docker镜像,制作了一个简单的包含dataplaneapi 的镜像 下载dataplaneapi https://github.com/haprox ...

  4. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理

    这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是想通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基 ...

  5. 云优化的概念、Entity Framework 7.0、简单吞吐量压力测试

    云优化的概念.Entity Framework 7.0.简单吞吐量压力测试 继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之 ...

  6. Android 6.0 超级简单的权限申请2 (Permission)

    代码地址如下:http://www.demodashi.com/demo/13506.html 写在前面 上次写了一个权限申请的例子Android 6.0 超级简单的权限申请 (Permission) ...

  7. Android 6.0 超级简单的权限申请 (Permission)

    代码地址如下:http://www.demodashi.com/demo/13369.html 背景描述 随着Android系统的不断升级,谷歌对用户的隐私是越来越注重了,给我们开发者带来了更多的繁琐 ...

  8. haproxy2.0入门部署教程

    测试后发现,haproxy2.0和之前的版本部署有些许差异,配置文件的写法也是不同的 测试环境:Centos7.3 IP:172.16.1.227 172.16.1.228 部署httpd,页面内容为 ...

  9. 用Vue2.0实现简单的分页及跳转

    用Vue2.0实现简单的分页及跳转 2018年07月26日 20:29:51 Freya_yyy 阅读数 3369    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...

随机推荐

  1. 「雅礼集训 2017 Day1」字符串 SAM、根号分治

    LOJ 注意到\(qk \leq 10^5\),我们很不自然地考虑根号分治: 当\(k > \sqrt{10^5}\),此时\(q\)比较小,与\(qm\)相关的算法比较适合.对串\(s\)建S ...

  2. (Manjaro)VirtualBox异常修复:RTR3InitEx failed with rc=-1912 (rc=-1912)

    引言 VirtualBox运行异常好几天,其中尝试一些操作都没有解决. 版本说明 系统版本:4.19.88-1-MANJARO Vbox镜像:kali-linux-2019.4-vbox-amd64. ...

  3. .NET中的异步编程——常见的错误和最佳实践

    在这篇文章中,我们将通过使用异步编程的一些最常见的错误来给你们一些参考. 背景 在之前的文章<.NET中的异步编程——动机和单元测试>中,我们开始分析.NET世界中的异步编程.在那篇文章中 ...

  4. 详细的Hadoop的入门教程-单机模式 Standalone Operation

    一. 单机模式Standalone Operation 单机模式也叫本地模式,只适用于本地的开发调试,或快速安装体验hadoop,本地模式的安装比较简单,下载完hadoop安装包就可以直接运行. 1. ...

  5. HDU2577 How to Type

    题目链接 一道DP问题 定义dp[i][j]为敲完第i个字母的最小花费,j=1代表Caps Lock打开,j=0代表Caps Lock关闭,则有: 如果第i个字母为大写: dp[i][1]=min(d ...

  6. 2019 百合佳缘java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.百合佳缘等公司offer,岗位是Java后端开发,因为发展原因最终选择去了百合佳缘,入职一年时间了,也成为了面 ...

  7. Java自学-数字与字符串 数学方法

    Java Math类常用方法 java.lang.Math提供了一些常用的数学运算方法,并且都是以静态方法的形式存在 步骤 1 : 四舍五入, 随机数,开方,次方,π,自然常数 package dig ...

  8. ajax分页和搜索

    //控制器function show(Request $request){ $page=$request->page?$request->page:1; $size=4; $pian=($ ...

  9. cmd查找并杀死被占用的端口的进程

    java开发启动server的时候经常会遇到端口被占用的错误提示, 如果不想更换服务配置的端口号,那么怎么解决端口被占用的情况呢? 1. cmd窗口输入netstat -ano ,在列表中查看被占用的 ...

  10. 请实现一个js脚本,要求做到将数字转化为千分位表示如:1234567转化为1,234,567

    //法一 function parseNum(num){ var list = new String(num).split('').reverse(); for(var i = 0; i < l ...