博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java B2B2C 源码 Springcloud多租户电子商城系统-Consul整体架构 ...
阅读量:7082 次
发布时间:2019-06-28

本文共 1035 字,大约阅读时间需要 3 分钟。

本文简单介绍了 Consul 的原理,希望能吸引感兴趣的朋友一起探讨研究。

需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六
Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对.
命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品.
一致性协议采用 Raft 算法,用来保证服务的高可用. 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制.

Consul 的使用场景

docker 实例的注册与配置共享
coreos 实例的注册与配置共享
vitess 集群
SaaS 应用的配置共享
与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件
Consul概览

1_3_2

首先Consul支持多数据中心,在上图中有两个DataCenter,他们通过Internet互联,同时请注意为了提高通信效率,只有Server节点才加入跨数据中心的通信。

在单个数据中心中,Consul分为Client和Server两种节点(所有的节点也被称为Agent),Server节点保存数据,Client负责健康检查及转发数据请求到Server;Server节点有一个Leader和多个Follower,Leader节点会将数据同步到Follower,Server的数量推荐是3个或者5个,在Leader挂掉的时候会启动选举机制产生一个新的Leader。

集群内的Consul节点通过gossip协议(流言协议)维护成员关系,也就是说某个节点了解集群内现在还有哪些节点,这些节点是Client还是Server。单个数据中心的流言协议同时使用TCP和UDP通信,并且都使用8301端口。跨数据中心的流言协议也同时使用TCP和UDP通信,端口使用8302。

集群内数据的读写请求既可以直接发到Server,也可以通过Client使用RPC转发到Server,请求最终会到达Leader节点,在允许数据轻微陈旧的情况下,读请求也可以在普通的Server节点完成,集群内数据的读写和复制都是通过TCP的8300端口完成。

转载地址:http://vpvml.baihongyu.com/

你可能感兴趣的文章
apache手动安装
查看>>
Centos7.2安装搜狗拼音
查看>>
HTTP长连接和短连接
查看>>
python-数据类型的补充
查看>>
(赛码"BestCoder"杯中国大学生程序设计冠军赛)GCD
查看>>
软工第二周随笔
查看>>
QT+VS开发环境的安装和可能出现的build错误(转)
查看>>
ARC中strong 和weak知识总结
查看>>
宏定义 注意
查看>>
680. Valid Palindrome II
查看>>
Uva 537 - Artificial Intelligence?
查看>>
在O(1)时间删除链表结点
查看>>
Android上实现MVP模式的途径
查看>>
CALL transaction 的用法-传内表
查看>>
System program tools
查看>>
mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
查看>>
CSS 渐变动画
查看>>
设计模式六大原则
查看>>
Robot Framework - 4 - 创建和扩展测试库的示例
查看>>
打印小票,使用的是BarcodeLib
查看>>