高可用

Redis常见面试题

心不动则不痛 提交于 2019-11-28 04:56:10
介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。 传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。 Github 源码:https://github.com/antirez/redis Redis 官网:https://redis.io/ Redis支持的数据类型? String字符串: 格式: set key value string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型,一个键最大能存储512MB。 Hash(哈希) 格式: hmset name key1 value1 key2 value2 Redis hash 是一个键值(key=>value)对集合。 Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 List(列表) Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 格式:

Redis常见面试题(转)

一曲冷凌霜 提交于 2019-11-28 04:55:57
介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库 ,并提供多种语言的 API的非关系型数据库。 传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。 Github 源码:https://github.com/antirez/ redis Redis 官网:https://redis.io/ Redis支持的数据类型? String字符串: 格式: set key value string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型,一个键最大能存储512MB。 Hash(哈希) 格式: hmset name key1 value1 key2 value2 Redis hash 是一个键值(key=>value)对集合。 Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 List(列表) Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 格式:

Hadoop集群配置及其高可用方案

廉价感情. 提交于 2019-11-28 04:34:15
实验配置五台虚拟机server1-5都是rhel6.5版本 所有虚拟机建立hadoop用户 uid gid一致 密码相同 以server1为例 获取安装包hadoop-2.7.3.tar.gz jdk-7u79-linux-x64.tar.gz解压安装 注意是在hadoop用户下 下载解压相关软件 修改环境变量,使hadoop运行在java平台之上 修改java变量 单节点部署 创建文件夹 将数据导入文件夹中 wordcount 统计单词算法 查看统计结果 伪节点部署 配置文件系统 配置文件保存的份数 设置ssh免密码认证 [hadoop@server1 hadoop]$ scp -r /home/hadoop/.ssh/ hadoop@server2:~ [hadoop@server1 hadoop]$ scp -r /home/hadoop/.ssh/ hadoop@server3:~ [hadoop@server1 hadoop]$ scp -r /home/hadoop/.ssh/ hadoop@server4:~ [hadoop@server1 hadoop]$ scp -r /home/hadoop/.ssh/ hadoop@server5:~ 配置datanode节点 返回值为0表示格式化成功 启动服务 查看进程状态 ##网页测试 浏览器访问 http://172

分布式集群系统下的高可用session解决方案

て烟熏妆下的殇ゞ 提交于 2019-11-28 04:27:25
分布式集群系统下的高可用session解决方案 ----guanfuming 20130216 目前,为了使web能适应大规模的访问,需要实现应用的集群部署. 而实现集群部署首先要解决session的统一,即需要实现session的共享机制。 目前,在集群系统下实现session统一的有如下几种方案: (1) 应用服务器间的session复制共享(如tomcat session共享) (2) 基于cache DB缓存的session共享 应用服务器间的session复制共享 session复制共享,主要是指集群环境下,多台应用服务器之间同步session,使session保持一致,对外透明。 如果其中一台服务器发生故障,根据负载均衡的原理,web服务器(apache/nginx)会遍历寻找可用节点,分发请求,由于session已同步,故能保证用户的session信息不会丢失。 此方案的不足之处: 技术复杂,必须在同一种中间件之间完成(如:tomcat-tomcat之间). session复制带来的性能损失会快速增加.特别是当session中保存了较大的对象,而且对象变化较快时, 性能下降更加显著. 这种特性使得web应用的水平扩展受到了限制。 Session内容序列化(serialize),会消耗系统性能。 Session内容通过广播同步给成员,会造成网络流量瓶颈,即便是内网瓶颈。

五、网站的高可用架构

