美文网首页
(39) Lars启动工具脚本(LoadBalanceAgent

(39) Lars启动工具脚本(LoadBalanceAgent

作者: 刘丹冰Aceld | 来源:发表于2019-11-29 15:22 被阅读0次

    【Lars教程目录】

    Lars源代码
    https://github.com/aceld/Lars


    【Lars系统概述】
    第1章-概述
    第2章-项目目录构建


    【Lars系统之Reactor模型服务器框架模块】
    第1章-项目结构与V0.1雏形
    第2章-内存管理与Buffer封装
    第3章-事件触发EventLoop
    第4章-链接与消息封装
    第5章-Client客户端模型
    第6章-连接管理及限制
    第7章-消息业务路由分发机制
    第8章-链接创建/销毁Hook机制
    第9章-消息任务队列与线程池
    第10章-配置文件读写功能
    第11章-udp服务与客户端
    第12章-数据传输协议protocol buffer
    第13章-QPS性能测试
    第14章-异步消息任务机制
    第15章-链接属性设置功能


    【Lars系统之DNSService模块】
    第1章-Lars-dns简介
    第2章-数据库创建
    第3章-项目目录结构及环境构建
    第4章-Route结构的定义
    第5章-获取Route信息
    第6章-Route订阅模式
    第7章-Backend Thread实时监控


    【Lars系统之Report Service模块】
    第1章-项目概述-数据表及proto3协议定义
    第2章-获取report上报数据
    第3章-存储线程池及消息队列


    【Lars系统之LoadBalance Agent模块】
    第1章-项目概述及构建
    第2章-主模块业务结构搭建
    第3章-Report与Dns Client设计与实现
    第4章-负载均衡模块基础设计
    第5章-负载均衡获取Host主机信息API
    第6章-负载均衡上报Host主机信息API
    第7章-过期窗口清理与过载超时(V0.5)
    第8章-定期拉取最新路由信息(V0.6)
    第9章-负载均衡获取Route信息API(0.7)
    第10章-API初始化接口(V0.8)
    第11章-Lars Agent性能测试工具
    第12章- Lars启动工具脚本


    七、Lars启动工具脚本

    我们提供一个启动lars系统子系统和测试工具的一个脚本工具,run_lars

    Lars/run_lars

    #!/bin/bash
    
    LARS_REPORTER_PATH="./lars_reporter"
    LARS_DNS_PATH="./lars_dns"
    LARS_LBAGENT_PATH="./lars_loadbalance_agent"
    LARS_WEB_PATH="./larsWeb"
    LARS_API_EXAMPLE_PATH="./api/cpp/example"
    
    usage()
    {
        echo ""
        echo "=======启动子系统=========="
        echo "Usage ./run_lars [reporter|dns|lbagent|web|test]"
        echo
    
        echo "=======测试工具============"
        echo "Usage ./run_lars test gethost ModID CmdID"
        echo "Usage ./run_lars test getroute ModID CmdID"
        echo "Usage ./run_lars test report ModID CmdID IP Port 0|1  --- 0:SUCC, 1:OVERLOAD"
        echo "Usage ./run_lars test simulator ModID CmdID [errRate(0-10)] [queryCnt(0-999999)]"
        echo "Usage ./run_lars test qps ThreadNum"
        echo "Usage ./run_lars test example ModID CmdID"
        echo
    }
    
    if [ "$1" = "test" ]; then
        if [ "$2" = "gethost" ]; then
            $PWD/$LARS_API_EXAMPLE_PATH/get_host $3 $4 
        elif [ "$2" = "getroute" ]; then
            $PWD/$LARS_API_EXAMPLE_PATH/get_route $3 $4 
        elif [ "$2" = "report" ]; then
            $PWD/$LARS_API_EXAMPLE_PATH/report $3 $4 $5 $6 $7
        elif [ "$2" = "example" ]; then
            $PWD/$LARS_API_EXAMPLE_PATH/example $3 $4
        elif [ "$2" = "simulator" ]; then
            if [ $# -eq 4 ]; then
                $PWD/$LARS_API_EXAMPLE_PATH/simulator $3 $4 
            elif [ $# -eq 5 ]; then
                $PWD/$LARS_API_EXAMPLE_PATH/simulator $3 $4 $5
            elif [ $# -eq 6 ]; then
                $PWD/$LARS_API_EXAMPLE_PATH/simulator $3 $4 $5 $6
            else
                usage
            fi
        elif [ "$2" = "qps" ]; then
            $PWD/$LARS_API_EXAMPLE_PATH/qps $3
        fi
    elif [ "$1" = "reporter" ]; then
        cd $LARS_REPORTER_PATH
        ./bin/lars_reporter
    elif [ "$1" = "dns" ]; then
        cd $LARS_DNS_PATH
        ./bin/lars_dns
    elif [ "$1" = "lbagent" ]; then
        cd $LARS_LBAGENT_PATH
        ./bin/lars_lb_agent
    elif [ "$1" = "web" ]; then
        cd $LARS_WEB_PATH
        ./lars-web
    elif [ "$1" = "help" ]; then
        usage
    else
        usage
    fi
    

    启动 Lars Reporter

    $ ./run_lars reporter
     
    
            ▄▄                                               
            ██                                               
            ██         ▄█████▄   ██▄████  ▄▄█████▄           
            ██         ▀ ▄▄▄██   ██▀      ██▄▄▄▄ ▀           
            ██        ▄██▀▀▀██   ██        ▀▀▀▀██▄           
            ██▄▄▄▄▄▄  ██▄▄▄███   ██       █▄▄▄▄▄██           
            ▀▀▀▀▀▀▀▀   ▀▀▀▀ ▀▀   ▀▀        ▀▀▀▀▀▀            
        Load balance And Remote service schedule System 
                                                             
            _____                       _                       
           |  __ \                     | |
           | |__) |___ _ __   ___  _ __| |_ ___ _ __
           |  _  // _ \ '_ \ / _ \| '__| __/ _ \ '__|
           | | \ \  __/ |_) | (_) | |  | ||  __/ |
           |_|  \_\___| .__/ \___/|_|   \__\___|_|
                      | |
                      |_|
    
                ITCAST(https://www.itcast.cn)
             ------------------------------------ 
    
    create 0 thread
    create 1 thread
    create 2 thread
    create 3 thread
    create 4 thread
    add msg cb msgid = 3
    

    启动 Lars dns

    $ ./run_lars dns
     
    
            ▄▄                                               
            ██                                               
            ██         ▄█████▄   ██▄████  ▄▄█████▄           
            ██         ▀ ▄▄▄██   ██▀      ██▄▄▄▄ ▀           
            ██        ▄██▀▀▀██   ██        ▀▀▀▀██▄           
            ██▄▄▄▄▄▄  ██▄▄▄███   ██       █▄▄▄▄▄██           
            ▀▀▀▀▀▀▀▀   ▀▀▀▀ ▀▀   ▀▀        ▀▀▀▀▀▀            
        Load balance And Remote service schedule System 
                                                             
                    _____ 
                   |  __ \ 
                   | |  | |_ __  ___ 
                   | |  | | '_ \/ __|
                   | |__| | | | \__ \ 
                   |_____/|_| |_|___/ 
    
                ITCAST(https://www.itcast.cn)
             ------------------------------------ 
    
    create 0 thread
    create 1 thread
    create 2 thread
    create 3 thread
    create 4 thread
    add msg cb msgid = 1
    lars dns service ....
    now route version is 1574674421
    

    启动 Lars Lb Agent

    $ ./run_lars lbagent
    
            ▄▄                                               
            ██                                               
            ██         ▄█████▄   ██▄████  ▄▄█████▄           
            ██         ▀ ▄▄▄██   ██▀      ██▄▄▄▄ ▀           
            ██        ▄██▀▀▀██   ██        ▀▀▀▀██▄           
            ██▄▄▄▄▄▄  ██▄▄▄███   ██       █▄▄▄▄▄██           
            ▀▀▀▀▀▀▀▀   ▀▀▀▀ ▀▀   ▀▀        ▀▀▀▀▀▀            
        Load balance And Remote service schedule System 
                                                             
          _      _                                _  
         | |    | |         /\                   | | 
         | |    | |__      /  \   __ _  ___ _ __ | |_ 
         | |    | '_ \    / /\ \ / _` |/ _ \ '_ \| __| 
         | |____| |_) |  / ____ \ (_| |  __/ | | | |_ 
         |______|_.__/  /_/    \_\__, |\___|_| |_|\__| 
                                  __/ | 
                                 |___/  
    
                ITCAST(https://www.itcast.cn)
             ------------------------------------ 
    
    

    其他测试工具启动方式

    $ ./run_lars help
    
    =======启动子系统==========
    Usage ./run_lars [reporter|dns|lbagent|web|test]
    
    =======测试工具============
    Usage ./run_lars test gethost ModID CmdID
    Usage ./run_lars test getroute ModID CmdID
    Usage ./run_lars test report ModID CmdID IP Port 0|1  --- 0:SUCC, 1:OVERLOAD
    Usage ./run_lars test simulator ModID CmdID [errRate(0-10)] [queryCnt(0-999999)]
    Usage ./run_lars test qps ThreadNum
    Usage ./run_lars test example ModID CmdID
    
    

    关于作者:

    作者:Aceld(刘丹冰)

    mail: danbing.at@gmail.com
    github: https://github.com/aceld
    原创书籍gitbook: http://legacy.gitbook.com/@aceld

    原创声明:未经作者允许请勿转载, 如果转载请注明出处

    相关文章

      网友评论

          本文标题:(39) Lars启动工具脚本(LoadBalanceAgent

          本文链接:https://www.haomeiwen.com/subject/fucgwctx.html