高可用

Keepalived实现服务高可用

断了今生、忘了曾经 提交于 2019-11-30 21:49:18
一、Keepalived介绍 Keepalived的作用是检测服务器状态,如果一台服务器宕机或者出现其他故障导致当前服务器不可用,keep alived就会检测到并将故障的服务器从系统中剔除,同时使用备用服务器替代该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。 Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。 所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。 1.1 Keepalived的功能 (1)、管理LVS软件 (2)、基于VRRP实现高可用 (3)

一文读懂分布式任务调度平台XXL-JOB

荒凉一梦 提交于 2019-11-30 21:33:23
本文主要介绍分布式任务调度平台XXL-JOB(v2.1.0版本),包括功能特性、实现原理、优缺点、同类框架比较等 基本介绍 项目开发中,常常以下场景需要分布式任务调度: 同一服务多个实例的任务存在互斥时,需要统一协调 定时任务的执行需要支持高可用、监控运维、故障告警 需要统一管理和追踪各个服务节点定时任务的运行情况,以及任务属性信息,例如任务所属服务、所属责任人 因此,XXL-JOB应运而生: XXL-JOB是一个开源的轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用,其中“XXL”是主要作者,大众点评 许雪里 名字的缩写 自2015年开源以来,已接入数百家公司的线上产品线,接入场景涉及电商业务,O2O业务和大数据作业等 功能特性 主要功能特性如下: 简单灵活 提供Web页面对任务进行管理,管理系统支持用户管理、权限控制; 支持容器部署; 支持通过通用HTTP提供跨平台任务调度; 丰富的任务管理功能 支持页面对任务CRUD操作; 支持在页面编写脚本任务、命令行任务、Java代码任务并执行; 支持任务级联编排,父任务执行结束后触发子任务执行; 支持设置任务优先级; 支持设置指定任务执行节点路由策略,包括轮询、随机、广播、故障转移、忙碌转移等; 支持Cron方式、任务依赖、调度中心API接口方式触发任务执行 高性能

面试连环炮系列(十五):说说Eureka的高可用方案

ぃ、小莉子 提交于 2019-11-30 21:01:21
说说Eureka的高可用方案 至少3个Eureka实例才能满足高可用,配置方法如下: 准备三个节点node1,node2,node3。 在每个实例的application.xml文件里加入 eureka.client.service-url.defaultZone: {address} ,address是其他节点的地址。如果是node1,address就是 http://node2/eureka,http://node3/eureka ,其他节点依次类推。 启动三个实例,注册信息会在他们之间互相同步。 Eureka的高可用满足CAP的哪两项 Eureka放弃了一致性,保证的是AP。Spring Cloud的开发者认为注册服务更重要的是可用性,可以接受短期内达不到一致性的状况。 如果其中一台Eureka宕机,会出现什么情况 客户端在向某个Eureka注册发现连接失败,则会自动切换至其它节点,只要有一台Eureka还在,就能保证注册服务可用,只不过查到的信息可能不是最新的。 如果客户端与Eureka失去连接,Eureka会怎么处理 如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,此时会出现以下几种情况: Eureka不再从注册列表中移除因为长时间没收到心跳而应该过期的服务。 Eureka仍然能够接受新服务的注册和查询请求

运维工作内容

十年热恋 提交于 2019-11-30 20:01:02
互联网运维工作,以服务为中心, 以稳定、安全、高效为三个基本点 ,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。 什么是运维和运维工程师: 一、初入运维领域的头衔: 运维实习生 系统管理员 网络管理员 二、使用频率最高的运维头衔: 运维工程师 IT运维工程师 Linux运维工程师 运维开发工程师 应用运维工程师 三、侧重某项技能或行业的运维头衔: 系统运维工程师 数据库运维工程师 网络运维工程师 安全运维工程师 桌面运维工程师 软件运维工程师 业务运维工程师 CDN运维工程师 IDC运维工程师 存储运维工程师 硬件运维工程师 游戏运维工程师 与业务强相关的岗位,如:直播运维工程师、中间件运维工程师 四、新兴的运维头衔: 自动化运维软件开发工程师 DevOps运维开发工程师 五、资深的运维头衔: 高级运维工程师 运维专家 六、走上管理岗位的运维头衔: 运维主管 运维经理 高级运维经理 运维总监 七、最洋气的运维头衔 SRE(Site Reliability Engineer) 运维人员对公司 互联网业务所依赖的基础设施、基础服务、线上业务进行稳定性加强,进行日常巡检发现服务可能存在的隐患,对整体架构进行优化以屏蔽常见的运行故障,多数据中接入提高业务的容灾能力 。 运维的手段=》 通过监控、日志分析等及时发现和响应服务故障,减少服务中断的时间,

