【开发工具】Consul使用:1、介绍及安装

从刚入职接触Zookeeper开始,简单的认为ZK是作为服务注册与订阅使用的微服务架构组件,zookeeper的入门比较简单,主要就是zoo.cfg文件的配置,还有可视化工具zkui可以很感官的看到服务的注册信息,很方便。

后来又使用ZK进行动态参数配置中心,充分利用了watcher监听通知的功能,但是集成的方式需要自己进行代码维护逻辑,使得开发面向了过程,需要对每一个需要监听的节点创建一个watcher,然后再实现add/update/delete等方法,对开发人员的要求较高,使用频率不怎么大。

再后来公司框架集成Springcloud,开始学习使用EUREKA和Consul,下面是从https://blog.csdn.net/u013068377/article/details/78933654摘过来的

FeatureConsulzookeeperetcd(没用过)euerka
服务健康检查服务状态,内存,硬盘等(弱)长连接,keepalive连接心跳可配支持
多数据中心支持
kv存储服务支持支持支持
一致性raftpaxosraft
capcacpcpap
使用接口(多语言能力)支持http和dns客户端http/grpchttp(sidecar)
watch支持全量/支持long polling支持支持 long polling支持 long polling/大部分增量
自身监控metricsmetricsmetrics
安全acl /httpsaclhttps支持(弱)
spring cloud集成已支持已支持已支持已支持

因为现在主要使用Consul进行服务发现,其他的先略过。

一、Consul的安装

Consul中心和Zk类似是个客户端执行工具,从官网很容易下载:https://www.consul.io/

https://www.consul.io/downloads.html

直接配置环境变量,或者在加压文件上shift+右击弹出命令框,输入consul即可

 

consul需要服务器的性能要求

类型中央处理器内存磁盘典型的云实例类型
2核心8-16 GB RAM50GBAWS:m5.large,m5.xlarge
    Azure:Standard_A4_v2,Standard_A8_v2
    GCE:n1-standard-8,n1-standard-16
4-8核心32-64 GB RAM100GBAWS:m5.2xlarge,m5.4xlarge
    Azure:Standard_D4_v3,Standard_D5_v3
    GCE:n1-standard-32,n1-standard-64

小尺寸适用于大多数初始生产部署或开发/测试环境。大尺寸适用于工作负载持续较高的生产环境。

 

consul集群架构:

参考图

上面这图是官网获得的机构图,他分为了两块数据中心,也就是两个集群中心。每个通常是三到五台服务器。Consul通过WAN链接连接的独立集群支持多数据中心部署。在某些情况下,还可以在同一LAN环境中部署两个或多个Consul集群。

主要了解一下节点之间的网络通讯:

代理以客户端或服务器模式运行,都采用的是Gossip协议规范(Redis集群也是如此规范)。初始探测每秒通过UDP发送。如果节点无法在内部进行确认200ms,则代理将通过TCP进行ping操作。如果TCP探测失败(10秒超时),它会要求可配置数量的随机节点探测同一节点(也称为间接探测)。如果对等体没有关于节点状态的响应,则该代理被标记为关闭。

代理的状态直接影响服务发现结果。如果代理已关闭,则它正在监视的服务也将标记为关闭。

在跨越L2段的较大网络中,流量通常穿过防火墙和/或路由器。必须更新ACL或防火墙规则以允许以下端口:

名称港口描述
服务器RPC8300 服务器用于处理来自其他代理的传入请求。仅限TCP。
Serf LAN8301 用于处理局域网中的Gossip协议。所有代理都使用TCP和UDP。
Serf WAN8302-1 禁用(在Consul 1.0.7中可用)服务器用于通过LAN和WAN连接到其他服务器。TCP和UDP。
HTTP API8500-1 禁用客户端用于与HTTP API通信。仅限TCP。
DNS接口8600-1 禁用 

数据中心设计部分所述,网络区域和网段可用于防止在不同子网之间打开防火墙端口。

默认情况下,代理仅侦听本地接口上的HTTP和DNS流量。

二、Consul的简单介绍

比较详情的https://segmentfault.com/a/1190000005026002

这里主要详细讲解Consul的一些命令操作符

控制台输入:consul 

C:\Users\liuguangyu>consul
Usage: consul [--version] [--help] <command> [<args>]

Available commands are:
    acl            Interact with Consul's ACLs #与控制访问列表相关联
    agent          Runs a Consul agent #启动代理
    catalog        Interact with the catalog #与目录相关
    connect        Interact with Consul Connect #与连接相关
    debug          Records a debugging archive for operators #debug方式
    event          Fire a new event #
    exec           Executes a command on Consul nodes
    force-leave    Forces a member of the cluster to enter the "left" state
    info           Provides debugging information for operators.
    intention      Interact with Connect service intentions
    join           Tell Consul agent to join cluster #手动将节点加入集群
    keygen         Generates a new encryption key
    keyring        Manages gossip layer encryption keys
    kv             Interact with the key-value store
    leave          Gracefully leaves the Consul cluster and shuts down
    lock           Execute a command holding a lock
    maint          Controls node or service maintenance mode
    members        Lists the members of a Consul cluster
    monitor        Stream logs from a Consul agent
    operator       Provides cluster-level tools for Consul operators
    reload         Triggers the agent to reload configuration files
    rtt            Estimates network round trip time between nodes
    services       Interact with services
    snapshot       Saves, restores and inspects snapshots of Consul server state
    validate       Validate config files/directories
    version        Prints the Consul version
    watch          Watch for changes in Consul #类似ZK的watcher

1、关于acl的概念查看https://blog.csdn.net/ningmeng_bumeng/article/details/78614362,主要用于网络流量控制,具体在consul上创建策略的方式可以查看官方文档https://learn.hashicorp.com/consul/advanced/day-1-operations/acl-guide

2、consul的启动一般都是通过代理启动,代理指明了客户端的地址,未完待续。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值