点击空白处退出提示
k8s中间件mysql,redis集群
我要开发同款作品详情
1 mysql集群:
mysql单主模式以及双主模式,使用gtid复制模式代替传统的binlog pos复制⽅式。在 findBestPrimaryServer 函数中,⾸先会检查所有节点中 show variables like
'rpl_semi_sync_master_enabled' 值为ON的节点,如果没有找到则使⽤默认节点 mysql statefulset的第⼆
个POD实例
由于是statefulset的pod是采⽤了默认的顺序启动⽅式,如果第⼆个实例还没起来,则将会使⽤第⼀个实
例即lastHeathHost这样的最后健康可连接的实例作为master。
因此集群第⼀次启动和全体POD宕机重启的情况下,mysql-0将作为master,如果mysql-0挂掉,则基于
lastHeathHost的机制采⽤mysql-2作为master。
如果mysql-0是master,在mysql-2 挂掉的情况下,mysql-0和mysql-1在执⾏复制,此时⼲掉mysql-0,
mysql-1将作为master,在mysql-2启动之后将会通过 findBestPrimaryServer 函数得出当前最佳master节
点是mysql-1。 写⼊到master-0上的⽇志将会在启动后捐赠给当前的master mysql-1
如果mysql-2和mysql-1由于某种奇怪的原因,导致都认为⾃⼰是master,那么他们将会在三秒后的下⼀
次 findBestPrimaryServer 中修正到底谁才是master。
2 redis集群:
实现了传统的哨兵模式集群,以及cluster模式集群。cluster模式最少需要6个节点以保证集群的稳定性,只要有一个节点存活就可以拉起所有宕机节点,并且主从可以快速切换,不需要复杂的选举;
根据开源软件加上自己更改实现redis_cluster的proxy,实现单一入口调用redis并且在k8s的pod IP地址不断变换的时候可以无缝重新适配每个节点,不会影响redis网络调用。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论