高可用

Redis基础

无人久伴 提交于 2019-12-04 21:06:01
Redis基础知识 Redis基础知识 Redis版本说明 Redis性能与特性 1.速度快 2.持久化 3.支持多种数据结构 4.功能丰富 5.高可用以及分布式 Redis应用场景 1.缓存 2.计数器 3.排行榜 4.定位功能(3.2开始支持) 5.简单的消息系统 6.交友 toc Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis与其他key-value缓存产品有以下三个特点: 1.Redis支持数据的持续化,可以将内存中的数据保持再在磁盘中,重启的时候可以再次加载进行使用。 2.Redis不仅仅支持简单的key-value类型的数据,同时还提供List、Set、Zset、Hash等数据结构的存储。 3.Redis支持数据的备份,即master-slave模式的数据备份。 Redis版本说明 Redis版本号采用标准惯例:主版本号.福版本号.补丁级别,一个副版本号就标记为一个标准发行版本,例如:1.2,2.0,2.2,2.4,2.6,2.8,奇数的副版本用来表示非标准版本,例如2.9.x发行版本是Redis 3.0标准版本的非标准发行版本。 根据Redis的命名规则,我们首先要判定我们要使用的是不是稳定版本,避免在生产环境使用测试版本,出现不可控问题。尽量选择市面主流的大版本,新的版本虽然增加了很多的功能

一步步带你,如何网站架构

风格不统一 提交于 2019-12-04 20:49:27
#何为大型网站# ##大型网站特性## 既然说的是大型网站架构,那么 架构的背后自然是解决人因面对大型网站特性而带来的问题 。这样可以先给大家说下大型网站的特性, 这些特性带来的问题就是人要解决的问题 : 高并发、大流量:PV 量巨大; 高可用:7*24 小时不间断服务; 海量数据:文件数目分分钟 xxTB; 用户分布广泛,网络情况复杂:网络运营商; 安全环境恶劣:黑客的攻击; 需求快速变更,发布频繁:快速适应市场,满足用户需求; 渐进式发展:慢慢地运营出大型网站; ##大型网站目标## 既然说到了大型网站的特性,那么**解决这些特性带来的问题要达到什么目标呢?**如下: 每个目标背后面临着技术、设计、维护等诸多方面的挑战; 而目标本身的期望值也会根据实际情况进行调整,这也意味着网站架构建设是个不断调整的过程。 有了问题,也定了伟大的目标,那么网站在不同阶段面对不同的问题,是如何解决的?又是如何一步步成长为大型网站架构,实现这些伟大的目标呢? ##如何网站架构## 首先,什么是大型网站架构呢? 其实大型网站架构的概念对于每一个开发者来说很笼统、很模糊,正如盲人摸象,看到的、了解到的只是很小的一部分,大部分情况下我们只是负责架构中的一小块内容,所以很难清晰地给出具体定义。这就是所谓“不识庐山真面目 只缘身在此山中”的尴尬吧。所以我们要跳出来,站在宏观的角度

PostgresSQL HA高可用架构实战

廉价感情. 提交于 2019-12-04 15:22:13
PostgresSQL HA高可用架构实战 原创 2015-09-25 萧少聪 高可用架构 本文由萧少聪在高可用架构群所做的分享整理而来,转载请注明高可用架构公众号:ArchNotes。 萧少聪(花名:铁庵),广东中山人,阿里云RDS for PostgreSQL/PPAS云数据库产品经理。自2006年以来,长期从事RedHat及SuSE Linux的HA集群搭建及PostgreSQL数据库支持工作。2011年开始组建Postgres(数据库)中国用户会。 PostgreSQL背景介绍 有不少同学希望了解PostgreSQL的背景及它与MySQL的对比结果,所以在此啰唆两句,有兴趣的同学可以单独给我发E-Mail,我可以分享详细的介绍及一些对比结果。 2015年是PostgreSQL正式在中国起步的一年,我们看到越来越多的企业选择了PostgreSQL。 中国移动主动使用PostgreSQL实现分布式数据库架构。 金融业方面平安集团明确表示将使用PostgreSQL作为新一代数据库的选型。 华为中兴纷纷加入PostgreSQL内核研究队伍。 阿里云正式提供PostgreSQL服务。 大部分人了解MySQL应该都是从2005年左右开始,那时在互联网带动下LAMP空前繁荣。而你所不知道的是,那时PostgreSQL已发展了近30年,至今已经超过40年

一张图秒懂微服务网络架构

