当前位置: 首页 > news >正文

docker consul

docker consul的容器服务更新与发现

服务注册与发现是微服务架构中不可或缺的重要组件,起始服务都是单节点的,不保障高可用性,也不考虑服务的承载压力,服务之间调用单纯的通过接口访问的,直到后来出现多个节点的分布式架构,起初的解决手段是在在前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。

为解决后端需要调用后端服务器a-n,就需要配置n个服务器的网络位置,配置很麻烦

;后端服务的网络位置变化,都需要每个调用者的配置的问题

可以配置服务器发现模块

什么是consul

consul是google开源的一个使用go语言开发的服务管理软件。支持多数据中心、分布式高可用的、服务发现和配置共享。采用Rat算法,用来保证服务的高可用。内置务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具 (比如2ooKeeper等)服务部罢简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server 和 client。每个数据中心官方建议需要3或5个server节点以保证数据安全,同时保证server-leader的选举能够正确的进行。

在client模式下,所有注册到当前节点的服务会被转发到server节点,本身是不持久化这些信息。在server模式下,功能和client模式相似,唯一不同的是,它会把所有的信息持久化到本地,这样遇到故障,信息是可以被保留的。server-leader是所有server节点的老大,它和其它server节点不同的是,它需要负责同步注册的信息给其它的server节点,同时也要负责各个节点的健康监测。

consul提供的一些关键特性:服务注册与发现: consul通过DNS或者HTTP接口,一些外部服使服务注册和服务发现变的很容易务,例如saas提供的也可以一样注册。健康检查:健康检测使consu1可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面。Key/Value存储:个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方操作。多数据中心:无需复杂的配置,即可支持任意数量的区域。

总结:consul 服务的自动发现和注册

解决什么问题?

如果后端有大规模的服务节点集群,负载均衡器配置会很麻烦的问题(配置条目数量众多或一个后端服务节点网络位置发生改变需要修改所有使用者配置等问题)

registrator把注册信息写入condul再有consul写入nginx的配置文件upstream。

手机发现的信息,将所有需要注册的信息持久化本地,可以通过server-leader将注册信息同步给其他server节点,以及对各个server节点做健康检查。

http://www.lryc.cn/news/92874.html

相关文章:

  • 全志V3S嵌入式驱动开发(开发环境再升级)
  • ChatGPT:人工智能助手的新时代
  • 【面试】二、Java补充知识
  • LISTENER、TNSNAMES和SQLNET配置文件
  • 【Leetcode -225.用队列实现栈 -232.用栈实现队列】
  • 悟道3.0全面开源!LeCun VS Max 智源大会最新演讲
  • 2023蓝桥杯大学A组C++决赛游记+个人题解
  • wkhtmltopdf踩坑记录
  • 贪心算法part2 | ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
  • [C++]异常笔记
  • 浅谈一级机电管道设计中的压力与介质温度
  • Docker网络模型(八)使用 macvlan 网络
  • 控制视图内容的位置
  • 【分布式系统与一致性协议】
  • 音视频领域的未来发展方向展望
  • 时间同步/集群时间同步/在线/离线
  • 基于BP神经网络对MNIST数据集检测识别(numpy版本)
  • HTML5-创建HTML文档
  • Vue中Axios的封装和API接口的管理
  • MLIR面试题
  • ***杨辉三角_yyds_LeetCode_python***
  • Mac使用DBeaver连接达梦数据库
  • spring.expression 随笔0 概述
  • 从Cookie到Session: Servlet API中的会话管理详解
  • docker数据管理与网络通信
  • 怎么查询电脑的登录记录及密码更改情况?
  • 《三》TypeScript 中函数的类型
  • 深入学习 Mysql 引擎 InnoDB、MyISAM
  • 【华为OD统一考试B卷 | 100分】阿里巴巴找黄金宝箱(V)(C++ Java JavaScript Python)
  • 六步快速搭建个人网站