导读 大家好,小宜来为大家讲解下。mysql虚拟主机(vmware安装mysql这个很多人还不知道,现在让我们一起来看看吧!Mysql发生宕机的时候,主从机器...

大家好,小宜来为大家讲解下。mysql虚拟主机(vmware安装mysql这个很多人还不知道,现在让我们一起来看看吧!

Mysql发生宕机的时候,主从机器不会自动切换,需要高可用框架对数据库主从进行管理。

高可用套件

负责数据库的FailOver操作,当数据库发生宕机的时候,可以自动剔除故障机,选出新的主机,继续提供服务,保证业务的连续性。

VIP技术

vip即虚拟ip,可以随意绑定在任何一台服务器上,业务通过VIP访问后台的数据库,数据库发生宕机的时候,高可用套件会把VIP插拔到新的服务器上,对业务透明。

缺点需要后端的数据库物理服务器属于同一个网段。

DNS方式

对于跨机房的数据库多机房的方案,可以采用域名方式访问数据库,当发生failover时候,可以通过更改域名对应的ip来实现方案。

缺点:普通的dns服务可能因为缓存原因导致切换不够及时。

MHA方案

MHA(Master High Availability)是一款开源的 MySQL 高可用程序,它为 MySQL 数据库主从复制架构提供了 automating master failover 的功能。

开源地址为:GitHub - yoshinorim/mha4mysql-manager: Development tree of M...

分为Manger和Node节点,Manger负责总控,判断Mysql高可用组是否可用,当发生宕机的时候,发起failover操作,Manger和Node之间通过ssh交互,性能不高,适合不超过20台的Mysql集群。

Orchestrator

Orchestrator 可以看做MHA升级版本,是另一款开源的 MySQL 高可用套件,除了支持 failover 的切换,还可通过Orchestrator 完成 MySQL 数据库的一些简单的复制管理操作。Orchestrator 的开源地址为:网页链接

原理将元数据信息存储在元数据库中,提供HTTP接口和命令访问方式,控制节点和下面的Node节点通过ssh方式,也只是适用小集群。

Cetus

网易开源的c语言开发的数据库中间件,开源地址:cetus: 专注于稳定、性能和分布式事务的MySQL数据库中间件

有读写分离版本,和分库版本

支持:

读写分离

分库

SQL 解析

连接池

管理功能

即时通讯开发日常

项目功能开发完毕,现在进入测试阶段。这个时候分库分表就开始上马了。这个我没什么经验,从项目特点来看,我认为应该按时间滚动分表。结果被同事嘲笑,说我不懂装懂。分表是按照id映射到不同的表上,写的时候随便挑一张表写。查的时候,所有表归并查询。我老脸一红,感觉胡说八道了。

我主要负责消息这一块,功能与维护。消息总是按照时间递增的。查也是按时间范围查询。所以按时间滚动分表,可以把一定时间范围的数据,集中到单表中。比如用户离线消息,就是他离线到上线这一小段时间。如果用映射分表,则每次都要关联无数张表。当单表数据过大,就必须二次分表,又涉及到数据迁移的问题。越想越觉得,不可能用这种方式。

自己胡思乱想,也不得奥义。决定网上看看有什么方案。一个是sharding-jdbc。一个是mycat。我先研究了sharding-jdbc。感觉很灵活,可定制,跟着项目走。项目集群了,它也就跟着集群了。今天看了一下mycat,网上风评不怎么好,都说坑到屎。我按照官网文档来,确实走不下去。还是得去看别人的博客,感觉官方对这一块挺放任自流的,爱用不用。虽然感受很差,不过很喜欢这种思路。把分表全部影藏,只对外提供一个虚拟mysql server。在往下,又发现不支持同库分表。按我的想法,应该是一个月一张表,一年分一个库的。这就不好了

自己在简历中搭建的lnmp的基础架构!

1,客户端访问VIP虚拟地址来间接访问后端的web服务器,keepalived与两台proxy调度服务器共同组成高可用,负载均衡的web集群,当proxy主调度器master宕机后,keepalived会将VIP虚拟ip地址切换到备调度器backup上, proxy调度器会根据配置算法roundrobin实现负载均衡,使用户能够继续访问web集群,客户端就像是只有一台服务器在提供服务一样,使web集群更加稳定。

2,把静态数据和动态数据分别存储在MySQL数据库中和ceph集群中,实现动静分离。Ceph集群实现三副本,能够实现数据的安全。同时,MySQL数据库也可以搭建主从结构或者主从葱结构,从而实现数据的备份。

1,Nginx的安装配置,实现动静分离,proxy调度器的配置,实现一主一备,负载均衡2,Apache软件的安装,web服务器的配置,提供默认首页,供客户端访问

3,keepalived的安装配置,客户端访问VIP进行访问实现高可用

4,MySQL数据库的安装配置,实现数据的迁移

5,ceph集群(chep1,chep2,chep3)的配置,实现数据的迁移和安全。

分享一位同学面试字节的题目

1.nginx为啥支持那么高的并发?目前来说很多的服务端都是用io多路复用,为什么没有nginx这么强大呢?

2.一致性hash?

3.分布式一致性算法?

4.线程,进程,协程?

5.用户态和内核态的区别?

6.虚拟内存?

7.用户态和内核态的虚拟内存是怎么区分开的?

8.epoll的细节,和select的对比?

9.tcp三次握手,server端半队列和全队列的变化?

10.mysql的事务机制的原理?

11.mvcc的细节?

12.http的流程?

13.客户端发送数据,服务端已经返回客户端相应成功,那么数据包到达接收方了还是没有到达接收方?

14.系统设计题目:微博朋友圈?

15.http2.0和http1.0比较?

16.kafka原理?

17.kafka的索引文件结构?

18.kafka的offset存储在哪里?

19.跳表这个结构怎么生成的?

20.算法:二叉树的最近公共祖先节点

本文mysql虚拟主机(vmware安装mysql到此分享完毕,希望对大家有所帮助。