自古美人都是妖i 提交于 2019-12-04 15:05:49
一张图秒懂微服务网络架构 https://www.cnblogs.com/yuesf/p/11831234.html   最近参与了 公有云微服务项目 ,已经有一段时间未公开发表。通过这次改造公有云微服务项目的实践过程,分享一下公有云微服务网络架构,及服务部署方案。 每个平台的网络架构图都类似,但细节根据自有服务有组件又各不一样,别人的架构拿过来不一致适合你的架构,那么首先要了解每层架构及每个服务的职责,以及服务与服务之间的交互逻辑。我们根据私有云的架构迁移过来,保持了部分架构,补充了原来在私有云部署中公共组件部分。迁移到公有云后,一些公共组件由我们自己搭建并运维。整理总览图请看下图: 网络架构总览图 一、互联网层   外网层也是网络架构中最上一层,是指服务报露在互联网中使用的,通过IP或域名的方式访问服务。访问的域名通过解析服务器,解析到指定的互联网机器。 互联网机器一般是使用云服务的方式构建。 二、云服务平台层 云计算按照服务类型大致可以分为三类: 将基础设施作为服务Iaas 将平台作为服务PaaS 将软件作为服务SaaS 按照云计算服务的部署方式和服务对象的范围可以将云计算分为三类,即公共云、私有云和混合云。 公共云:是由云服务提供商运营,为最终用户提供从应用程序、软件运行环境,到物理基础设施等各种各样的IT资源。在该方式下

聊聊微服务的服务注册与发现

走远了吗. 提交于 2019-12-04 14:12:29
聊起微服务的服务注册与发现,很多人立马就会脱口而出 zk、etcd、consul、eureka 这些组件,进而聊到 CAP 如何取舍,性能如何,高可用和容灾是怎么实现的。 引言 聊起微服务的服务注册与发现,很多人立马就会脱口而出 zk、etcd、consul、eureka 这些组件,进而聊到 CAP 如何取舍,性能如何,高可用和容灾是怎么实现的。 在这之前,站在组件使用者的角度,我想先问这么几个问题: 注册的 IP 和端口怎么确定 ? 实现服务治理还需要注册哪些信息 ? 如何进行优雅的服务注册与服务下线 ? 注册服务的健康检查是如何做的 ? 当服务有节点退出或新的节点加入时,订阅者能不能及时收到通知 ? 我能方便地查看某个应用发布和订阅了哪些服务,以及所订阅的服务有哪些节点吗 ? 看完这些问题后,您也许会发现,对于服务注册与发现,首先应该关注的是服务注册发现本身的功能,然后才是性能和高可用。 一个好的服务注册发现中间件,应该是能完整地满足服务开发和治理的基础功能,然后才是性能和高可用。如果没有想清楚前面的功能,再高的可用性和性能都是浮云。最后,安全也同样重要。 服务端的性能如何 ? 服务发现的容灾策略是怎样的 ? 当我的应用和服务发现中心的网络连接出现问题时,会对我的调用产生什么影响 ? 服务注册中心某台机器宕机或者全部宕机时,会对我的调用产生什么影响 ?

细看名字服务中心

孤街醉人 提交于 2019-12-04 13:32:23
名字服务就是服务间“你寻我,我寻你”的爱情游戏,因为它总是为彼此找到最佳"伴侣",不是么? 在之前的文章中多次提到名字服务这个概念,也很多人在问这是个什么东西?为什么我老是提起它?首先因为太重要了,直接决定着运维自动化平台的水平、简单与复杂;其次我做这么多年运维,对名字服务有着很深的情节(可能觉得它很酷),终于这次在自己负责的业务里面落地,也有了实践的经验,避免来虚的;最后,它能把技术架构对可运维性的理念表现得淋漓尽致,是一个自维护架构的重要标尺。 在11年左右,当时也提出基于某统一的server框架自动构建名字服务中心的做法,把容器服务和腾讯的一个调度中心L5(后面会介绍)进行集成,降低运维工作量。也许是因为当年自己思考不成熟和全面,最终这个方案没有走向实施,有些可惜。不过在目前的单位,遇到一位大牛,最初提出想法,上面支持就开始做了,运维就需要这样的研发拍档。 首先需要讲几个概念: 1、服务 是一个、组、类功能或者接口的业务描述,比如说注册用户、发送短信。转化到技术层面上就会对应一个api或者接口,此时会触发一次远程的RPC调用,函数内的功能不是。 2、服务实例 服务实例是服务对应的一组IP和端口的简称。当前端服务需要请求后端某服务的时候,此时需要先找到对应的服务运行实例,也就是进程和端口,然后才能建立connection,从而发起请求。 3、服务注册

CentOS 6.5高可用集群LVS+Keepalived

