集群服务器

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

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

高可用集群介绍

[亡魂溺海] 提交于 2020-03-13 05:47:47
158人阅读 一,高可用集群概念 1,什么是高可用性? “高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性; 主要是避免软件、硬件、人为造成的故障对业务的影响降低到最小程度,以保证服务不间断地运行; 2,高可用性知识点 (1)计算机的高可用性 计算机系统的可用性用平均无故障时间(MTTF)来度量,即计算机系统平均能够正常运行多长时间,才发生一次故障。系统的可用性越高,平均无故障时间越长。 可维护性用平均维修时间(MTTR)来度量,即系统发生故障后维修和重新恢复正常运行平均花费的时间。系统的可维护性越好,平均维修时间越短。 计算机系统的可用性定义为:MTTF/(MTTF+MTTR) * 100%。由此可见,计算机系统的可用性定义为系统保持正常运行时间的百分比。 描述 可用性级别 年度停机时间 基本可用性 99% 87.6小时 较高可用性 99.9% 8.8小时 具有故障自动恢复能力的可用性 99.99% 53分钟 极高可用性 99.999% 5分钟 (2)负载均衡服务器的高可用性 为了屏蔽负载均衡服务器的失效,需要建立一个备份机。主服务器和备份机上都运行High Availability监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时

集群

送分小仙女□ 提交于 2020-03-12 19:56:19
Linux集群 使用多台服务器搭建成一个集群来运行应用程序,不仅可以避免单点故障,还能提升服务器的承载能力 集群从功能实现上分为两种:高可用集群和负载均衡集群 高可用集群,当一台服务器宕机不能提供服务时,还有另外的服务器顶替 负载均衡集群,把用户的请求分摊到多台服务器上 搭建高可用集群 高可用集群,即“HA集群”,也称作“双机热备” 常见实现高可用的开源软件有heartbeat和keepalived keepalived工作原理 VRRP协议,是实现路由高可用的一种通信协议,在这个协议里会将多台功能相同的路由器组成一个小组,这个小组里有一个master主机和n个backup备用机,工作时,master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,就会认为master宕机了。 keepalived就是采用VRRP协议实现的高可用。keepalived要有三个模块,分别是core、check和vrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析;check模块负责健康检查;vrrp模块用来实现VRRP协议 实现Wed高可用 VIP:虚拟ip,服务器靠这个ip对外提供服务,当master机器宕机时,VIP被分配到backup 安装服务 准备两台机器,一台master

超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

柔情痞子 提交于 2020-03-12 19:12:57
超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数 介绍galera cluster原理的文章已经有一大堆了,百度几篇看一看就能有相关了解,这里就不赘述了。本文主要侧重实操,因为跟着百度前几页的搭建教程或多或少都有坑,前后配置逻辑矛盾的也有。终于,经过几个通宵的bug修复,反复验证,力求以最简洁的代码,最少的操作量,最直白的逻辑来完成集群的搭建。因为操作过程中,网上对wsrep相关参数的介绍少之又少,所以最后特别写了完整版的参数说明,供搭建成功后,各种测试调试使用,对于这些参数有坑的地方,欢迎在底下留言,供大家参考,谢谢。 对于mysql的集群方案,我之前总结过,详情点击查看, 多图文,详细介绍mysql各个集群方案 一,需求了解 Galera Cluster需要至少三个节点的服务器硬件。 如果群集在单个交换机上运行,请使用三个节点。如果您的群集跨越多个交换机,请使用三个交换机。如果您的群集跨越网络,请使用三个网络。如果您的群集跨越数据中心,请使用三个数据中心。这样可以确保在网络中断的情况下,群集可以维护主组件。 1,硬体需求 对于服务器硬件,每个节点至少需要以下组件: 1 GHz单核CPU; 512 MB RAM; 100 Mbps网络连接; 注意:Galera Cluster可能会由于内存不足而在有限的硬件上运行时偶尔崩溃。为避免这种情况

Hadoop高可用集群

