高可用

HDFS-HA高可用工作机制

匿名 (未验证) 提交于 2019-12-02 23:51:01
1.HDFS-HA概述 1)所谓HA(high available),即高可用(7*24小时不中断服务)。 2)实现高可用最关键的策略是 消除单点故障 。HA严格来说应该分成各个组件的HA机制: HDFS的HA 和Y ARN的HA 。 3)Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。 4)NameNode主要在以下两个方面影响HDFS集群 NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启 NameNode机器需要升级,包括软件、硬件升级,此时集群也将无法使用 HDFS HA功能通过配置 Active/Standby两个nameNodes 实现在集群中 对NameNode的热备 来解决上述问题 。如果出现故障,如机器崩溃或机器需要升级维护,这时可通过此种方式将NameNode很快的切换到另外一台机器。 (通过双namenode消除单点故障) 2.HDFS-HA工作机制 2.1 HDFS-HA工作要点 1) 元数据管理 方式需要改变: 内存中各自保存一份元数据; Edits日志只有Active状态的namenode节点可以做写操作; 两个namenode都可以读取edits; 共享的edits放在一个共享存储中管理(qjournal和NFS两个主流实现); 2)需要一个 状态管理功能模块 (zkfailover)

关于Keepalive的那些事

匿名 (未验证) 提交于 2019-12-02 23:48:02
服务端很多同学包括自己对keepalive理解不清晰,经常搞不清楚,TCP也有keepalive,HTTP也有keepalive,高可用也叫keepalive,经常混淆这几个概念。做下这几个概念的简述,尽管名字基本上是一样的,但是所表示意义和范畴却大相径庭。 Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障。它的作用是检测服务器的状态,如果有一台服务器宕机,或出现故障,Keepalived将检测到,使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中。 Keepalived一般不会单独出现,而是与其它负载均衡技术(如lvs、haproxy、nginx)一起工作来达到集群的高可用。 一个简单的使用例子,将域名解析到一台负载均衡机器上,然后负载均衡反向代理到WEB机器上。中间的负载均衡只有一台,没法做到高可用,至少需要做到两台,那配置成两台机器之后,Keepalived就可以保证服务只有一个对外的虚拟IP,如果MASTER的负载均衡出现故障的时候,自动切换到BACKUP负载均衡上,服务不受任何影响。Keepalived来保证这些。 我们以前有过一套稍显复杂的服务配置,Keepalived给HAProxy提供高可用,然后HAProxy给Twemproxy提供高可用和负载均衡

nginx

匿名 (未验证) 提交于 2019-12-02 22:10:10
注意:nginx的conf.d的目录中,都是nginx的配置文件,如果某两个文件的请求转发域名一样,但是属于两个不同的工程,会导致其中某一个工程在启动的时候,跳转到另一个工程的情况 nginx正向代理和反向代理的本质区别:nginx正向代理代理的是发起请求的方,即可以理解为客户端;nginx反向代理代理的是被请求方,即可以理解为服务端。 举两个简单的例子对比: 1 我们访问google,由于防火墙的原因,我们并不能直接访问,而是需要借助VPN来实现,可以看看,正向代理代理的是客户端,客户端是知道目标的,但是目标并不知道客户端是通过VPN访问的。 2 当我们用外网访问百度时,其实会进行一个转发,代理到内网中去,这就是所谓的反向代理,即反向代理“代理”的是服务器端,而且这一个过程对于客户端来说是透明的。 启动nginx之后,其实就是在80端口启动了Socket服务进行监听,nginx涉及Master和Worker进程。 nginx.conf Master进程的作用:读取配置文件nginx.conf;管理worker进程; Worker进程的作用:每一个Worker进程都维护一个线程(避免线程切换),处理连接和请求;注意Worker进程的个数由配置文件决定,一般和CPU个数相关(有利于进程切换),配置几个就有几个Worker进程。 问题一:nginx如何做到热部署: 所谓热部署

MyCAT+MySQL 搭建高可用企业级数据库集群

