nginx配置负载均衡在upstream server中进行配置:

    1. updtream backend {
    2. hash $uri;
    3. server 192.168.1.1:8080 weight=1 max_fails=2 fail_timeout=10s;
    4. server 192.168.1.2:8080 weight=2 max_fails=2 fail_timeout=10s;
    5. check interval=3000 rise=1 fail=3 timeout=2000 type=http;
    6. check_http_send "HEAD /status HTTP/1.0\r\n\r\n";
    7. check_http_expect_alive http_2xx http_3xx;
    8. }

    但是每次upstream有变更时,都需要到服务器进行修改。因为,需要一种服务注册,可以将upstream动态注册到nginx上,实现upstream服务的自动发现。
    分布式服务发现与注册系统,需要具备以下特性:

    • 服务注册:服务实现者可以通过HTTP API 或者DNS方式,将服务注册到系统
    • 服务发现:服务消费者可以通过HTTP API 或者DNS方式,从系统获取最新的服务IP 和 PORT
    • 故障检测:支持TCP、HTTP等方式的健康检查机制,从而当服务有故障时,自动摘除
    • K/V存储:使用K/V存储实现动态配置中心,
    • 数据一致性:实现集群数据一致性