故事扮演 提交于 2020-03-12 07:51:16
1.简介 若HDFS集群中只配置了一个NameNode,那么当该NameNode所在的节点宕机,则整个HDFS就不能进行文件的上传和下载。 若YARN集群中只配置了一个ResourceManager,那么当该ResourceManager所在的节点宕机,则整个YARN就不能进行任务的计算。 * Hadoop依赖Zookeeper进行各个模块的HA配置,其中状态为Active的节点对外提供服务,而状态为StandBy的节点则只负责数据的同步,在必要时提供快速故障转移。 Hadoop各个模块剖析: https://www.cnblogs.com/funyoung/p/9889719.html Hadoop集群管理: https://www.cnblogs.com/funyoung/p/9920828.html 2.HDFS HA集群 2.1 模型 当有两个NameNode时,提供哪个NameNode地址给客户端? 1.Hadoop提供了NameService进程,其是NameNode的代理,维护NameNode列表并存储NameNode的状态,客户端直接访问的是NameService,NameService会将请求转发给当前状态为Active的NameNode。 2.当启动HDFS时,DataNode将同时向两个NameNode进行注册。

从 ELK 到 EFK 的演进

淺唱寂寞╮ 提交于 2020-03-12 02:02:45
背景 作为中国最大的在线教育站点,目前沪江日志服务的用户包含网校,交易,金融,CCTalk 等多个部门的多个产品的日志搜索分析业务,每日产生的各类日志有好十几种,每天处理约10亿条(1TB)日志,热数据保留最近7天数据,冷数据永久保存。 为什么做日志系统 首先,什么是日志? 日志就是程序产生的,遵循一定格式(通常包含时间戳)的文本数据 通常日志由服务器生成,输出到不同的文件中,一般会有系统日志、 应用日志、安全日志。这些日志分散地存储在不同的机器上。 通常当系统发生故障时,工程师需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。在没有日志系统的情况下,首先需要定位处理请求的服务器,如果这台服务器部署了多个实例,则需要去每个应用实例的日志目录下去找日志文件。每个应用实例还会设置日志滚动策略(如:每天生成一个文件),还有日志压缩归档策略等。 这样一系列流程下来,对于我们排查故障以及及时找到故障原因,造成了比较大的麻烦。因此,如果我们能把这些日志集中管理,并提供集中检索功能,不仅可以提高诊断的效率,同时对系统情况有个全面的理解,避免事后救火的被动。 我认为,日志数据在以下几方面具有非常重要的作用: 数据查找 :通过检索日志信息,定位相应的 bug ,找出解决方案 服务诊断 :通过对日志信息进行统计、分析

搭建mysql NDB集群

别来无恙 提交于 2020-03-11 18:03:33
NDB群集安装 介绍 https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-basics.html NDBCLUSTER (也称为 NDB )是一种内存存储引擎,提供高可用性和数据持久性功能。 的 NDBCLUSTER 存储引擎可以与一系列故障切换和负载平衡选项进行配置,但最简单的是开始在集群级别的存储引擎。 NDB Cluster的 NDB 存储引擎包含一整套数据,仅依赖于群集本身内的其他数据。 NDB群集 的 “ 群集 ” 部分的配置独立于MySQL服务器。 在NDB群集中,群集的每个部分都被视为一个 节点 。 共有三种类型的群集节点,并且在最小的NDB群集配置中,将至少有三个节点,这些类型之一: 管理节点 :这种类型的节点的作用是管理NDB群集中的其他节点,执行诸如提供配置数据,启动和停止节点以及运行备份之类的功能。 由于此节点类型管理其他节点的配置,因此应首先启动此类型的节点,然后再启动任何其他节点。 使用命令 ndb_mgmd 启动一个MGM节点 。 数据节点 :这种类型的节点存储集群数据。 NDB群集表通常完全存储在内存中,而不是磁盘上(这就是为什么我们将NDB群集称为 内存 数据库)。 但是,某些NDB群集数据可以存储在磁盘上。 SQL节点 :这是访问集群数据的节点。 对于NDB群集,SQL节点是使用

