集群服务器

centos8平台安装zookeeper3.6集群

孤街浪徒 提交于 2020-03-21 17:31:02
一,规划三台zk服务器构成集群 ip:172.18.1.1 机器名:zk1 对应myid: 1 ip:172.18.1.2 机器名:zk2 对应myid: 2 ip:172.18.1.3 机器名:zk3 对应myid: 3 说明:为什么zookeeper集群的数量需要是单数? 1,为了容错,增删改操作中需要半数以上服务器通过才算成功, 2,防脑裂,一个zookeeper集群中,必需有且只能有一台leader服务器 当leader服务器宕机时,剩下的服务器会通过半数以上投票选出一个新的leader服务器 集群总数共2台时,半数是1,半数以上最少是2,也就是一台也不能宕机 集群总数共3台时,半数是1.5,半数以上最少是2,也就是允许一台能宕机 集群总数共4台时,半数是2,半数以上最少是3,也就是允许一台能宕机 集群总数共5台时,半数是2.5,半数以上最少是3,也就是允许两台能宕机, 集群总数共6台时,半数是3,半数以上最少是4,也就是允许两台能宕机, 可见 允许两台能宕机:5台比6台成本更低 允许一台能宕机:3台比4台成本更低 说明:刘宏缔的架构森林是一个专注架构的博客,地址: https://www.cnblogs.com/architectforest 对应的源码可以访问这里获取: https://github.com/liuhongdi/ 说明:作者:刘宏缔 邮箱:

Redis集群方案

二次信任 提交于 2020-03-21 12:32:09
3 月,跳不动了?>>> 单机 redis最主要的适用场景:少量数据存储,高速读写访问,数据全部in-momery 的方式来保证高速访问,同时提供数据落地的功能。 分布式 随着用户量的增长,数据量随之增长,大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,这时候我们需要横向扩展,多台主机共同提供服务,既分布多个redis协同工作。大致有如下几种集群方案: 方案一:Redis官方集群方案Redis Cluster Redis Cluster由3.0版本正式推出,是一种服务器sharding技术,对客户端来说是完全透明的。 Redis Cluster中,Sharding采用slot(槽)的概念,一共分成16384个槽。对于每个进入Redis的键值对,根据key进行散列,分配到这16384个slot中的某一个中。使用的hash算法也比较简单,就是CRC16后16384取模。 Redis集群中的每个node(节点)负责分摊这16384个slot中的一部分,也就是说,每个slot都对应一个node负责处理。当动态添加或减少node节点时,需要将16384个槽做个再分配,槽中的键值也要迁移。当然,这一过程,在目前实现中,还处于半自动状态,需要人工介入。 Redis集群,要保证16384个槽对应的node都正常工作,如果某个node发生故障,那它负责的slots也就失效

Redis Sharding方案

安稳与你 提交于 2020-03-21 12:31:43
3 月,跳不动了?>>> Redis Sharding方案 什么是Redis分片 分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集。 分片为何有用 Redis 的分片承担着两个主要目标: 允许使用很多电脑的内存总和来支持更大的数据库。没有分片,你就被局限于单机能支持的内存容量。 允许伸缩计算能力到多核或多服务器,伸缩网络带宽到多服务器或多网络适配器。 分片基础 有很多不同的分片标准(criteria)。假想我们有 4 个 Redis 实例 R0,R1,R2,R3,还有很多表示用户的键,像 user:1,user:2,… 等等,我们能找到不同的方式来选择一个指定的键存储在哪个实例中。换句话说,有许多不同的办法来映射一个键到一个指定的 Redis 服务器。 最简单的执行分片的方式之一是范围分片(range partitioning),通过映射对象的范围到指定的 Redis 实例来完成分片。例如,我可以假设用户从 ID 0 到 ID 10000 进入实例 R0,用户从 ID 10001 到 ID 20000 进入实例 R1,等等。 这套办法行得通,并且事实上在实践中被采用,然而,这有一个缺点,就是需要一个映射范围到实例的表格。这张表需要管理,不同类型的对象都需要一个表,所以范围分片在 Redis 中常常并不可取

Ganglia 原理