匿名 (未验证) 提交于 2019-12-02 22:06:11
MyCAT+MySQL 搭建高可用企业级数据库集群 第1章 课程介绍 课程介绍 1-1 MyCAT导学 1-2 课程介绍 第2章 MyCAT入门 这一章中,我们将回顾了垂直切分,水平切分,分库分表等基础概念,然后快速回如何安装和启动MyCAT的,介绍如何以打包好的可执行程序的方式来启动MyCAT。以及如何对其相关的启动配置文件进行配置。 2-1 章节综述 2-2 什么是MyCAT 2-3 什么是数据库中间层 2-4 MyCAT的主要作用 2-5 MyCAT基本元素 2-6 MyCAT安装 第3章 MYCAT核心配置详解 本章将对MyCAT的常用核心配置文件server.xml、rule.xml以及schema.xml详细讲解,也会对常用的分片算法进行逐一讲解 3-1 章节综述 3-2 常用配置文件间的关系 3-3 server.xml配置详解 3-4 log4j2.xml配置文件 3-5 rule.xml文件详解 3-6 常用分片算法(上) 3-7 常用分片算法(下) 3-8 schema.xml文件用途 3-9 schema定义逻辑库 3-10 table标签 3-11 dataNode标签 3-12 dataHost标签 3-13 dataHost标签属性 3-14 heartbeat标签 3-15 writehost标签 3-16 schema总结 第4章

老男孩Mysql DBA 运维

匿名 (未验证) 提交于 2019-12-02 22:06:11
01-老男孩运维DBA课程开班 02-数据库概念介绍 03-数据库种类介绍及关系型数据库原理 04-非关系型数据库介绍 05-非关系型数据库种类介绍 06-关系型数据库产品介绍01 07-关系型数据库产品介绍02 08-非关系型数据库产品介绍01 09-数据库产品排名及发展大事记 10-MySQL数据库产品介绍 11-数据库基础内容小结 12-为什么选择MySQL数据库即MySQL优势介绍 13-MySQL数据库分类与版本升级知识讲解 14-MySQL数据库商业版与社区版区别 15-MySQL数据库的发布版本知识讲解 16-MySQL数据库发展的三条产品线介绍 17-MySQL数据库发布版本命名知识介绍 18-企业生产场景如何选择MySQL产品线产品及对应版本 19-MySQL数据库企业生产常用5种安装方法介绍 20-如何选择MySQL数据库版本及安装方式 21-MySQL5.5编译方式安装实战 23-MySQL数据库多实例的优势和问题介绍 22-MySQL数据库多实例介绍 23-MySQL数据库多实例的优势和问题介绍 24-MySQL数据库多实例的门户企业应用场景 25-MySQL数据库多实例的多种配置方案介绍 26-MySQL数据库多实例安装实战讲解 27-MySQL数据库多实例初始化及服务启动 28-MySQL数据库多实例启动问题排错方法及实战排错 29

MySQL高可用架构之MHA

匿名 (未验证) 提交于 2019-12-02 22:02:20
一、关于MHA MHA(Master HA)是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了automating master failover 功能。MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过与其它从节点获取额外信息来避免一致性方面的问题。MHA还提供了master节点的在线切换功能,即按需切换master/slave节点。 相较于其它HA软件,MHA的目的在于维持MySQL Replication中Master库的高可用性,其最大特点是可以修复多个Slave之间的差异日志,最终使所有Slave保持数据一致,然后从中选择一个充当新的Master,并将其它Slave指向它。 二、MHA角色部署 MHA 服务有两种角色,MHA Manager(管理节点)和MHA Node(数据节点): MHA Manager:通常单独部署在一台独立的机器上或者直接部署在其中一台slave上(不建议后者),管理多个master/slave集群,每个master/slave集群称作一个application;其作用有二: (1)master自动切换及故障转移命令运行 (2)其他的帮助脚本运行:手动切换master;master/slave状态检测 MHA node:运行在每台MySQL服务器上

heartbeat的双机互备

