集群技术

使用Codis搭建redis集群服务

↘锁芯ラ 提交于 2020-03-17 19:51:11
转( http://www.jianshu.com/p/f8e968e57863 ) 一. 应用场景 redis 作为数据结构存储引擎,有着很多优点 高性能 单机引擎可以达到5-10W qps 数据结构全面,支持快速开发业务 string,list,set,sorted set, hashes 问题: 存储容量受限单机最大容量即为单机内存最大容量 单机数据的持久化依赖aof和rdb机制,如果机器整个down掉,服务不可用 二. redis集群选型 正是由于单机redis引擎有着这样的问题,所以,基本每个互联网公司都有自己的redis集群化方案。 在redis客户端lib中实现数据的分片并主从部署redis实例 优点:简单,性能损耗小 缺点:扩容方案复杂 集群化候选方案 1、NetFlix对Dynamo的开源通用实现Dynomite Dynomite是NetFlix对亚马逊分布式存储引擎Dynamo的一个开源通用实现,使用C/C++语言编写、以代理的方式实现的Redis缓存集群方案。Dynomite不仅能够将基于内存的Redis和Memcached打造成分布式数据库,还支持持久化的MySQL、BerkeleyDB、LevelDB等数据库,并具有简单、高效、支持跨数据中心的数据复制等优点。Dynomite的最终目标是提供数据库存储引擎不能提供的简单、高效、跨数据中心的数据复制功能

高性能网站架构设计之缓存篇(5)- Redis 集群(上)

走远了吗. 提交于 2020-03-17 15:17:23
某厂面试归来,发现自己落伍了!>>> 集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器节点,来降低单节点服务器的压力。 上一篇我们讲到了 Redis 的主从复制技术,当实现了多节点的 master-slave 后,我们也可以把它叫做集群,但我们今天要讲的集群主要是利用切片技术来组建的集群。 集群要实现的目的是要将不同的 key 分散放置到不同的 redis 节点,这里我们需要一个规则或者算法,通常的做法是获取 key 的哈希值,然后根据节点数来求模,但这种做法有其明显的弊端,当我们需要增加或减少一个节点时,会造成大量的 key 无法命中,这种比例是相当高的,所以就有人提出了一致性哈希的概念。 一致性哈希有四个重要特征: 均衡性:也有人把它定义为平衡性,是指哈希的结果能够尽可能分布到所有的节点中去,这样可以有效的利用每个节点上的资源。 单调性:对于单调性有很多翻译让我非常的不解,而我想要的是 当节点数量变化时哈希的结果应尽可能的 保护已分配的内容不会被重新分派到新的节点。 分散性和负载:这两个其实是差不多的意思,就是要求一致性哈希算法对 key 哈希应尽可能的避免重复。 但一致性哈希不是我们今天要介绍的重点,因为 Redis

Hadoop纯理论bb,纸上谈兵

◇◆丶佛笑我妖孽 提交于 2020-03-17 09:13:16
大数据基础 定义 大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。 大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。 大数据的意义不在于数量,在于挖掘数据的价值,探究海量数据间的相关性 基本特征 容量(Volume) :数据的大小决定所考虑的数据的价值和潜在的信息 种类(Variety) :数据类型的多样性 速度(Velocity) :获得数据的速度 可变性(Variability) :妨碍处理和有效管理数据的过程 真实性(Veracity) :数据的质量 复杂性(Complexity) :数据量巨大,来源多渠道 价值(Value) :合理运用大数据,以低成本创造高价值 Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构,是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。 它的设计是从单个服务器扩展到千数个机器,每个提供本地计算和存储。 Hadoop框架实现分布式最核心的设计: HDFS 和 MapReduce 其中HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。以及在Hadoop2.x内,YARN框架实现了分布式资源调度。 Hadoop 1.0到Hadoop 2.0架构的变化图如下

深度解读!阿里统一应用管理架构升级的教训与实践

霸气de小男生 提交于 2020-03-16 18:29:01
某厂面试归来,发现自己落伍了!>>> 从 2019 年初开始,阿里巴巴云原生应用平台团队开始逐步在整个阿里经济体内,基于标准应用定义与交付模型进行应用管理产品与项目统一架构升级的技术工作。 事实上,早在 2018 年末,当 Kubernetes 项目正式成为阿里巴巴的应用基础设施底盘之后,阿里内部以及阿里云产品线在应用管理领域的碎片化问题就开始日渐凸显出来。 尤其是在云原生生态日新月异的今天,阿里巴巴与阿里云的应用管理产品架构(包括阿里内部 PaaS 和云上 PaaS 产品),如何以最佳姿态拥抱云原生生态、如何以最高效的技术手段借助生态日新月异的能力构建出更强大的 PaaS 服务,而不是重复造轮子甚至和生态“背道而驰”,很快就成为了阿里团队亟待解决的重要技术难题。 但棘手的是,这个问题并不是简单把 PaaS 迁移或者集成到 Kubernetes 上来就能够解决的:PaaS 与 Kubernetes 之间,从来就没有存在这样一条清晰的分界线,可是 Kubernetes 本身又并不是面向最终用户设计的。 如何既让全公司的研发和运维充分享受云原生技术体系革新带来的专注力与生产力提升,又能够让现有 PaaS 体系无缝迁移、接入到 Kubernetes 大底盘当中,还要让新的 PaaS 体系把 Kubernetes 技术与生态的能力和价值最大程度的发挥出来,而不是互相“屏蔽”甚至“打架”

memcache

ε祈祈猫儿з 提交于 2020-03-16 12:30:16
目录 基础概念 mem架构 mem内存管理 删除机制 分布式机制 memcache来存储session的特点 监控 常用命令 session server memcache与php memcache与tomcat ======================================================================= 张贺,多年互联网行业工作经验,担任过网络工程师、系统集成工程师、LINUX系统运维工程师 笔者微信:zhanghe15069028807,现居济南历下区 ======================================================================= # 基础概念 基础概念 memcached是什么?有什么作用?   memcached是一个工作在内存的nosql的数据库,通常有两个作用,第一个作用是部署在real server集群的后端后做session server,存储用户的session信息,这样无论客户端调度到哪一台real server,都能够保持与客户端之前的会话。第二个作用是部署在关系型数据库的前端,做关系型数据库的缓存,其目的提升数据库的访问性能,加速网站集群动态应用服务的能力。 memcached服务在企业集群架构中应用场景 1.作为数据库的前端缓存应用 (1

一文解析Redis读写分离技术

孤者浪人 提交于 2020-03-16 09:29:42
云数据库Redis版不管主从版还是集群规格,replica作为备库不对外提供服务,只有在发生HA的时候,replica提升为master后才承担读写流量。这种架构读写请求都在master上完成,一致性较高,但性能受到master数量的限制。经常有用户数据较少,但因为流量或者并发太高而不得不升级到更大的集群规格。 背景 云数据库Redis版不管主从版还是集群规格,replica作为备库不对外提供服务,只有在发生HA的时候,replica提升为master后才承担读写流量。这种架构读写请求都在master上完成,一致性较高,但性能受到master数量的限制。经常有用户数据较少,但因为流量或者并发太高而不得不升级到更大的集群规格。 为满足读多写少的业务场景,最大化节约用户成本,云数据库Redis版推出了读写分离规格,为用户提供透明、高可用、高性能、高灵活的读写分离服务。 架构 Redis集群模式有redis-proxy、master、replica、HA等几个角色。在读写分离实例中,新增read-only replica角色来承担读流量,replica作为热备不提供服务,架构上保持对现有集群规格的兼容性。redis-proxy按权重将读写请求转发到master或者某个read-only replica上;HA负责监控DB节点的健康状态,异常时发起主从切换或重搭read-only

红帽子RHCS套件安装与配置(一)

此生再无相见时 提交于 2020-03-15 17:29:52
RHCS提供的三个核心功能    高可用集群是RHCS的核心功能。当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以通过RHCS提供的高可用性服务管理组件自动、快速从一个节点切换到另一个节点,节点故障转移功能对客户端来说是透明的,从而保证应用持续、不间断的对外提供服务,这就是RHCS高可用集群实现的功能。    RHCS通过LVS(LinuxVirtualServer)来提供负载均衡集群,而LVS是一个开源的、功能强大的基于IP的负载均衡技术,LVS由负载调度器和服务访问节点组成,通过LVS的负载调度功能,可以将客户端请求平均的分配到各个服务节点,同时,还可以定义多种负载分配策略,当一个请求进来时,集群系统根据调度算法来判断应该将请求分配到哪个服务节点,然后,由分配到的节点响应客户端请求,同时,LVS还提供了服务节点故障转移功能,也就是当某个服务节点不能提供服务时,LVS会自动屏蔽这个故障节点,接着将失败节点从集群中剔除,同时将新来此节点的请求平滑的转移到其它正常节点上来;而当此故障节点恢复正常后,LVS又会自动将此节点加入到集群中去。而这一系列切换动作,对用户来说,都是透明的,通过故障转移功能,保证了服务的不间断、稳定运行。    RHCS通过GFS文件系统来提供存储集群功能,GFS是GlobalFileSystem的缩写,它允许多个服务同时去读写一个单一的共享文件系统

集团企业型网站建设新趋势:网站集群

China☆狼群 提交于 2020-03-14 17:28:49
过去一段时间一直在忙于做网站的改版,因为内部的各个网站风格太乱,信息传送共享方面也不是很方便,所以领导直接要求换掉。差不多忙了有两个多月才把产品订了下来,在此期间我学习了很多,也了解了很多,现在就拿出来给大家分享一下我的心得。 一、什么是集团/企业网站集群化? 这是个很深奥的问题,在此之前我想我们首先要明白一个概念,就是什么是集群。 所谓集群就是指一组计算机,它们作为一个整体向用户提供一组网络资源。一个单个的计算机系统就是集群的一个节点。一个理想的集群是:用户不能意识到集群系统底层的节点,在他们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增删改集群系统的节点。 集团/企业网站集群就是指把集团/企业的各个部门或子公司网站汇集成一个群体,但不是指简单的汇合。 二、集团/企业网站发展现状 随着互联网的发展,网站建设也发展了很多年。初始的建站思路就是为每个公司或部门等建立一个单独的网站。但是发展到今天,依然有很多的网络公司在给集团/企业建设网站时采用最初始的单独建站的思路,即建设的集团子网站一个个都是信息孤岛,不能信息共享,没有统一的管理平台,无法让各个部门或子公司建立产业链,从而背离互联网的核心优势。我们就是因为这个原因才改版的。 互联网越来越发展了,技术也应该跟着大大的进步,跟初始建立的网站相比,现在的建站比之前好看了、速度快了,这就可以了吗

使用Consul做服务发现的若干姿势

半腔热情 提交于 2020-03-14 03:53:57
从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后来逐步应用于生产环境,并总结了少许使用经验。最开始使用Consul的人不多,为了方便交流创建了一个QQ群,这两年微服务越来越火,使用Consul的人也越来越多,目前群里已有400多人,经常有人问一些问题,比如: 服务注册到节点后,其他节点为什么没有同步? Client是干什么的?(Client有什么作用?) 能不能直接注册到Server?(是否只有Server节点就够了?) 服务信息是保存在哪里的? 如果节点挂了健康检查能不能转移到别的节点? 有些人可能对服务注册和发现还没有概念,有些人可能使用过其它服务发现的工具,比如zookeeper,etcd,会有一些先入为主的经验。这篇文章将结合Consul的官方文档和自己的实际经验,谈一下Consul做服务发现的方式,文中尽量不依赖具体的框架和开发语言,从原理上进行说明,希望能够讲清楚上边的几个问题。 为什么使用服务发现 防止硬编码、容灾、水平扩缩容、提高运维效率等等,只要你想使用服务发现总能找到合适的理由。 一般的说法是因为使用微服务架构。传统的单体架构不够灵活不能很好的适应变化,从而向微服务架构进行转换,而伴随着大量服务的出现,管理运维十分不便,于是开始搞一些自动化的策略,服务发现应运而生。所以如果需要使用服务发现,你应该有一些对服务治理的痛点。

开源多云技术平台——Choerodon猪齿鱼发布0.21版本

匆匆过客 提交于 2020-03-13 19:25:25
Choerodon 猪齿鱼作为开源多云应用敏捷全链路技术平台,是基于开源技术Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。 2020年3月13日,Choerodon猪齿鱼发布 0.21 版本,本次更新敏捷协作的知识库部分相较于上一版本会有较大的改动,其它功能模块也都进行了不同程度的修改和优化,如平台功能、协作、部署等,欢迎各位更新体验。 发布版本:0.21 发布时间:2020年3月13日 更新范围:敏捷协作、代码开发、测试管理、环境部署以及基础功能 下面就为大家带来详细的模块介绍。 敏捷协作 新增功能 迭代计划、工作列表 配置看板支持删除状态。 导入问题支持导入父子级关系,用户可以在导入故事或任务时同时导入子任务。 敏捷消息通知支持邮件方式。 知识库 支持创建多个知识库。 支持知识库设置公开范围。 知识库支持设置文档模板。 支持基于模板创建知识库或者文档。 知识库支持复制文档。 支持从回收站恢复知识库。 缺陷修复 迭代计划、工作列表 修复故事地图全屏显示菜单栏的问题。 修复迭代计划工作台刷新后无数据的问题。