时光怂恿深爱的人放手 提交于 2019-11-28 03:10:39
   5.1 网站可用性的度量与考核      网站的可用性描述网站可有效访问的特性。     网站的页面能完整呈现在用户面前,需要经过很多环节,任何一个环节出问题,都会导致网站页面不可访问。     DNS会被劫持、CDN服务可能会挂掉、网站服务器可能会宕机、网站交换机可能会失效、硬盘会损坏、网卡会松掉、机房会停电、空调会失灵、程序会有Bug、黑客会攻击、促销引来大量的访问、第三方合作伙伴的服务不可用.....   5.2 高可用的网站架构       网站高可用架构设计的主要目的就是保证服务器硬件故障时服务依然可用、数据依然保存并能够被访问。     实现上述高可用架构的主要手段是数据和服务的冗余备份及失效转移,一旦某些服务器宕机,就将服务切换到其他可用的服务器上,如果磁盘损坏,则从备份的磁盘读取数据。     一个典型的网站设计通常遵循如下图所示的基本分层架构模型   典型的分层模型是三层,即应用层、服务层、数据层;各层之间具有相对独立性,应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的存储与访问。        不同的业务产品会部署在不同的服务器集群上,如某网站的文库、贴吧、百科等属于不同的产品,部署在各自独立的服务器集群上,互不相干。这些产品又会依赖一些共同的复用业务,如注册登录服务、Session 管理服务、账户管理服务等

一文了解数据库高可用容灾方案的设计与实现

孤者浪人 提交于 2019-11-27 19:17:47
一个系统可能包含很多模块,如数据库、前端、缓存、搜索、消息队列等,每个模块都需要做到高可用,才能保证整个系统的高可用。对于数据库服务而言,高可用的实现可能更加复杂,对用户的服务可用,不仅仅是能访问,还需要有正确性保证,因此讨论数据库的高可用方案时,在容灾之外,还要同时考虑方案中数据一致性问题。 本文将通过介绍一些业界主流的数据库高可用架构、每种方案的特性和优缺点,以及数据库高可用架构的自动化运维实现,讲讲数据库高可用容灾方案设计与实现,希望抛砖引玉,和大家一起讨论。 一、高可用数据库概述 什么是高可用数据库? 高可用数据库是由一系列数据库构成的总体系统,在任何时刻,至少有一个节点可以接受用户的请求并提供数据库服务。大多数数据库架构中,有一个主节点处理主要请求,还有若干备用节点用于容灾切换,当主节点不能提供服务时,备用节点成为主节点继续提供服务,用以保证整个系统的可用和稳定。 高可用数据库有很多优点: 第一,方便读写分离。数据库请求当中,一般读操作的请求次数远大于写操作,高可用数据库可以通过将写操作放在主数据库节点上进行,将读操作分担到若干从库上,来提升读操作吞吐量,进而提升读写效率; 第二,变更不停服。当整个高可用数据库架构或者主节点升级时,可以让高可用数据库先进行主库切换,让备用节点替换原主节点提供数据库服务,当主节点升级完毕后,再将主从库服务切换回来

MySQL的高可用设计方案的记录

风流意气都作罢 提交于 2019-11-27 19:15:05
一.看下常用的MySQL的高可用方案: 对上图的说明: 1)HeartBeat通过串口线或者以太网网线直连网卡对对端的服务做健康检查,并负责执行Drbd,MySQL,vip等资源的自动切换。 2)data-1-2作为data-1-1高可用的热本分,正常情况下data-1-1提供一个分区sdb1给MySQL使用。 3)物理磁盘做RAID10或者是RAID0,根据性能和冗余需求来进行选择。 4)服务器之间,服务器和交换机之间都是双千兆网卡绑定 5)应用服务器(包括不限于web等)通过VIP访问MySQL主库。通过不同的VIP访问负载均衡的从库池。 6)MySQL的数据在DRBD分区1中 7)MySQLslave1,MySQLslave2通过VIP和主库MySQL进行同步。 以上高可用为MySQL多从的模式,本例属于一主二从。 二.MySQL主库宕机切换过程架构拓扑: 对上图的说明: 1)data-1-2的HeartBeat通过串口线或者是独立网线连接线对data-1-1做健康检查,发现data-1-1挂了后,自动在data-1-2上启动drbd,MySQL等服务以及负责VIP的动态切换,确保主库业务被正常接管,自动的对外提供服务。 2)应用服务器(包括不限于web等)通过VIP访问MySQL的主库,通过不同的VIP访问负载均衡的从库池。 3)物理磁盘做RAID10或者是RAID0

