东方水蓉|Consul是什么?

在计算机技术日新月异的今天,Docker在国内发展的如火如荼 。 特别是在一线互联网公司Docker的使用是十分普遍的,甚至成为了一些企业面试的加分项 , 那么今天我们继续关于Docker的精华问答 。
东方水蓉|Consul是什么?
文章图片
1
Q:Consul是什么?
A:
Consul是一个分布式、高可用的系统 , 是一个为了解决在生产环境中服务注册 , 服务发现 , 服务配置的一个工具 , 它有多个组件 , 提供如下几个关键功能:
服务发现:Consul的某些客户端可以提供一个服务 , 例如api或者mysql , 其它客户端可以使用Consul去发现这个服务的提供者 。 使用DNS或者HTTP , 应用可以很容易的找到他们所依赖的服务 。
健康检查:Consul客户端可以提供一些健康检查 , 这些健康检查可以关联到一个指定的服务(服务是否返回200OK) , 也可以关联到本地节点(内存使用率是否在90%以下) 。 这些信息可以被一个操作员用来监控集群的健康状态 , 被服务发现组件路由时用来远离不健康的主机 。
键值存储:应用可以使用Consul提供的分层键值存储用于一些目的 , 包括动态配置、特征标记、协作、leader选举等等 。 通过一个简单的HTTPAPI可以很容易的使用这个组件 。
多数据中心:Consul对多数据中心有非常好的支持 , 这意味着Consul用户不必担心由于创建更多抽象层而产生的多个区域 。
东方水蓉|Consul是什么?
文章图片
2
Q:为什么要用它?
A:现在企业应用都向微服务化方向发展 , 当把我们的系统功能拆分成一个一个的微服务后 , 存在以下问题
需要配置N个服务的网络位置 , 加大配置的复杂性
服务的网络位置变化 , 都需要改变每个调用者的配置
集群的情况下 , 难以做负载(反向代理的方式除外)
东方水蓉|Consul是什么?
文章图片
3
Q:Docker构架
A:
Docker使用C/S架构 , Client通过接口与Server进程通信实现容器的构建 , 运行和发布 。 client和server可以运行在同一台集群 , 也可以通过跨主机实现远程通信 。
东方水蓉|Consul是什么?
文章图片
东方水蓉|Consul是什么?
文章图片
4
Q:DockervsVM
A:
VM是一个运行在宿主机之上的完整的操作系统 , VM运行自身操作系统会占用较多的CPU、内存、硬盘资源 。 Docker不同于VM , 只包含应用程序以及依赖库 , 基于libcontainer运行在宿主机上 , 并处于一个隔离的环境中 , 这使得Docker更加轻量高效 , 启动容器只需几秒钟之内完成 。 由于Docker轻量、资源占用少 , 使得Docker可以轻易的应用到构建标准化的应用中 。 但Docker目前还不够完善 , 比如隔离效果不如VM , 共享宿主机操作系统的一些基础库等;网络配置功能相对简单 , 主要以桥接方式为主;查看日志也不够方便灵活 。
东方水蓉|Consul是什么?
文章图片
Docker在容器的基础上 , 进行了进一步的封装 , 从文件系统、网络互联到进程隔离等等 , 极大的简化了容器的创建和维护 。 使得Docker技术比虚拟机技术更为轻便、快捷 。
作为一种新兴的虚拟化方式 , Docker跟传统的虚拟化方式相比具有众多的优势 。 Docker容器的启动可以在秒级实现 , 这相比传统的虚拟机方式要快得多;Docker对系统资源的利用率很高 , 一台主机上可以同时运行数千个Docker容器 。


推荐阅读