zoukankan      html  css  js  c++  java
  • Consul安装

    一、Consul是什么?

      Consul是一个服务网格(微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控)解决方案,它是一个一个分布式的,高度可用的系统,而且开发使用都很简便。它提供了一个功能齐全的控制平面,主要特点是:服务发现、健康检查、键值存储、安全服务通信、多数据中心。

    二、单体部署

    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul -p 8500:8500 --net dznetwork --ip 172.172.0.5 -v /data/consul:/consul/data consul agent -server -bootstrap -ui -node=1 -client='0.0.0.0'

      这里指定了网络组和IP,可以根据自身情况来搭建

    三、群集部署

      此示例由一个Consul Client以及三个Consul Server组成,其中,Consul的Client和Server节点共同构成一个Data Center。Consul支持多数据中心

    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_client_1 -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 --net dznetwork --ip 172.172.0.5 -v /data/consul:/consul/data consul agent -server -bootstrap -ui -node=consul_client_1 -client='0.0.0.0' -bind='172.172.0.5' -bootstrap-expect=3 --restart=always

    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_1 --net dznetwork --ip 172.172.0.6 consul agent -server -node=consul_server_1 -retry-join='172.172.0.5' --restart=always

    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_2 --net dznetwork --ip 172.172.0.7 consul agent -server -node=consul_server_2 -retry-join='172.172.0.5' --restart=always

    docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_3 --net dznetwork --ip 172.172.0.8 consul agent -server -node=consul_server_3 -retry-join='172.172.0.5' --restart=always

      然后就可以通过宿主IP打开 http://192.168.1.100:8500/ Web管理界面 

    四、HA整体架构

      对于实际应用中,我们往往会考虑单点问题,因此会借助一些负载均衡技术来做高可用的架构,这里给出一个建议的HA示例的整体架构:

      注:对于一个API请求,首先会经历一个Load Balancer才会到达API Gateway,这个Load Balancer可以是基于硬件的F5,也可以是基于软件的Nginx或LVS再搭配Keepalived,一般来说大部分团队都会选择Nginx。然后API Gateway通过部署多个,来解决单点问题,也达到负载均衡的效果。而对于API Gateway和Consul Client之间的连接,我们往往也会增加一个Load Balancer来实现服务发现的高可用,这个Load Balancer也一般会基于Nginx/LVS搭配Keepalived,API Gateway只需要访问一个Virtual IP即可。而在Consul Data Center中,Consul Server会选择3或5个,Consul Client也会部署多个,刚刚提到的Virtual IP则会指向多个Consul Client,从而防止了Consul Client的单点问题。

      这样就能达到真正的高可用。

  • 相关阅读:
    关于DataTables一些小结
    Oracle导入(imp )与导出(exp )
    HTTPS访问:weblogic下配置SSL
    highcharts 多数据+切换
    maven新建Spring MVC + MyBatis + Oracle的Web项目中pom.xml文件
    全选与反选(dom与jquery比较)
    Java中的try、catch、finally块简单的解析
    jquery中事件重复绑定以及解绑问题
    使用JS创建表格以及隔行换色(包括隔N行换色)
    wpf DataGrid加载行号
  • 原文地址:https://www.cnblogs.com/shumtn/p/13398870.html
Copyright © 2011-2022 走看看