微服务~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 四大特性
- Service Discovery (服务发现)
- Health Check (健康检查)
- Multi Datacenter (多数据中心)
- Key/Value Storage
Consul相关知识点
Agent
- Agent 是一个守护进程
- 运行在Consul集群的每个成员上
- 有Client 和 Server 两种模式
- 所有Agent都可以被调用DNS或者HTTP API,并负责检查和维护同步
Client
- Client 将所有RPC请求转发至Server
- Client 是相对无状态的
- Client 唯一做的就是参与LAN Gossip Pool
- Client 只消耗少量的资源和少量的网络带宽
Server
- 参与 Raft quorum(一致性判断)
- 响应RPC查询请求
- 维护集群的状态
- 转发查询到Leader 或 远程数据中心
Datacenter数据中心
- 私有的
- 低延迟
- 高带宽
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 join 192.168.100.101(其中101这个节点是master)
显示成员:consul members
查看UI管理页面
http://localhost:8500
待续...
微服务~Consul服务注册与发现相关推荐
- 微服务 - Consul服务注册中心
概述 上篇说到构建良好的架构,依托于基础设施建设(自动化测试.自动化部署.服务监控,服务发现.配置中心等等),决定成败的往往是基础设施建设,所以从搭建一个注册中心和配置中心开始我们新一阶段的启程. 注 ...
- springcloud微服务系列之服务注册与发现组件Eureka
一.Eurake的简介 二.使用Eureka进行服务的注册消费 1.创建一个服务注册中心 2.创建服务的提供者 3.创建服务的消费者 总结 一.Eurake的简介 今天我们来介绍下springclou ...
- 微服务系列:服务发现与注册-----Eureka(面试突击!你想了解的Eureka都在这里.持续更新中......)
1.什么是落地SOA(面向服务架构)? SOA面向服务架构,是一种架构思想,是跨语言和平台的.SOA宗旨简单明了,根据项目服务完成架构搭建,以服务为基准点完成组件化和模块化.提供服务是项目的基本内容, ...
- 源码分析Dubbo服务注册与发现机制RegistryDirectory)
RegistryDirectory,基于注册中心的服务发现,本文将重点探讨Dubbo是如何实现服务的自动注册与发现.从上篇文章,得知在消息消费者在创建服务调用器(Invoker)[消费者在初始时]时需 ...
- 【微服务】服务之间的调用方式
文章目录 常见的远程调用方式有两种 RPC和HTTP对比 RPC有几个特点 HTTP其实就是一种网络传输协议 微服务之间相互调用的三种最常见方式 RestTemplate方式 引入Nacos注册中心 ...
- consul 日志配置_微服务:服务注册发现+ API 网关+配置中心+服务跟踪+服务熔断...
服务注册发现 服务注册就是维护一个登记簿,它管理系统内所有的服务地址.当新的服务启动后,它会向登记 簿交待自己的地址信息.服务的依赖方直接向登记簿要 Service Provider 地址就行了.当下 ...
- Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)【Dalston版】
Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全 ...
- .NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一)
原文:.NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一) Consul介绍 Consul是HashiCorp公司推出的开源工具[开源地址:https://github.c ...
- Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)
Spring Cloud Eureka VS Consul构建微服务架构 -- 服务注册与发现 一.Spring Cloud Eureka Spring Cloud Eureka是Spring Clo ...
- 《深入理解 Spring Cloud 与微服务构建》第十二章 服务注册和发现 Consul
<深入理解 Spring Cloud 与微服务构建>第十二章 服务注册和发现 Consul 文章目录 <深入理解 Spring Cloud 与微服务构建>第十二章 服务注册和发 ...
最新文章
- 趣谈网络协议笔记-二(第十八讲)
- SanFeng-Clound
- 用Virtual PC 2007安裝Fedora Core 9
- iOS: 在代码中使用Autolayout (1) - 按比例缩放和优先级
- linux中w命令参数详解
- flink sql是否支持emit策略
- idea 2个配置 实时编译 autowire注解错
- qt设置鼠标追踪后,鼠标还是需要点击后才能变样式
- 查询列名在哪张表_探索SQL-多表查询
- 用 Crontab 进行简单的备份日志任务计划
- java连接数据库的基本操作
- C++ STL list容器中元素的存取和访问
- 淮阴工学院计算机系在哪个校区,2021年淮阴工学院有几个校区,大一新生在哪个校区...
- Intellij IDEA 14.x 菜单项中Compile、Make和Build的区别
- c语言程序该不该背,C语言程序设计学习技巧
- 程序员必须收藏的网站整理(持续更新)
- 21个小故事,21个启示
- ubuntu18.04系统外接显卡(英伟达RTX 2080 Ti)驱动安装
- linux下deb安装包的运行
- 风影墙纸,一天看N回。
热门文章
- 神奇的G1——Java全新垃圾回收机制
- 6.1 tensorflow2实现WideDeep推荐系统——Python实战
- 3分钟tips:什么是特征向量?什么是特征值?
- 机器学习之特征选择(feature_selection)
- aux 参数 linux,Linux下ps aux解释
- 力扣-525 连续数组
- 蓝桥杯2017年第八届C/C++省赛B组第三题-承压计算
- 【报错】table burner has no column named USER (code 1): , while compiling: INSERT INTO burner(USER,YELL
- Java50道经典习题-程序7 处理字符串
- 【转】Swig 使用指南