KeepAlive--高可用解决方案

感情迁移 提交于 2019-11-30 12:22:19
一:keepalive简述 一;高可用的解决方案 1)vrrp协议的实现 keepalive 2)ais:完备HA集群 RHCS(cman) heartbeat corosync 二:vrrp协议: 概念:在节点(主机)出现故障时,实现ip地址的切换。 keepalive就是基于此协议而实现高可用的。 Failover:故障切换,即某资源的主节点故障时,将资源转移至其它节点的操作; Failback:故障移回,即某资源的主节点故障后重新修改上线后,将转移至其它节点的资源重新切回的过程; 术语: 虚拟路由器:Virtual Router 对应与配置文件中/etc/keepalived中的virtual_ipaddress 生产中一个director主机上通常会有多个网卡,对外为vip1,接收用户请求,对内为vip2,将用户的请求通过vip2发送给后端提供服务的主机RS。在配置虚拟路由ip时。vip1与vip2需要配置在一个组内,实现在master主机出现故障时,vip1转向backup备用主机时,vip2也同时转向backup备用主机。不然vip2还停留在master主机上,转向后端主机的请求将会无法到达。 此块在配置文件中 虚拟路由器标识:VRID(0-255) 物理路由器: master:主设备 backup:备用设备 priority:优先级 VIP:Virtual IP

[转载]API网关

房东的猫 提交于 2019-11-30 12:10:33
1. 使用API网关统一应用入口 API网关的核心设计理念是使用一个轻量级的消息网关作为所有客户端的应用入口,并且在 API 网关层面上实现通用的非功能性需求。如下图所示:所有的服务通过 API 网关来暴露,这是所有客户端访问的唯一入口;如果一个服务要访问另一个服务,也要通过这个网关。 API网关统一应用入口 一旦 API 网关允许客户端消费一个受管理的 API,那么我们就可以以受管理的 API 形式使用它来暴露这个微服务所实现的业务逻辑。API 网关可以通过HTTP、HTTPS、RPC等方式来连接内部受管理的 API,以实现 API 网关的高并发。 2. API网关架构 API网关架构 API网关为企业的应用提供统一的应用入口, API网关隐藏了企业内部应用系统的应用细节, 从一定程度上保证了企业内部应用的安全性。 API网关为各种应用场景提供支撑服务。 3. API网关的功能 企业级API网关应该提供下列的功能: API网关功能 服务路由 :外部服务访问接口映射到对应的内部服务访问接口。 认证授权 :提供对用户身份的认证以及用户权限验证,包括用户身份的合法性、针对用户角色的访问授权验证、针对用户的访问授权验证、IP 黑名单验证等。 超时处理 :当 API 网关调用的内部服务响应时间超过了在自主开发的 API 网关后台管理子系统中所设置的允许最长的超时时间时,API

大规模微服务单元化与高可用设计

帅比萌擦擦* 提交于 2019-11-30 12:04:20
说到大规模微服务系统,往往是一些7*24时不间断运行的在线系统,这样的系统往往有以下的要求: 第一,高可用。这类的系统往往需要保持一定的SLA的,7*24时不间断运行不代表完全不挂,而是有一定的百分比的。例如我们常说的可用性需达到4个9(99.99%),全年停机总计不能超过1小时,约为53分钟,也即服务停用时间小于53分钟,就说明高可用设计合格。 第二,用户分布在全国。大规模微服务系统所支撑的用户一般在全国各地,因而每个地区的人,都希望能够就近访问,所以一般不会一套系统服务全国,而是每个地区都要有相应的业务单元,使得用户可以就近访问。 第三,并发量大,存在波峰波谷。微服务之所以规模比较大,其实是承载的压力比较大,而且需要根据请求的波峰波谷进行弹性伸缩。 第四,有故障性能诊断和快速恢复的机制。大规模微服务场景下,运维人员很难进行命令式手动运维来控制应用的生命周期,应该采用声明式的运维方法。另外一旦有了性能瓶颈或者故障点,应该有自动发现定位的机制,迅速找到瓶颈点和故障点,及时修复,才能保障SLA。 战略设计 为了满足以上的要求,这个系统绝不是运维组努力一把,或者开发组努力一把,就能解决的,是一个端到端的,各个部门共同完成的一个目标,所以我们常称为战略设计。 第一,研发 一个能支撑高并发,高可用的系统,一定是需要从研发环节就开始下功夫的。 首先,每一个微服务都有实现良好的无状态化处理

