consul-服务注册与发现
随着微服务的风潮的来临,服务注册和发现成了微服务架构中不可或缺的一部分。想象一下,你的系统被拆分成了n个独立的服务,相互直接的调用如果还是使用传统的配置文件来解决的话,管理起来可就违背了微服务的初衷。本篇文章注重介绍一下consul 使用。
consul与其他常见的服务发现框架对比
zookeeper是一款基于Java的强大的框架,优点是不只是可以做服务发现,他提供了watcher机制可以实时获取服务提供者的从状态,缺点是没有健康检查,他是复杂度高,通过sdk提供服务
etcd是一款相对轻巧的服务框架,他的优点是简单易用,可配置性强,缺点是没有健康检查,需要配合其他服务完成服务发现。
consul相对两者而言,由于是go编译的,不需要安装依赖,即插即用,同时指出http和dns的方式完成操作接口,而且提供了web页面,缺点是不能实时获取服务信息的变化通知。
consul的几个概念
Gossip 疫情传播算法,他是以生活中的电脑传播的,森林大火等方式进行传播,详细介绍可参考https://www.jianshu.com/p/8279d6fd65bb。consul通过Gossip来保证分布式的最终一致性。
Server和Client,其实都是consul运行的实例,区别是Server维护consul状态信息,负责持久化数据,Client只维护自身的状态, 并将 HTTP 和 DNS 接口请求转发给服务端。Server建议配置3或5个,当Server leader挂掉的时候,会有选举算法推举出新的leader。Client可以根据需求进行无限扩展。
consul实战
1,安装docker,未安装可参考https://blog.csdn.net/JiuJieGuDuKe/article/details/100581909
2,docker启动Server和Client
docker pull consul 拉取镜像
#启动第1个Server节点,集群要求要有3个Server,将容器8500端口映射到主机8900端口,同时开启管理界面
docker run -d --name=consul1 -p 8900:8500 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --bootstrap-expect=3 --client=0.0.0.0 -ui
#启动第2个Server节点,并加入集群
docker run -d --name=consul2 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --client=0.0.0.0 --join 172.17.0.2
#启动第3个Server节点,并加入集群
docker run -d --name=consul3 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --client=0.0.0.0 --join 172.17.0.2
#启动第4个Client节点,并加入集群
docker run -d --name=consul4 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=false --client=0.0.0.0 --join 172.17.0.2
3,测试注册服务
使用postman或者curl等工具发送注册服务请求
http://ip:8900/v1/health/service/mysql1
put请求数据
{
"ID": "mysql1",
"Name": "mysql1",
"Tags": [
"primary",
"v1"
],
"Address": "ip",
"Port": 3306,
"Meta": {
"redis_version": "4.0"
},
"EnableTagOverride": false,
"Check": {
"id": "mysql1",
"name": "mysql1",
"tcp": "ip:3306",
"interval": "10s",
"timeout": "1s"
},
"Weights": {
"Passing": 10,
"Warning": 1
}
}
查看服务状态http://ip.144:8900/v1/health/service/mysql1
4 web ui页面
打开 http://ip:8900/ui/dc1/services 可以查看相关服务的状态
5 consul template
consul官方提供了模板工具,可以通过标签的方式来获取服务状态,详情参考https://github.com/hashicorp/consul-template
consul-服务注册与发现相关推荐
- Consul 服务注册与发现一站式解决方案
Consul 服务注册与发现一站式解决方案 参考文章: (1)Consul 服务注册与发现一站式解决方案 (2)https://www.cnblogs.com/seattle-xyt/p/103660 ...
- SpringCloud从入门到放弃 03 ——Consul服务注册与发现
文章目录 SpringCloud从入门到放弃 03 --Consul服务注册与发现 一.Consul简介 1.什么是consul 2.consul能做什么 二.安装并运行Consul 1.下载安装 2 ...
- Consul服务注册与发现
Consul服务注册与发现 1.Consul简介 1.1 什么是Consul? 1.2 Consul能干什么? 1.3 下载Consul 2.安装并运行Consul 2.1 官网安装说明 2.2 使用 ...
- .NET Core + Consul 服务注册与发现
在分布式架构中,服务治理是必须面对的问题,如果缺乏简单有效治理方案,各服务之间只能通过人肉配置的方式进行服务关系管理,当遇到服务关系变化时,就会变得极其麻烦且容易出错. Consul[1] 是一个用来 ...
- java consul服务发现_分布式项目(七)consul 服务注册与发现
说到分布式自然就离不开分布式和微服务的话题,简单聊一下. 微服务是一种软件架构方式,或者说一个一种结构设计风格,它并不是标准,它的逻辑是把一个整体服务按业务拆分成不同独立的服务,降低服务强依赖,消服务 ...
- Spring Cloud入门 -- Consul服务注册与发现(Hoxton.SR5版)
Consul简介 Consul 是 HashiCorp 公司推出的开源产品,用于实现分布式系统的服务发现.服务隔离.服务配置,这些功能中的每一个都可以根据需要单独使用,也可以同时使用所有功能.Cons ...
- 七、consul服务注册与发现
1.Consul简介 是什么? Consul是一套开源的分布式服务发现的配置管理系统,由HashiCorp用go语言开发 提供了微服务系统中的服务治理,配置中心,控制总线等功能.这些功能中的每一个可以 ...
- consul服务注册与发现机制
注册中心引入 最近,网关服务让下游服务接入consol,为了解决网关转发下游服务,下游服务刚好有节点不可用,转发到不可用的节点上报错.针对分布式多节点,上面的问题常会发生,就引入了注册中心. 那什么是 ...
- php consul 服务注册,CentOS 安装 Consul 服务注册和发现软件
1,关于Consul Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现. 有了很多实用的功能. 一致性协议采用 Raft 算法,来保证服务的高可用. 项目 ...
- Consul 服务注册与发现03—— 服务消费者
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
最新文章
- 数据表格搜索php代码_手把手教学:提取PDF各种表格文本数据(附代码)
- 添加文件然后自动打开
- win32按钮按下不弹起_为什么厨房插座都不装五孔插座了?听电工一说,懊悔没早知道...
- 前端开发者正在被迫成为全栈开发人员
- java高级-----流
- Exchange Server 2013部署系列之一:部署环境介绍
- CSDN免费快速获得积分和直接获取下载码的几个办法,亲测有效区
- 用优启通制作U盘启动盘教程(UEFI版)
- windows10 查看.theme文件
- 树莓派的img文件怎样在vmware虚拟机里面打开
- [SSL_CHX][2021-8-18]取余
- 《逆商:我们该如何应对坏事件》201903
- 安搭Share为您推荐学理财投资必读的书籍
- 信道编码算法的发展和应用
- P2P的资金托管方式 参考
- Angular慕课网
- 马踏棋盘 (30 分)
- CAN总线常见问题解答
- 相关性质和条件变量-ReentrantLock详解(2)-AQS-并发编程(Java)
- ChatGPT Plus价格太贵,可以约上三五知己一起上车体验一下,这个项目就能帮到你