谁都会走 提交于 2020-03-21 04:54:12
原理 Ganglia 项目是由加州大学发起的,现在已经成为一个应用非常广泛集群监控软件。可以监视和显示集群中的节点的各种状态信息,比如如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现。同时具有很好的扩展性,允许用户加入自己所要监控的状态信息。 2.1 ganglia工作原理 图 1 Ganglia整体结构图 Ganglia 包括如下几个程序,他们之间通过XDL(xml的压缩格式)或者XML格式传递监控数据,达到监控效果。集群内的节点,通过运行gmond收集发布节点状 态信息,然后gmetad周期性的轮询gmond收集到的信息,然后存入rrd数据库,通过web服务器可以对其进行查询展示。 Gmetad 这个程序负责周期性的到各个datasource收集各个cluster的数据,并更新到rrd数据库中。 可以把它理解为服务端。 Gmond 收集本机的监控数据,发送到其他机器上,收集其他机器的监控数据,gmond之间通过udp通信,传递文件格式为xdl。收集的数据供Gmetad读取,默认监听端口8649 ,监听到gmetad请求后发送xml格式的文件。可以把它理解为客户端。 web front-end 一个基于web的监控界面,通常和Gmetad安装在同一个节点上(还需确认是否可以不在一个节点上

Linux 部署 rabbitMQ集群

泄露秘密 提交于 2020-03-20 18:37:28
1. 部署Erlang 1.1 RabbitMQ依赖于Erlang,版本对应请查看 https://www.rabbitmq.com/which-erlang.html 1.2 下载安装Erlang # 添加epel扩展源 yum install epel-release # 先删除可能存在的erlang(非必须) yum list erlang yum remove erl* # 清空和更新安装源(非必须) yum clean yum update # 参考 https://github.com/rabbitmq/erlang-rpm -> Erlang 21.x -> o use Erlang 21.x on CentOS 6 # 配置安装源 vim /etc/yum.repos.d/rabbitmq-erlang.repo [rabbitmq-erlang] name=rabbitmq-erlang baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/6 gpgcheck=1 gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc repo_gpgcheck=0 enabled=0 # 安装 yum

写给大家看的“不负责任” K8s 入门文档

六眼飞鱼酱① 提交于 2020-03-20 12:35:24
作者 | 邓青琳(轻零) 阿里巴巴技术专家 导读 :本文转载自阿里巴巴技术专家邓青琳(轻零)在内部的分享,他从阿里云控制台团队转岗到 ECI 研发团队(Serverless Kubernetes 背后的实现基石),从零开始了解 K8s,并从业务发展的视角整理了 K8s 是如何出现的,又是如何工作的。 前言 2019 年下半年,我做了一次转岗,开始接触到 Kubernetes,虽然对 K8s 的认识还非常的不全面,但是非常想分享一下自己的一些收获,希望通过本文能够帮助大家对 K8s 有一个入门的了解。文中有不对的地方,还请各位老司机们帮助指点纠正。 其实介绍 K8s 的文章,网上一搜一大把,而且 Kubernetes 官方文档也写的非常友好,所以直接上来讲 K8s,我觉得我是远远不如网上的一些文章讲的好的。因此我想换一个角度,通过一个业务发展的故事角度,来讲 K8s 是怎么出现的,它又是如何运作的。 故事开始 随着中国老百姓生活水平的不断提高,家家户户都有了小汽车,小王预计 5 年后,汽车报废业务将会迅速发展,而且国家在 2019 年也出台了新政策 《报废机动车回收管理办法》 ,取消了汽车报废回收的“特种行业”属性,将开放市场化的竞争。 小王觉得这是一个创业的好机会,于是找了几个志同道合的小伙伴开始了创业,决定做一个叫“淘车网”的平台。 故事发展 淘车网一开始是一个 all in

Elasticsearch相关配置(二)

送分小仙女□ 提交于 2020-03-20 09:04:00
一、关于elasticsearch的基本概念 term   索引词,在elasticsearch中索引词(term)是一个能够被索引的精确值。foo,Foo Foo几个单词是不相同的索引词。索引词(term)是可以通过term查询进行准确的搜索。 text   文本是一段普通的非结构化文字,通常,文本会被分析称一个个的索引词,存储在elasticsearch的索引库中,为了让文本能够进行搜索,文本字段需要事先进行分析;当对文本中的关键词进行查询的时候,搜索引擎应该根据搜索条件搜索出原文本。 analysis   分析是将文本转换为索引词的过程,分析的结果依赖于分词器,比如: FOO BAR, Foo-Bar, foo bar这几个单词有可能会被分析成相同的索引词foo和bar,这些索引词存储在elasticsearch的索引库中。当用 FoO:bAR进行全文搜索的时候,搜索引擎根据匹配计算也能在索引库中搜索出之前的内容。这就是elasticsearch的搜索分析。 cluster   代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。 node  

写给大家看的“不负责任” K8s 入门文档

こ雲淡風輕ζ 提交于 2020-03-20 00:04:29
3 月,跳不动了?>>> 作者 | 邓青琳(轻零) 阿里巴巴技术专家 导读 :本文转载自阿里巴巴技术专家邓青琳(轻零)在内部的分享,他从阿里云控制台团队转岗到 ECI 研发团队(Serverless Kubernetes 背后的实现基石),从零开始了解 K8s,并从业务发展的视角整理了 K8s 是如何出现的,又是如何工作的。 前言 2019 年下半年,我做了一次转岗,开始接触到 Kubernetes,虽然对 K8s 的认识还非常的不全面,但是非常想分享一下自己的一些收获,希望通过本文能够帮助大家对 K8s 有一个入门的了解。文中有不对的地方,还请各位老司机们帮助指点纠正。 其实介绍 K8s 的文章,网上一搜一大把,而且 Kubernetes 官方文档也写的非常友好,所以直接上来讲 K8s,我觉得我是远远不如网上的一些文章讲的好的。因此我想换一个角度,通过一个业务发展的故事角度,来讲 K8s 是怎么出现的,它又是如何运作的。 故事开始 随着中国老百姓生活水平的不断提高,家家户户都有了小汽车,小王预计 5 年后,汽车报废业务将会迅速发展,而且国家在 2019 年也出台了新政策 《报废机动车回收管理办法》 ,取消了汽车报废回收的“特种行业”属性,将开放市场化的竞争。 小王觉得这是一个创业的好机会,于是找了几个志同道合的小伙伴开始了创业,决定做一个叫“淘车网”的平台。 故事发展

docker 集群 笔记

孤人 提交于 2020-03-19 12:46:30
docker 集群 Docker 容器 移除所有的容器和镜像(大扫除) 用一行命令大扫除: docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a) 注:shell 中的 $() 和 `` 类似,会先执行这里面的内容,上面的脚本会出现如下 docker kill "pids" ; docker kill 在 docker 中用于停止容器,docker rm 删除容器, docker rmi 删除镜像 当没有运行的容器或者是根本没有容器的时候,这只会提示一个警告信息。当你想尝试的时候,这就是个非常好的单行命令。如果你仅仅想删除所有的容器,你可以运行如下命令: docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) 退出时删除容器 如果你仅仅想在一个容器中快速的运行一个命令,然后退出,并且不用担心容器状态,把 --rm 参数加入 run 命令后面,这将结束很多你保存了的容器,并且清理它们。 示例:docker run --rm -i -t busybox /bin/bash Docker Machine 统一 docker 虚拟机 环境 按照工具 在 docker1.12 后 按照docker

