zoukankan      html  css  js  c++  java
  • 微服务~Consul服务注册与发现

    服务发现是基于微服务架构的关键原则之一。尝试配置每个客户端或某种形式的约定可能非常困难,可以非常脆弱。Consul通过HTTP API和DNS提供服务发现服务。Spring Cloud Consul利用HTTP API进行服务注册和发现。这不会阻止非Spring云应用程序利用DNS界面。Consul代理服务器在通过八卦协议进行通信的群集中运行,并使用筏式协议协议。

    文章参考:

    https://www.jianshu.com/p/28c6bd590ca0

    http://blog.csdn.net/y435242634/article/details/78639663

    Consul 四大特性

    1. Service Discovery (服务发现)
    2. Health Check (健康检查)
    3. Multi Datacenter (多数据中心)
    4. Key/Value Storage

    Consul相关知识点

    Agent

    1. Agent 是一个守护进程
    2. 运行在Consul集群的每个成员上
    3. 有Client 和 Server 两种模式
    4. 所有Agent都可以被调用DNS或者HTTP API,并负责检查和维护同步

    Client

    1. Client 将所有RPC请求转发至Server
    2. Client 是相对无状态的
    3. Client 唯一做的就是参与LAN Gossip Pool
    4. Client 只消耗少量的资源和少量的网络带宽

    Server

    1. 参与 Raft quorum(一致性判断)
    2. 响应RPC查询请求
    3. 维护集群的状态
    4. 转发查询到Leader 或 远程数据中心

    Datacenter数据中心

    1. 私有的
    2. 低延迟
    3. 高带宽

    Consensus (一致性)

    Consul 使用consensus protocol 来提供CAP(一致性,高可用,分区容错性)

     Gossip

    一种协议: 用来保证 最终一致性 , 即: 无法保证在某个时刻, 所有节点状态一致, 但可以保证”最终”一致

     启动Consul

    Consul安装之后,代理必须运行。 代理可以在服务器或客户端模式下运行。 每个数据中心都必须至少有一台服务器,但推荐使用3台或5台服务器。 一个单一的服务器部署是非常不推荐的,因为在故障情况下数据丢失是不可避免, 所有其他代理以客户端模式运行。 客户端是一个非常轻量级的进程,它注册服务,运行健康检查,并将查询转发给服务器。 代理程序必须在集群中的每个节点上运行。

    下面介绍几个命令:

    consul agent -dev  以开发模式启动代理,不会持久化信息

    consul members  查看集群成员

    注册服务

    服务可以通过提供服务定义或通过对HTTP API进行适当的调用来注册。
    服务定义是注册服务最常用的方式,所以我们将在这一步中使用这种方法。 我们将建立在上一步中介绍的代理配置。
    首先,为Consul配置创建一个目录。 Consul将所有配置文件加载到配置目录中,因此Unix系统上的一个通用约定是将目录命名为/etc/consul.d(.d后缀意味着“该目录包含一组配置文件”)。

    建立服务配置目录:mkdir /etc/consul.d
    添加文件:echo '{"service": {"name": "web", "tags": ["rails"], "port": 80}}' | sudo tee /etc/consul.d/web.json
    以开发模式启动:consul agent -dev -config-dir=/etc/consul.d
    以服务方式启动:consul agent -server -bootstrap-expect 2 -data-dir ./tmp/consul -node=n1 -bind=192.168.109.241 -ui-dir ./dist -dc=dc1
    以客户端方式启动:consul agent -data-dir ./tmp/consul -ui-dir ./dist -bind=192.168.109.204 -dc=dc1

    加入集群

    将新节点添加到集群:consul join 192.168.100.101(其中101这个节点是master)

    显示成员:consul members

    查看UI管理页面

    http://localhost:8500

    待续...

     

     
  • 相关阅读:
    The analysis of China's holding the Olympic Games
    ASP.NET获取客户端的操作系统、浏览器、.NET版本等信息(图)
    ASP.NET 无提示关闭窗口
    VC 使用CryptoAPI计算Hash值:MD5, SHA
    SQL Server 2005 中设置某个用户对某一个数据库有完全控制的权限
    C# 计算文件的MD5值
    VC 获取物理网卡的MAC地址
    哪些免费邮箱不在邮件内容里插广告?
    忆同学
    使用正则表达式获取连接字符串某项的值
  • 原文地址:https://www.cnblogs.com/lori/p/8391351.html
Copyright © 2011-2022 走看看