consul mysql 检查_MySQL在Consul服务中的健康检查逻辑
这是学习笔记的第2090篇文章
MySQL的Consul方向开始要大规模推广的时候,一直感觉健康检查的部分还是不够严谨,虽然感觉是,但是总体逻辑上看也没什么硬伤,就暂时搁置了下来,最近业务的推广和普及,一旦逻辑出现漏洞或者不严谨,则是一种很被动的局面,所以我们开始梳理清晰完整的检查逻辑,我对这个部分的要求是能够输出一个清晰可见的逻辑关系图,经得起推敲,一目了然,这样才算是心里踏实。
在Consul服务中,健康检查的逻辑应该是DBA侧集成最重要的一个环节了,总体来说,有两类需求,一类是数据写入,一类是读写分离,对于这两个类别,读写分离的部分有点特别,可以拆分成两个场景,第一个场景是只在从库可读,主库只为可写,第二个场景是主从负载均衡,均可读,所以按照这种设定,我把整个类型拆分成了三类,Write(主库可写),Read_only(从库只读),Mixed_Read(主库可读可写),其中Mixed_Read是属于读写分离范畴的,对于单点实例(无从库)可以设置为Write或者Mixed_Read均可(当然严谨来说建议为Write),而主从架构的主库只能为Write.
要实现这个功能,我们需要首先理清楚第一个概念,数据库的角色怎么判断,数据库的角色在这里我取舍了Relay的状况(Relay目前不适合Consul服务注册),把角色分为了Master,Slave和Error三类。
有了第一层的保证,第二层的域名服务注册就会容易一些,这里我分为了选项Check_option,如果数据库角色为Master并且Check_Option为Write则提示写域名注册成功,否则为失败。如果为Slave,逻辑会稍微复杂,需要考虑延迟。
个人新书 《MySQL DBA工作笔记》
consul mysql 检查_MySQL在Consul服务中的健康检查逻辑相关推荐
- Node.js + Consul 实现服务注册、健康检查、配置中心
Node.js + Consul 实现服务注册.健康检查.配置中心 在这篇文章中: 初始化 Consul 客户端 服务注册与健康检查 配置Consul管理控制台 服务配置中心实现 在Nodejs中进行 ...
- consul服务注册与健康检查
consul服务注册与健康检查(centos7) consul简介 consul的服务注册 服务的健康检查 服务查询发现 服务过滤 consul简介 用于实现分布式系统的服务发现与配置.Consul ...
- mysql安装过程以及启动服务中的若干问题
mysql安装过程以及启动服务中的若干问题 1:不能连接到 localhost 上的mysql 的问题 (1)错误:Can't connect to MySQL server on 'localhos ...
- 如何在 ASP.Net Core 中实现 健康检查
健康检查 常用于判断一个应用程序能否对 request 请求进行响应,ASP.Net Core 2.2 中引入了 健康检查 中间件用于报告应用程序的健康状态. ASP.Net Core 中的 健康检查 ...
- 在.NET Core 中实现健康检查
.NET Core中提供了开箱即用的运行状况检查,首先,我将在.NET Core API应用程序中执行运行状况检查,接下来,我们将使用DbContext集成SQL Server或数据库的运行状况检查, ...
- ASP.NET CORE 使用Consul实现服务治理与健康检查(2)——源码篇
题外话 笔者有个习惯,就是在接触新的东西时,一定要先搞清楚新事物的基本概念和背景,对之有个相对全面的了解之后再开始进入实际的编码,这样做最主要的原因是尽量避免由于对新事物的认知误区导致更大的缺陷,Bu ...
- 聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!...
来自:https://juejin.im/post/5e2179def265da3e152d2561 前言 去年我们项目做了微服务1.0的架构转型,但是服务监控这块却没有跟上.这不,最近我就被分配了要 ...
- Spring Boot 服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控...
作者:Richard_Yi 来源:http://39sd.cn/B2A0B 去年我们项目做了微服务1.0的架构转型,但是服务监控这块却没有跟上.这不,最近我就被分配了要将我们核心的微服务应用全部监控起 ...
- springboot actuator_Spring Boot 服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控...
作者:Richard_Yi来源:http://39sd.cn/B2A0B 去年我们项目做了微服务1.0的架构转型,但是服务监控这块却没有跟上.这不,最近我就被分配了要将我们核心的微服务应用全部监控起来 ...
- K8s中Pod健康检查源代码分析
了解k8s中的Liveness和Readiness Liveness: 表明是否容器正在运行.如果liveness探测为fail,则kubelet会kill掉容器,并且会触发restart设置的策略 ...
最新文章
- CString初始化时提示字符串太大
- vmare安装ghostwin7
- CD管理和检索软件比较
- linux kernel的spinlock代码导读和分析
- bzoj 1133: [POI2009]Kon(DP)
- mysql 配置root密码_Mysql安装与配置调优及修改root密码的方法
- python numpy 下载地址
- 注册电气工程师考试考取事宜与考试大纲
- 大白话图文结合的方式讲解什么是CAP
- 五个小时学会Asp连接access添加,删除,修改
- Loongson2_龙芯灵珑9S2A_usb或硬盘方式安装debian6 [刘工版]
- 字符串的基本使用规则、推导式和常用的几种模块的应用(代码及简单解释)
- Win10耳机插上没反应,外放正常怎么解决?
- 大数据在高校的应用场景_大数据在高校中的应用研究
- 台式计算机没办法连接wifi吗,台式机没有无线网络连接该怎么办
- 计算机网络---局域网与广域网
- python获取工作日_Python的上一个工作日
- 机器学习: Metric Learning (度量学习)
- ADSL MODEM用户名和密码大全
- 无符号数与有符号数比较大小
热门文章
- 代码片段:基于 JDK 8 time包的时间工具类 TimeUtil
- C++:怎样把一个int转成4个字节?
- ActivityGroup和TabActiviy的差异性?
- C#-is and as
- ZOJ 1076 Gene Assembly
- AJAX做一个动态进度条
- 人一生之中遇到各种事件的概率
- 拓端tecdat|R语言深度学习Keras循环神经网络(RNN)模型预测多输出变量时间序列
- 拓端tecdat|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
- bind函数怎么用JAVA_面试官:能解释一下javascript中bind、apply和call这三个函数的用法吗...