ngin负载均衡集群(一)

百般思念 提交于 2020-03-18 23:54:05
一、nginx负载均衡集群介绍: 1.反向代理与负载均衡概念简介 严格地说, nginx仅仅是作为 Nginx Proxy反向代理使用的,因为这个反向代理功能表现的效果是负载均衡集群的效果,所以本文称之为nginx负载均衡。那么,反向代理和负载均衡有什么区别呢? 普通负载均衡软件,例如大名鼎鼎的LVS,其实现的功能只是对请求数据包的转发(也可能会改写数据包)、传递,其中DR模式明显的特征是从负载均衡下面的节点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真实用户,而反向代理就不样了,反向代理接收访问用户的请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用户,在节点服务器看来,访问的节点服务器的客户端用户就是反向代理服务器了,而非真实的网站访问用户。句话,LVS等的负载均衡是转发用户请求的数据包,而 nginx反向代理是接收用户的请求然后重新发起请求去请求其后面的节点。 2、实现负载均衡的组件说明: 实现负载均衡的组件主要有两个: ngx_http_proxy_module proxy代理模块,用于把请求后抛给服务器节点或upstream服务器池 ngx_http_upstream_module 负载均衡模块,可以实现网站的负载均衡功能及结点的健康检查 二、环境准备: 系统:CentOS Linux release 7.5.1804 (Core)