Hadoop生态圈

早过忘川 提交于 2019-11-30 08:12:40
Hadoop是Apache开源的分布式计算框架,由Java语言实现,支持对海量数据的分布式计算,其框架中最核心设计是HDFS和MapReduce。 Hadoop的优势 1)高可靠性:因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理 2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。 3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。 4)高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。 Hadoop组成 1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。 2)Hadoop MapReduce:一个分布式的离线并行计算框架。 3)Hadoop YARN:作业调度与集群资源管理的框架。 4)Hadoop Common:支持其他模块的工具模块。 1 Hadoop生态圈重要组件(数据处理过程的视角) 1.1 数据采集 Sqoop—— 结构化数据/数据迁入迁出工具 Flume Kafka—— 分布式日志采集工具 分布式消息队列 针对半结构化或非结构化数据 1.2 数据存储 HDFS—— 基于Hadoop的分布式文件存储系统 HBase—— 基于Hadoop的列式分布式NoSQL数据库 1.3 资源调度 YARN—— 作业调用和集群资源管理框架

2.RabbitMQ 的可靠性消息的发送

喜你入骨 提交于 2019-11-30 06:10:43
本篇包含 1、 RabbitMQ 的可靠性消息的发送 2、 RabbitMQ 集群的原理与高可用架构的搭建 3、 RabbitMQ 的实践经验 上篇包含 1、MQ 的本质,MQ 的作用 2、RabbitMQ 的特性,工作模型,交换机详解 3、Java API 编程,UI 管理界面 4、进阶知识:TTL、死信队列、延迟队列,服务端流控和消费端限流 5、Spring AMQP 核心组件 1. RabbitMQ 可靠性投递与高可用架构 1.1. 可靠性投递 在代码里面一定是先操作数据库再发送消息。避免因为数据库回滚导 致的数据不一致。 但是如果先操作数据,后发送消息,发送消息出了问题,那不是一样 会出现业务数据的不一致? 分析 RabbitMQ 的可靠性投递,也就是在使用 RabbitMQ 实现异步通 信的时候, 消息丢了怎么办,消息重复消费怎么办? 在 RabbitMQ 里面提供了很多保证消息可靠投递的机制,这个也是 RabbitMQ 的一 个特性。 我们在讲可靠性投递的时候,必须要明确一个问题,因为效率与可靠性是无法兼得 的,如果要保证每一个环节都成功,势必会对消息的收发效率造成影响。所以如果是一 些业务实时一致性要求不是特别高的场合,可以牺牲一些可靠性来换取效率。 比如发送通知或者记录日志的这种场景,如果用户没有收到通知,不会造成业务影 响,只要再次发送就可以了。

博客笔记整理【持续更新...】

风格不统一 提交于 2019-11-30 06:09:10
Java基础总结 Java基础语法总结 包括win10 安装JDK8,数据类型与变量,运算符,数组 为什么需要定义数据类型??? Java面向对象特性总结 封装,继承,多态 动态引用存储——集合&&精确的集合定义——泛型 Java集合又称容器,可以动态的将对象的引用存储在容器中。(灵活可扩展) 什么是泛型? 参数化类型!!! 什么是参数化类型??? 将具体的类型(如String,Integer)抽象成参数。 数据读写API——IO流 IO指的是Input和Output,主要目的是实现数据在存储介质之间的传输。【流:数据流,类比与水流的流动】 枚举类&&注解&&反射 在需要类的实例为一个或者多个并且相对固定的时候,使用枚举类。 Annotation 其实就是代码里的 特殊标记 , 这些标记可以在编译, 类加 载, 运行时被读取, 并执行相应的处理。 反射机制允许程序在运行期 借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 (最高权限) MySQL笔记 MySQL基础总结 包括MySQL介绍,Linux下安装MySQL进行远程连接,MySQL常用命令,数据类型,运算符 MySQL设计表规范 包括设计表时常用规范,如禁止在数据库中存储图片,文件等大的二进制数据,三大范式等 MySQL索引和开发规范 如单表索引最好不超过5个