末鹿安然 提交于 2019-12-02 17:57:37
heartbeat快速部署: 高可用服务————将资源(IP及程序服务等资源)从一台已经故障的主机上快速转移到另一台正常运转的主机上继续提供服务 配置heartbeat软件的配置文件,指定哪一台heartbeat服务器作为主服务器,另一台作为热备服务器,在热备上配置heartbeat守护程序监听主服务器的心跳信息。(主备模式) 上面是主备模式,另外还可以做主主模式,即两台服务器互为主备,这时他们之间会相互发送报文来告诉对方自己当前的状态 如果在规定的时间内没有收到对方发送过来的心跳报文,就会认为对方挂了,此时就会启动程序接管运行在对方机器上的资源或服务。 heartbeat故障切换时间为5-20s 和keepalived一样。heartbeat也是服务器级别的,不是服务级别。 切换条件: 1、服务器宕机 2、heartbeat服务本身故障 3、心跳线故障 服务故障不会导致切换,但是可以通过服务故障,把heartbeat服务停掉,这样就符合切换条件了 heartbeat心跳连接: 1、串行线缆,即所谓的串口(缺点是两台主机之间不能距离太远) 2、以太网线两台主机上的网卡直连(推荐,但是需要在两台主机上各自做路由) 3、以太网电缆,通过交换机等网络设备连接(次选) 生产环境使用第二种或第一种,或是两种同时使用 脑裂: 两台高可用服务器对在指定的时间内

5分钟了解Java 12 八大新特性

与世无争的帅哥 提交于 2019-12-02 17:26:15
导读:Java 12 终于发布了,我们一起来看一看 Java 12 中的新特性。 通过本文可以在5分钟内快速了解 Java 12 新特性。 1 Switch 表达式 使用Java 12,switch不仅可以作为语句也可以作为表达式。 无论作为语句或者作为表达式,switch都可以使用传统/简化的作用域和控制流行为。 这将有助于简化代码,并为在switch中使用模式匹配铺平道路。 Java开发人员正在增强Java编程语言,以使用模式匹配来解决当前switch语句的几个问题。 这包括:switch块的默认控制流行为,switch块默认作用域(被视为单个作用域的块)和switch仅作为语句。 在Java 11中,switch语句追随C和C++,默认情况下使用fall-through语义。 虽然传统的控制流程在编写低级代码时很有用,但随着switch在更高级别的环境中采用,易出错会盖过其灵活性。 Java 11 Java 12 2 默认CDS归档 通过在64位平台上的默认类列表的帮助下生成CDS归档来改进JDK构建过程,从而有效地消除了运行java -Xshare:dump。 此功能的目标包括:1。)改进开箱即用的启动时间,以及2.)摆脱使用-Xshare:dump。 3 Shenandoah GC Shenandoah是一种垃圾收集(GC)算法,旨在保证低延迟(10 - 500

金苹果主管00金苹果注册(QV1758022965)Java高可用集群架构

ⅰ亾dé卋堺 提交于 2019-12-02 16:43:11
序 可能大部分读者都在想,为什么在这以 dubbo、spring cloud 为代表的微服务时代,我要还要整理这种已经“过时”高可用集群架构? 本人工作上大部分团队都是7-15人编制的开发团队,对应的公司项目也大都是中小型项目,最大的项目 PV/UV 也就只有 10w/2w 。在这样的场景下,中小型公司一般都是创业起步没多久,大部分都需要本着“开源节流”、“以最小的成本把产出最大化”。微服务架构相比于高可用集群架构,个人理解,对于技术团队的成员编制相对要多一点,服务器部署成本相对也要高一点。 作为技术团队负责人,肯定要为企业整体成本考虑,否则要不了多久,便是讨薪大军的一员了吧。。。 一、如何选择 1、高可用集群 适用于中小型创业公司项目架构,小型技术团队快速迭代版本发布部署需求,前期低成本运行,爆发时可通过投入适量成本横向扩容服务器抗压。 特点: 前期技术开发成本低 一定的服务器扩容成本 核心团队编制及技能要求较少 项目发布部署基本无依赖,时间成本低 服务器运维成本一般 大而全的项目模块分离设计 更省更稳的技术架构选择 微服务架构强迫症不适用 2、微服务架构 适用于业务架构较大的中大型科技公司项目架构,系统可拆分多个项目单独运营,大型技术团队、平台产品规范化管理,前期投入一定的成本,可以低成本扩容指定服务的服务器抗压。 前期一定的技术开发成本 较低的服务器扩容成本

redis

帅比萌擦擦* 提交于 2019-12-02 16:23:13
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 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 格式: lpush name value 在 key 对应 list 的头部添加字符串元素 格式: rpush name value 在 key 对应 list 的尾部添加字符串元素 格式: lrem name index key 对应 list 中删除 count 个和 value 相同的元素 格式: llen name 返回 key 对应 list 的长度 Set(集合) 格式: sadd name value Redis的Set是string类型的无序集合。 集合是通过哈希表实现的,所以添加,删除