美文网首页
Ubuntu 20.04 安装 Nats

Ubuntu 20.04 安装 Nats

作者: 岑吾 | 来源:发表于2021-10-27 15:56 被阅读0次

    1、介绍

    nats是一个开源的,云原生的消息系统。核心基于EventMachine开发,原理是基于消息发布订阅机制,每台服务器上的每个模块会根据自己的消息类别向MessageBus发布多个消息主题,而同时也向自己需要交互的模块,按照需要的主题订阅消息。能够达到每秒8-11百万个消息,整个程序很小只有3M Docker image,它不支持持久化消息,如果你离线,你就不能获得消息。使用nats streaming可以做到持久化,缓存等功能。

    2、下载

    https://github.com/nats-io下载最新版本的nats-server版本。这里用2.6.2版本

    3、运行

    解压后直接运行nats-server就可以了

    tar zxf nats-server-v2.6.2-linux-amd64.tar.gz
    ./nats-server-v2.6.2-linux-amd64/nats-server
    

    4、将nats添加为服务

    vim /lib/systemd/system/nats.service
    
    [Unit]
    Description=nats-server daemon
    After=syslog.target  network.target
    Wants=network.target
    
    [Service]
    ExecStart=/home/nats-server/nats-server -c /home/nats-server/nats.yml
    Restart= on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    然后就可以通过systemctl来启动停止了

    #开机启动
    systemctl enable nats
    
    # 启动
    systemctl start nats
    
    # 停止
    systemctl stop nats
    
    # 查看状态
    systemctl status nats
    

    5、启动参数配置说明

    在源码main.go中可以看到配置参数。

    服务器选项:
        -a, --addr <host>                绑定主机IP地址(默认是0.0.0.0)
        -p, --port <port>                客户端连接NATS服务器使用的端口(默认是4222)
        -n, --name <server_name>         服务器名字(默认:自动)
        -P, --pid <file>                 存储PID的文件
        -m, --http_port <port>           HTTP监听端口
        -ms,--https_port <port>          HTTPS监听端口
        -c, --config <file>              指定配置文件
        -t                               测试配置文并退出
        -sl,--signal <signal>[=<pid>]    向 nats-server 进程发送信号(停止、退出、重新打开、重新加载)
                                          <pid> 可以是 PID(例如 1)或 PID 文件的路径(例如 /var/run/nats-server.pid)
            --client_advertise <string>  向其他服务器广播的客户端 URL
    
    日志选项:
        -l, --log <file>                 指定日志输出的文件
        -T, --logtime                    是否开启日志的时间戳(默认为true)
        -s, --syslog                     启用syslog作为日志方法
        -r, --remote_syslog <addr>       远程日志服务器的地址(默认为udp://localhost:514)
        -D, --debug                      开启调试输出
        -V, --trace                      跟踪原始的协议
        -VV                              详细跟踪(也跟踪系统帐户)
        -DV                              调试并跟踪
        -DVV                             调试和详细跟踪(也跟踪系统帐户)
    
    JetStream 选项:
        -js, --jetstream                 启用 JetStream 功能。
        -sd, --store_dir <dir>           设置存储目录。
    
    授权认证选项:
            --user <user>                连接需要的用户名
            --pass <password>            连接需要的密码
            --auth <token>               连接所需的授权令牌
    
    TLS 安全选项:
            --tls                       启用TLS,不验证客户端(默认为false)
            --tlscert <file>             服务器证书文件
            --tlskey <file>              服务器证书私钥
            --tlsverify                  启用TLS,每一个客户端都要认证
            --tlscacert <file>           客户端证书CA用于认证
    
    集群选项:
            --routes <rurl-1, rurl-2>    请求和连接的路由
            --cluster <cluster-url>      请求路由的集群 URL
            --cluster_name <string>      Cluster Name,如果不设置会动态生成一个
            --no_advertise <bool>        不向客户端通告已知的集群信息
            --cluster_advertise <string> 向其他服务器通告的集群 URL
            --connect_retries <number>   连接重试次数
    
    常规选项:
        -h, --help                       显示帮助消息
        -v, --version                   显示版本信息
            --help_tls                   显示TLS 帮助消息
    

    6、配置文件

    使用参数启动难免太复杂了点,所以可以通过-c加配置文件来启动。

    NATS服务器配置文件的格式比较灵活,结合了传统的JSON格式和新的YAML格式的风格。
    NATS配置文件格式支持以下语法:

    Mixed Arrays: […]
    Nested Maps: {…}
    Multiple comment types: # and //
    Key value assigments using:
     
        Equals sign (foo = 2)
        Colon (foo: 2)
        Whitespace (foo 2)
     
    Maps can be assigned with no key separator
     
    Semicolons as value terminators in key/value assignments are optional<br>
    

    简单配置

    listen: 127.0.0.1:4222
    

    NATS服务器配置文件示例

    port: 4242   # 供客户端连接的监听端口
    net: apcera.me # 监听的网络地址
     
    http_port: 8222 # HTTP监控端口
     
    # 客户端连接的认证信息
    authorization {
     user:   derek
     password: T0pS3cr3t
     timeout: 1
    }
     
    # 集群定义
    cluster {
     
     host: '127.0.0.1' # 主机地址
     port: 4244     # 路由连接的入站(inbound)端口
     
     # 路由连接的认证信息
     authorization {
      user: route_user
      password: T0pS3cr3tT00!
      timeout: 0.5
     }
     
     # Routes are actively solicited and connected to from this server.
     # Other servers can connect to us if they supply the correct credentials
     # in their routes definitions from above.
     routes = [
      nats-route://user1:pass1@127.0.0.1:4245
      nats-route://user2:pass2@127.0.0.1:4246
     ]
    }
     
    # 日志选项
    debug:  false
    trace:  true
    logtime: false
    log_file: "/tmp/gnatsd.log"
     
    # PID进程文件
    pid_file: "/tmp/gnatsd.pid"
     
    # 一些系统属性
     
    # 客户端最大连接数
    max_connections: 100
     
    # 最大协议控制行
    max_control_line: 512
     
    # 最大的有效负载
    max_payload: 65536
     
    # 慢消费者阀值
    max_pending_size: 10000000
    

    配置文件参考:http://article.nxpop.com/col/6304.html

    相关文章

      网友评论

          本文标题:Ubuntu 20.04 安装 Nats

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