高可用

Sentinel实现Redis集群的高可用

强颜欢笑 提交于 2019-11-28 12:31:47
Sentinel实现Redis集群的高可用 redis集群中有一主一从两个节点。当主节点down掉的时候需要把从节点提升为主节点继续提供服务,从而实现高可用。结构图如下, redis单机多实例主从的安装和配置请参考: http://my.oschina.net/xinxingegeya/blog/389521 下面是具体的搭建过程和一些验证。这里我们建立三个redis节点,其中两个是slave节点;建立三个sentinel节点,同时监控redis集群中的master节点。 目录结构如下, ➜ redis tree -L 1 . ├── conf ├── data ├── log ├── redis_7000 ├── redis_7001 ├── redis_7002 ├── redis_8000 ├── redis_9000 └── run 9 directories, 0 files 其中conf存放redis的配置文件,data为redis的数据存储目录,log为redis的日志目录,run为redis的pid文件目录。 这里使用了一个master节点,两个slave节点的结构设计,其中的7000作为master节点,7001和7002节点作为slave节点。 首先启动三台redis服务器,如下, ➜ redis_7000 ./src/redis-server ./7000

1.初识Redis

折月煮酒 提交于 2019-11-28 11:09:17
作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-08-14 20:35:36 星期三 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程中的编写的文章 如您在阅读过程中发现文章错误,可添加我的微信 tangy8080 进行反馈.感谢您的支持。 文章主题 Redis初识,已经在k8s中得安装 前置条件 已经构建好了一个k8s集群 正文 Redis特性 速度快 Redis的所有数据都是存放在内存中的,所以把数据放在内存中是Redis速度快的最主要原因 Redis是用C语言实现的,一般来说C语言实现的程序“距离”操作系统更近,执行速度 相对会快 Redis使用了单线程架构,预防了多线程可能产生的竞争问题 作者对于Redis源代码的精打细磨 基于键值对的数据结构服务器 Redis中的值不仅可以是字符串,而且还可以是具体的数据结构,这样不仅能便于在许多应用场景开发,同时也能够提高开发效率。Redis主要提供了5种数据结构:字符串、哈希、列表、集合、有序集合,同时在字符串的基础上演变出了位图(Bitmaps)和HyperLogLog两种神奇的“数据结构”,并且随着LBS(基于位置服务)的不断发展,加入了有关GEO(地理信息定位)的功能,总之在这些数据结构的帮助下,开发者可以开发出各种“有意思”的应用。 丰富的功能 提供了键过期功能

Redis----NoSql数据库笔记

蹲街弑〆低调 提交于 2019-11-28 10:40:00
介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。 传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。 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 对应

Nginx+Zuul集群实现高可用网关

北城以北 提交于 2019-11-28 09:17:22
代码参考:https://github.com/HCJ-shadow/Zuul-Gateway-Cluster-Nginx Zuul的路由转发功能 前期准备 搭建Eureka服务注册中心 服务提供者msc-provider-5001【提供一个hello请求做测试】 创建gateway-7001 pom依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> yaml server: port: 7001 spring: application: name: zuul-gateway eureka: client: service-url: defaultZone: http://eureka2001.com:2001/eureka/,http://eureka2002.com:2002/eureka/,http://eureka2003.com:2003/eureka/ 主类{注解@EnableZuulProxy} package zkrun.top; import org.springframework.boot.SpringApplication; import org

为什么要用Kubernetes?

自闭症网瘾萝莉.ら 提交于 2019-11-28 08:12:25
1、前言   第一次接触Kubernetes是在2016年,再一次浏览博文的时候,那是我第一次听到Kubernetes这个名词,也是第一次认识了k8s这么一个东西。后来在慢慢了解它的时候,被它天生高可用、负载均衡、弹性计算、自动扩容缩容和全自动容灾机制的设计理念吸引,于是自己便踏入了k8s这条不归路,在调研学习的过程中,开始不断填坑、挖坑再填坑,周而复始。   2017年,公司还在使用裸Docker部署一些无状态的应用,随着越来越多的Docker实例,发生故障时,人工填坑的方式,让我们实在头疼,有时候大半夜正在做着美梦的时候,被一个电话铃喊起来处理着由于宿主机宕机或者网络不可达引起的各类问题。这种惨绝人寰的处理方式更是让我们头疼难忍。虽然后来引用了Swarm和Compose,但随着业务的不断增多,已经越来越来满足不了我们的应用场景,然后就想着把所有Docker应用迁移到Kubernetes中去管理。    2017年6月30日,k8s发布1.7版本,2017年10月,Docker拥抱Kubernetes,也是我们正式开始使用Kubernetes的开始。但事情并没有我们想象中的那么简单,k8s的设计太多复杂,概念实在是太多,搭建过程更是让人吐血,当时可参考的文章又是少之又少。在经过一个多月的研究与不断回血之后,终于在k8s集群中部署了我们的第一个应用。虽然整个过程中踩了无数坑

Spring Cloud——Eureka和Feign

