Nginx-Stream-UpSync-Module

弹性扩缩容方案
授权协议 BSD
开发语言 C/C++
所属分类 服务器软件、 Nginx扩展模块
软件类型 开源软件
地区 国产
投 递 者 微生嘉祥
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Nginx-Stream-UpSync-Module 是基于nginx四层TCP协议的弹性扩缩容方案,实现性能无损的扩容缩容:

当前模块支持etcd 和 consul,相关配置如下:

nginx-etcd:

stream {
    upstream test {
        # fake server otherwise ngx_stream_upstream will report error when startup
        server 127.0.0.1:11111;

        # all backend server will pull from etcd when startup and will delete fake server
        upsync 127.0.0.1:8500/v2/keys/upstreams/test upsync_timeout=6m upsync_interval=500ms upsync_type=etcd strong_dependency=off;
        upsync_dump_path /usr/local/nginx/conf/servers/servers_test.conf;
    }

    upstream bar {
        server 127.0.0.1:8090 weight=1, fail_timeout=10, max_fails=3;
    }

    server {
        listen 12345;

        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass test;
    }

    server {
        listen 2345;

        upstream_show
    }

    server {
        listen 127.0.0.1:9091;

        proxy_responses 1;
        proxy_timeout 20s;
        proxy_pass bar;
    }
}

nginx-consul:

stream {
    upstream test {
        # fake server otherwise ngx_stream_upstream will report error when startup
        server 127.0.0.1:11111;

        # all backend server will pull from consul when startup and will delete fake server
        upsync 127.0.0.1:8500/v1/kv/upstreams/test upsync_timeout=6m upsync_interval=500ms upsync_type=consul strong_dependency=off;
        upsync_dump_path /usr/local/nginx/conf/servers/servers_test.conf;
    }

    upstream bar {
        server 127.0.0.1:8090 weight=1, fail_timeout=10, max_fails=3;
    }

    server {
        listen 12345;

        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass test;
    }

    server {
        listen 2345;

        upstream_show
    }

    server {
        listen 127.0.0.1:9091;

        proxy_responses 1;
        proxy_timeout 20s;
        proxy_pass bar;
    }
}

相关设计文档可参考:https://github.com/weibocom/nginx-upsync-module/tree/master/doc

设计原理一致。

  • 缘起 最近一直在研究日志收集系统的框架,之前在线游戏的数据发送都是由游戏服务器发送的,我来之前一直是rsync传输,也还算稳定。但现在上了单机游戏,只能由手机客户端直接发送,dau比较高,最近很火的<<贪吃蛇>>在海外上线,一个星期dau已经达到千万级别。初步方案,lvs做4层负载均衡,下挂nginx做7层转发,数据直接入kafaka。一直不太喜欢通过reload修改nginx upstream,

  • 原理 Nginx为什么那么快 Nginx采用多进程+epoll的方式对请求进行处理,每一个请求就是对socket时间的读写,相比传统的阻塞IO,epoll通过IO多路复用的方式,在同一个线程中高效的完成读写操作,相比多线程减少了线程间切换的消耗,极大地提升了效率。 Nginx请求流程 初始化 请求解析 请求处理 数据过滤 返回 Master和Worker的关系 Master进程Fork出Worke

  • t 编译安装Nginx并添加微博的nginx-upsync-module模块 下载Nginx的源码 # wget http://nginx.org/download/nginx-1.16.0.tar.gz # tar -zvxf nginx-1.16.0.tar.gz 使用git克隆模块 git clone https://github.com/onecer/nginx-upsync-modul

  • 使用nginx-upsync-module动态更新nginxupstream,github 地址为:https://github.com/weibocom/nginx-upsync-module 如果使用的nginx tcp的负载均衡可以使用 https://github.com/xiaokai-wang/nginx-stream-upsync-module nginx-upsync-module

  • 转载请注明出处:https://blog.csdn.net/l1028386804/article/details/100627169 有关Consul的安装可以参见博文《高可用之——Consul+Consul-template实现HTTP动态负载均衡》 一、静态负载均衡 Nginx的四层静态负载均衡需要启用ngx_stream_core_module模块,默认情况下,ngx_stream_cor

  • 1.常用的动态配置Nginx负载均衡方式 Consul+Consul-template 每次发现配置更改,重启Nginx。 Consul+OpenResty 实现无需重启Nginx的动态负载均衡。 Consul+upsync+Nginx 实现无需重启Nginx的动态负载均衡。 (本文如果有错别字还请大家提醒一下) 2、配置Concul服务器 2.1安装解压ZIP软件 如果未安装 unzip软件,在

  • Http动态负载均衡 什么是动态负载均衡 传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件, 因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化、动态化,无需人工重新加载nginx.conf。 这类似分布式的配置中心 动态负载均衡实现方案 1.Consul+Consul-template 每次发现配置更改需要raload ng

 相关资料
  • nginx-upsync-module 是微博开源的一个基于 Nginx 实现动态配置的模块,通过拉取 Consul 或 etcd (及其它)的上游数据,实现无需重新加载 Nginx ,动态修改后端服务器属性(weight,max_fails,down ...)。 修改配置文件并重新启动 Nginx 可能并不总是很方便。 例如,当遇到大流量和高负载,重启 Nginx 并在此时重新加载配置会进一步增

  • ScalingEntry SPI 名称 详细说明 ScalingEntry 弹性伸缩入口 已知实现类 详细说明 MySQLScalingEntry 基于 MySQL 的弹性伸缩入口 PostgreSQLScalingEntry 基于 PostgreSQL 的弹性伸缩入口

  • 背景 Apache ShardingSphere 提供了数据分片的能力,可以将数据分散到不同的数据库节点上,提升整体处理能力。 但对于使用单数据库运行的系统来说,如何安全简单地将数据迁移至水平分片的数据库上,一直以来都是一个迫切的需求; 同时,对于已经使用了 Apache ShardingSphere 的用户来说,随着业务规模的快速变化,也可能需要对现有的分片集群进行弹性扩容或缩容。 简介 Sha

  • 目的 测试 OpenSHift 水平弹性扩展,资源限制。 环境 openshift v3.11.16/kubernetes v1.11.0 步骤 创建工程1. CLI 登录到 OCP $ oc login https://master.example.com:8443 -u admin -p admin2. 创建工程 $ oc new-project test-hpa 准备测试镜像 本部分使用测试

  • 弹性伸缩组即根据业务需求和策略设置伸缩策略,实现虚拟机弹性扩容和收缩的功能。 弹性伸缩组即根据业务需求和策略设置伸缩策略,实现虚拟机弹性扩容和收缩的功能。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “主机/主机/弹性伸缩组” 菜单项,进入弹性伸缩组页面。 使用流程 在主机模板页面中创建用于弹性伸缩组的主机模板,目前仅支持 云联壹云 和Azure平台的主机模板。 在弹性伸缩组页面

  • This module adds cross-site AJAX support to nginx. Currently only cross-site GET is supported. The cross-site GET is currently implemented as JSONP (or "JSON with padding"). See http://en.wikipedia.or