时间秒杀一切 提交于 2019-12-04 12:32:15
环境介绍 操作系统: CentOS 6.5_x64 mini 负载均衡模式:DR(直接路由) LVS与Keepalived简述: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,很好的可伸缩性、可靠性和管理性。 LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。 Keepalived采用VRRP(virtual router redundancy protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案-----由多台路由器组成一个热备组。通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一台主服务器提供服务,其他服务器处于冗余状态,若当前在线的服务器失败,其他服务器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务。 一、配置主从LVS服务器 安装依赖包: yum install -y gcc gcc-c++ makepcre pcre-devel openssl-devel kernel-devel

敲开通往架构师的门

為{幸葍}努か 提交于 2019-12-04 12:04:42
最近学习了一些关于架构设计的知识想分享给大家。俗话说得好,不想当架构师的程序员不是好厨子。那么如何成为一名架构师呢?接下来就聊一聊我的一些想法。 什么是架构师 之前有同学问我,做了几年技术,应该转管理还是转架构师?对于这位同学,我给他的答案是,你要先踏踏实实做好现在的工作。因为就他提的问题来看,应该是刚入行不久或者是在校学生。 专心做技术的,都想做架构师。但架构师并不是说技术做时间长了可以转的。随着你的知识深度和广度的增加,在工作中会扮演更重要的角色,承担更大的责任,最终自然而然就会接触到架构设计的工作。 而架构师的主要工作,其实是利用架构设计知识以及丰富的工作经验,在设计架构时,结合实际情况,在不同的选项中做出取舍。 架构设计的真正目的? 为什么要进行架构设计?因为架构设计很重要?可是为什么重要呢?似乎说不清楚。 因为可以提升开发效率吗?也不一定,因为只有简单的设计才会使开发效率更高。而架构设计出于多方面考虑,不得已会引入一些复杂度,因此架构设计并不一定能提升开发效率。 是为了大多数口中的“高可用”、“高性能”、“可扩展”吗?其实也不是。我们的系统可能并不一定需要这些。 那架构设计的真正目的是什么呢?我认为架构设计的真正目的是与系统复杂度做斗争。 系统复杂度的来源有: 高性能、高可用、可扩展性、低成本、安全、规模 。 前面我们聊到有些系统可能不需要高可用、高性能

微服务架构中服务注册与发现

☆樱花仙子☆ 提交于 2019-12-04 09:27:09
https://blog.csdn.net/u011537073/article/details/69663858 想象一下,如果你在写代码调用一个有REST API或Thrift API的服务,你的代码需要知道一个服务实例的网络地址(IP地址和端口)。运行在物理硬件上的传统应用中,服务实例的网络地址是相对静态的,你的代码可以从一个很少更新的配置文件中读取网络地址。 在一个现代的,基于云的微服务应用中,这个问题就变得复 杂多 了,如下图所示: 服务实例的网络地址是动态分配的。而且,由于自动扩展,失败和更新,服务实例的配置也经常变化。这样一来,你的客户端代码需要一套更 精细 的服务发现机制。 有两种主要的服务发现模式:客户端服务发现(client-side discovery)和服务器端服务发现(server-side discovery)。我们首先来看下客户端服务发现。 客户端服务发现模式 当使用客户端服务发现的时候,客户端负责决定可用的服务实例的网络地址,以及围绕他们的负载均衡。客户端向服务注册表(service registry)发送一个请求,服务注册表是一个可用服务实例的数据库。客户端使用一个负载均衡算法,去选择一个可用的服务实例,来响应这个请求,下图展示了这种模式的架构: 一个服务实例被启动时,它的网络地址会被写到注册表上;当服务实例终止时,再从注册表中删除

阿里HBase高可用8年“抗战”回忆录

徘徊边缘 提交于 2019-12-04 08:32:36
2017年开始阿里HBase走向公有云,我们有计划的在逐步将阿里内部的高可用技术提供给外部客户,目前已经上线了同城主备,将作为我们后续高可用能力发展的一个基础平台。本文分四个部分回顾阿里HBase在高可用方面的发展:大集群、MTTF&MTTR、容灾、极致体验,希望能给大家带来一些共鸣和思考。 大集群 一个业务一个集群在初期很简便,但随着业务增多会加重运维负担,更重要的是无法有效利用资源。首先每一个集群都要有Zookeeper、Master、NameNode这三种角色,固定的消耗3台机器。其次有些业务重计算轻存储,有些业务重存储轻计算,分离模式无法削峰填谷。因此从2013年开始阿里HBase就走向了大集群模式,单集群节点规模达到700+。 隔离性是大集群的关键难题。保障A业务异常流量不会冲击到B业务,是非常重要的能力,否则用户可能拒绝大集群模式。阿里HBase引入了分组概念“group”,其核心思想为:共享存储、隔离计算 如上图所示,一个集群内部被划分成多个分组,一个分组至少包含一台服务器,一个服务器同一时间只能属于一个分组,但是允许服务器在分组之间进行转移,也就是分组本身是可以扩容和缩容的。一张表只能部署在一个分组上,可以转移表到其它的分组。可以看到,表T1读写经过的RegionServer和表T2读写经过的RegionServer是完全隔离的,因此在CPU、内存上都物理隔离