【大数据day09】—— Hadoop集群安装和配置(appache版本hadoop重新编译,Hadoop安装,配置三台虚拟机集群环境)

扶醉桌前 提交于 2020-03-11 10:12:29
Hadoop集群安装和配置 1、 Hadoop的介绍 2、hadoop的历史版本和发行版公司 2.1 Hadoop历史版本 2.2 Hadoop三大发行版公司 3、hadoop的架构模型 1.x的版本架构模型介绍 2.x的版本架构模型介绍 四种 4、appache版本hadoop重新编译 4.1为什么要编译hadoop 4.2编译环境的准备 4.2.1:准备linux环境 4.2.2:虚拟机联网,关闭防火墙,关闭selinux 4.2.3:安装jdk1.7 4.2.4:安装maven 4.2.5:安装findbugs 4.2.6:在线安装一些依赖包 4.2.7:安装protobuf 4.2.8、安装snappy 4.2.9:编译hadoop源码 5、Hadoop安装 第一步:上传apache hadoop包并解压 第二步:修改配置文件 修改core-site.xml 修改hdfs-site.xml 修改hadoop-env.sh 修改mapred-site.xml 修改yarn-site.xml 修改mapred-env.sh 修改slaves 第三步:配置hadoop的环境变量 第四步:启动集群 第五步:jps命令查看三台虚拟机的服务阶段状态 第四步:三个端口查看界面 安装包资料: 链接: https://pan.baidu.com/s

zookeeper安装与集群搭建

限于喜欢 提交于 2020-03-11 07:34:08
1.上传zookeeper压缩包到linux系统中 2.解压到/app目录 tar -zxvf zookeeper-3.4.5.tar.gz -C app 3.到conf目录下,修改zoo_sample.cfg为zoo.cfg 4.编辑zoo.cfg 4.1 修改本地存储路径 4.2 添加集群机器,端口 5.在新建的data目录中新建myid,内容为1,这个与刚才编辑的server.1向对应 6.把已经安装好的zookeeper复制到node002,node003中,注意修改data下的myid 7.在bin下启动zookeeper ./zkServer.sh start 为什么zkServer.sh start不可以?只能加上./ 8.查看zookeeper工作状态 ./zkServer.sh status 因为我们配置3台,只启动1台,少于集群配置的一半,zookeeper就不能工作 9.遇到此时遇到几个问题 1.在把zookeeper文件赋复制到另外两个服务器后,在启动./zkServer.sh start 后,jps查看进程,发现提示command not found 解决办法:从新安装jdk,并且重新配置环境变量 2.Zookeeper启动显示成功,zkServer.sh status报错 解决办法:网上查阅资料,有存在相同问题的朋友已解决,此处引入其解决办如下:

Nginx+Tomcat搭建集群

雨燕双飞 提交于 2020-03-11 07:16:49
Nginx+Tomcat搭建集群 重点:我利用nginx命令启动停止和重新加载配置文件发现有时不能及时加载我修改的nginx.conf.我去任务管理器结束nginx进程重启nginx就可以了;也有可能是开启多个nginx,有的nginx用的是老配置文件,全部结束nginx进程重启即可。 一、 工具   nginx-1.12.2   apache-tomcat-7.0.80 二、 目标   实现高性能负载均衡的Tomcat集群: 三、 步骤   1、首先在官网中下载所需版本: http://nginx.org/en/download.html ,要下载稳定版,下载完毕后,解压。  在此安装目录下打开命令窗口,输入start nginx开启nginx服务 2、然后下载并解压两个Tomcat,分别命名为apache-tomcat-7.0.80-1和apache-tomcat-7.0.80-2:     3、然后修改这两个Tomcat的启动端口,分别为8010和8011,下面以修改第一台Tomcat为例,打开Tomcat的conf目录下的server.xml:共需修改3处端口: 改动一 首先到安装目录(或者解压目录)下找到conf文件夹,在里面找到server.xml的文件,找到 < Connector port= "8080" protocol= "HTTP/1.1"