nginx学习笔记

大城市里の小女人 提交于 2019-11-27 19:09:06
nginx内容介绍 I/O模型 Nginx介绍 Nginx安装 Nginx各种模块 nginx高可用:高的可用性,针对于web网站,服务器系统,数据库的; 高可用,不是说网站不宕机,可用率达到几个9%,99%,99.9%,衡量的web网站高可用率看几个9; 2)nginx web高可用,如何去实现nginx web 高可用,实现方式: 基于shell脚本编程 基于keepalived软件实现高可用; 基于keartbeat 软件实现高可用; 3)nginx2台,mysql 2台,tomcat2台。当其中一台可以切换到另外一台; 4)高可用,其共同的特点有多个(至少是2个++)相同备份, 来源: https://www.cnblogs.com/Dreamsoft/p/10393791.html

互联网服务器集群基本概念入门

落花浮王杯 提交于 2019-11-27 18:59:39
2019-08-18 关键字:Linux集群、集群服务器、负载均衡集群、高可用集群 互联网的核心组件是各种服务站点。例如购物领域我们有淘宝、京东、拼多多等,出行领域我们有滴滴、首约、货拉拉等,通讯领域则有微信、QQ等。这些服务站点的背后是靠一台台性能出众的电脑来提供各种服务的。但随着互联网所覆盖的人群越来越广、在人们生活中的渗透越来越深,我们每时每刻所发起的服务请求都都是海量的,而单台计算机的计算能力又是极其有限的。为了满足日益增长的计算需求,就产生了一种被称为 “服务器集群” 的计算服务模式。这种 “服务器集群” 又可以提供一种被称为 “分布式计算” 的功能,使得有相关计算需求的企业或组织可以通过增加计算机数量的方式来曲线解决海量计算需求。可以说,服务器集群是每一家有大量计算需求企业的刚需。 什么是服务器集群? 服务器集群就是由多台计算机就某一特定的计算主题而组成的具有协同分工特性并对外表现为一个整体的计算模式 。通常而言集群的共同宗旨都是在降低单台服务器计算压力的同时提升整体计算能力。 举个例子,假如你是一家大型图书馆的馆长。现在要对馆中图书做盘点。图书盘点就相当于大量计算需求,请一个人来做,就相当于将大量计算需求交由一台服务器来做,那这个人的工作压力肯定是异常巨大,很有可能做到一半他就不干了,就算能保证不中途罢工,那等他盘点完都不知道到猴年马月去了。所以,为了提升盘点效率

Kubernetes容器云平台建设实践

非 Y 不嫁゛ 提交于 2019-11-27 18:41:20
【51CTO.com原创稿件】Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。伴随着云原生技术的迅速崛起,如今Kubernetes 事实上已经成为应用容器化平台的标准,越来越受到企业的青睐,在生产中也应用的越来越广泛。 我们的容器平台建设从2016年开始,大致经历了探索预研、体系建设和平台落地这样三个阶段。 下面就从Kubernetes的网络、存储、集群管理和监控与运维几个方面来分享下我们容器云平台建设走过的历程,希望给大家一些思考和启发。 一、kubernetes网络 容器网络发展到现在,已经是双雄会的格局。双雄会其实指的就是Docker的CNM和Google、CoreOS、Kuberenetes主导的CNI。首先明确一点,CNM和CNI并不是网络实现,他们是网络规范和网络体系,从研发的角度他们就是一堆接口,你底层是用Flannel也好、用Calico也好,他们并不关心,CNM和CNI关心的是网络管理的问题。 网络需求调研发现,业务部门主要关注以下几点:1、容器网络与物理网络打通2、速度越快越好3、改动越少越好4、尽可能少的风险点。 容器的网络方案大体可分为协议栈层级、穿越形态、隔离方式这三种形式。 协议层级:二层比较好理解,在以前传统的机房或虚拟化场景中比较常见,就是基于桥接的 ARP+MAC 学习,它最大的缺陷是广播