两盒软妹~` 提交于 2019-11-28 07:39:15
1 Eureka 注册中心 1.1 需求分析 在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 1.2 为什么要用注册中心? 1、微服务数量众多,要进行远程调用就需要知道服务端的ip地址和端口,注册中心帮助我们管理这些服务的ip和端口。 2、微服务会实时上报自己的状态,注册中心统一管理这些微服务的状态,将存在问题的服务踢出服务列表,客户端获取到可用的服务进行调用。 1.3 Eureka注册中心 1.3.1 Eureka介绍 Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装,它实现了服务治理的功能,Spring Cloud Eureka提供服务端与客户端,服务端即是Eureka服务注册中心,客户端完成微服务向Eureka服务的注册与发现。服务端和客户端均采用Java语言编写。下图显示了Eureka Server与Eureka Client的关系: Eureka Server是服务端,负责管理各各微服务结点的信息和状态。 在微服务上部署Eureka Client程序,远程访问Eureka Server将自己注册在Eureka Server。 微服务需要调用另一个微服务时从Eureka Server中获取服务调用地址,进行远程调用。 1.3.2 Eureka

SpringCloud Eureka 高可用

孤人 提交于 2019-11-28 07:37:02
文章目录 Spring Cloud Eureka 高可用 高可用客户端(HA Client) Spring Cloud Eureka Client 应用元信息 实例 客户端配置 服务器配置 高可用注册中心(HA Registry Center) 实例 服务器配置 客户端配置 项目地址 Spring Cloud Eureka 高可用 Eureka和Zookeeper对比 Eureka在高可用方面好一点;Zookeeper在一致性上强一点 高可用客户端(HA Client) 多用于生产环境,客户端应用关联或配置注册中心服务器集群,避免注册中心单点故障 常见配置手段 多注册中心主机 注册中心DNS 广播(Dubbo) Spring Cloud Eureka Client 如果Eureka客户端应用配置多个Eureka注册服务器,那么默认情况只有第一台可用的服务器存在注册信息。如果第一台可用的Eureka服务器Down掉了,那么Eureka客户端应用将会选择下一台可用的Eureka服务器。 配置方式: eureka.client.serviceUrl.defaultZone=http://${eureka.server1.host}:${eureka.server1.port}/ eureka,${eureka.server2.host}:${eureka.server2.port}

Spring Cloud Eureka HA 高可用

淺唱寂寞╮ 提交于 2019-11-28 07:33:20
Spring Cloud Eureka HA 高可用 更多干货 spring cloud 微服务 spring cloud 知识点 服务发现与服务注册 定制Rabbon客户端负载均衡策略 Spring Cloud Feign使用1 SpringCloud Feign使用二 SpringCloud Hystrix 实现 SpringCloud超时机制、断路器模式简介 Spring Cloud Eureka HA 高可用 SpringCloud Turbine SpringCloud zuul 网关 集成 SpringCloud Conf 搭建配置中心 spring cloud- 阿波罗 apllo 本地开发环境 SpringCloud Conf 配置中心 属性加解密之对称加密 Spring Cloud 配置中心 认证和高可用 依赖eureka-server 依赖security需要用户名和密码登录 < dependency > < groupId > org . springframework . cloud < / groupId > < artifactId > spring - cloud - starter - eureka - server < / artifactId > < / dependency > < ! -- < dependency > < groupId >

什么是高可用?

心已入冬 提交于 2019-11-28 07:10:43
一、什么是高可用 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说系统的可用性是100%。 如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。 很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时。 百度的搜索首页,是业内公认高可用保障非常出色的系统,甚至人们会通过 www.baidu.com 能不能访问来判断“网络的连通性”,百度高可用的服务让人留下啦“网络通畅,百度就能访问”,“百度打不开,应该是网络连不上”的印象,这其实是对百度HA最高的褒奖。 二、如何保障系统的高可用 我们都知道,单点是系统高可用的大敌,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他backup能够顶上。 保证系统高可用,架构设计的核心准则是:冗余。 有了冗余之后,还不够,每次出现故障需要人工介入恢复势必会增加系统的不可服务实践。所以,又往往是通过“自动故障转移”来实现系统的高可用。 接下来我们看下典型互联网架构中,如何通过冗余+自动故障转移来保证系统的高可用特性

linux中级之keepalived概念

大兔子大兔子 提交于 2019-11-28 05:28:51
一、 HA 集群中的相关术语 1. 节点( node ) 运行 HA 进程的一个独立主机,称为节点,节点是 HA 的核心组成部分,每个节点上运行着操作系统和高可用软件服务,在高可用集群中,节点有主次之分,分别称之为主节点 / 备份节点,每个节点拥有唯一的主机名,并且拥有属于自己的一组资源,例如,磁盘,文件系统,网络地址和应用服务等,主节点上一般运行着一个或多个应用服务,而备节点一般处于监控状态 2. 资源( resource ) 资源是一个节点可以控制的实体,并且当节点发生故障时,这些资源能够被其他节点接管, HA 集群软件中,可以当做资源的实体有: ( 1 )磁盘分区、文件系统 ( 2 ) IP 地址 VIP ( 3 )应用程序服务 ( 4 ) NFS 文件系统 3. 事件( event ) 也就是集群中可能发生的事情,例如节点系统故障,网络连通故障,网卡故障,应用程序故障等,这些事情都会发生节点资源发生转移, HA 的测试也是基于这些事情来进行的 4. 动作( action ) 事件发生时 HA 的响应方式,动作是由 shell 脚本控制的,例如当某个节点发生故障后,备份节点将通过事先设定好的执行脚本进行服务的关闭或启动,进而接管故障节点的资源 二、 keepalived 简介 keepalived 是 linux 下一个轻量级的高可用解决方案 ,它与 HACMP 实现功能类似