节点服务器

Springboot 1.5.x 集成基于Centos7的RabbitMQ集群安装及配置

六月ゝ 毕业季﹏ 提交于 2020-01-25 01:19:27
RabbitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。 RabbitMQ是一套开源(MPL)的消息队列服务软件,是由LShift提供的一个Advanced Message Queuing Protocol(AMQP)的开源实现,由以高性能、健壮以及可伸缩性出名的Erlang写成。 选择RabbitMQ 市面上有很多MQ可以选择,如:ActiveMQ、ZeroMQ、Apache Qpid及RocketMQ,为什么要选择RabbitMQ呢? 1. 除了Qpid,RabbitMQ是唯一一个实现了AMQP标准的消息服务器; 2. 可靠性,RabbitMQ的持久化支持,保证了消息的稳定性; 3. 高并发,RabbitMQ使用了Erlang开发语言,Erlang是为电话交换机开发的语言,天生自带高并发光环和高可用特性; 4. 集群部署简单,正是应为Erlang使得RabbitMQ集群部署变的超级简单; 5. 社区活跃度高,从网上资料来看,RabbitMQ也是首选 工作机制 1. 消息模型 生产者、消费者和代理 生产者(producer):消息的创建者,负责创建和推送数据到消息服务器; 消费者(consumer):消息的接收方,用于处理数据和确认消息; 代理(proxy):就是RabbitMQ本身,用于扮演“快递”的角色

主流分布式文件系统对比:区块链分布式技术引发云存储革命?HDFS,GFS,GPFS,FusionStorage,IPFS

依然范特西╮ 提交于 2020-01-24 05:57:32
https://blog.csdn.net/weixin_45494421/article/details/98760782 概要:常见的分布式文件系统有GFS、HDFS等,也有新兴的基于区块链IPFS/Filecoin等。有的广泛应用,有的开始挑战,有的是闭源,有的开源。在不同的领域和不同的计算机发展阶段,它们都对数据存储起到了各自的作用。那么这些分布式文件系统都有什么优缺点?我们应该怎样选择适合自己的解决方案? 一、HDFS:被雅虎开源的分布式文件系统 Hadoop分布式文件系统(HDFS),是一个分布式、可扩展的Hadoop框架,具有高容错、低成本部署优势。HDFS提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。HDFS最初是作为Apache Nutch网络搜索引擎项目的基础设施而构建的,现在是Apache Hadoop子项目。 HDFS如何工作?HDFS支持计算节点之间的数据快速传输,文件系统多次复制或复制每个数据,并将副本分发到各个节点,将至少一个副本放在与其他服务器机架不同的服务器上。因此,崩溃的节点上的数据可以在群集中的其他位置找到。这可确保在恢复数据时继续处理。这使得HDFS高容错性。简单来说,HDFS将文件拆分为块,并将它们分布在集群中的节点上。 架构分析:HDFS采用的是主/从架构(master/slave )

LVS负载均衡群集—NAT模式实战操作

本秂侑毒 提交于 2020-01-24 04:40:36
群集应用概述 群集的含义 Cluster,集群、群集 由多台主机构成,但对外只表现为一个整体 在互联网应用中,随着站点对硬件性能、影响速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心 解决方法 使用价格昂贵的小型机、大型机 使用普通服务器构建服务群集 群集分类 根据群集所针对的目标差异,可分为三种类型 负载均衡群集 高可用群集 高性能运算群集 负载均衡群集(Load Balance Cluster) 以提高应用系统的影响能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能 LB的负载分配依赖于主节点的分流算法 高可用群集(High Availability Cluster) 以提高应用系统的可靠性、尽可能地减少终端时间为目标,确保服务的连续性,达到高可用(HA)的容错效果 HA的工作方式包括双工和主从两种方式 高性能运算群集(High Performance Computer Cluster) 以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力 高性能运算群集的高性能依赖于“分布式运算”、“并行运算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力 负载均衡群集工作模式分析 负载均衡群集是目前企业用得最多的群集模型

zookeeper实现动态感知服务器上下线

浪子不回头ぞ 提交于 2020-01-23 09:35:27
  在实际的生产环境中我们一般都是集群环境部署的,同一个程序我们会部署在相同的几台服务器中,这时我们可以通过负载均衡服务器去调度,但是我们并不能很快速的获知哪台服务器挂掉了,这时我们就可以使用zookeeper来解决这个问题。 zookeeper的动态感知   动态感知其实利用的就是zookeeper的watch功能,我们先来看下常规的负载均衡服务器的结构 再来看下我们用zookeeper实现的结构 文字描述: 1.感知上线   当服务器启动的时候通过程序知道后会同时在zookeeper的servers节点下创建一个新的短暂有序节点来存储当前服务器的信息。客户端通过对servers节点的watch可以立马知道有新的服务器上线了 2.感知下线   当我们有个服务器下线后,对应的servers下的短暂有序节点会被删除,此时watch servers节点的客户端也能立马知道哪个服务器下线了,能够及时将访问列表中对应的服务器信息移除,从而实现及时感知服务器的变化。 代码实现 服务器端代码 package com.dpb.dynamic; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import

使用LVS实现负载均衡原理及安装配置详解

瘦欲@ 提交于 2020-01-21 08:48:23
使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。 一、负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到后端真正服务器(real server)上。为了避免不同机器上用户请求得到的数据不一样,需要用到了共享存储,这样保证所有用户请求的数据是一样的。 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网站是 http://www.linuxvirtualserver.org 现在 LVS 已经是 Linux 内核标准的一部分。使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS架构从逻辑上可分为调度层、Server集群层和共享存储。 二

OPC UA Specification 基础之二:术语定义

空扰寡人 提交于 2020-01-21 07:04:05
3.2.1 地址空间(AddressSpace)  OPC UA服务器(Server)向客户端(Client)展现的信息集合。 3.2.2聚合(Aggregate)  用于从原始数据中计算引申数据的函数。  原始数据可以使历史数据也可以是实时数据在缓冲区中的值。常见的聚合操作包括一段时间范围的平均值、最大最小值等。 3.2.3 报警(Alarm)  具有需要被注意的状态的事件(Event)类型 3.2.4 属性(Attributes)  节点(Node)的最基础的属性。  OPC UA定义了所有的属性Attributes,客户端(Clients)及服务器(Servers)不能定义属性Attributes。属性Attributes是地址空间(AddressSpace)中唯一被允许具有数据值的元素。 3.2.5 证书(Certificate)  证书是用于描述客户端(Clients)或服务器(Servers)能力的数字签名的数据结构。 3.2.6 客户端(Client)  是一种软件应用程序,可以依据本规格说明中定义的服务(Services)向OPC UA服务器(Servers)发送消息。 3.2.7 条件状况 (Condition)  是一个通用的定义,用于对事件(Events)这个概念做延伸说明。  一个条件状况(Condition)代表了系统或系统的某个组成元素的状况

分布式存储系统横向对比

折月煮酒 提交于 2020-01-21 03:26:34
(一)关键问题 数据分布 对于存储系统,最重要的问题就是数据分布,即什么样的数据放置在什么样的节点上。数据分布时需要考虑数据是否均衡、以后是否容易扩容等一系列问题。不同的数据分布方式也存在不同的优缺点,需要根据自身数据特点进行选择。 1)哈希分布 => 随机读取 取模直接哈希: 将不同哈希值的数据分布到不同的服务器上 关键: 找出一个散列特性很好的哈希函数 问题: 增加、减少服务器时的大量数据迁移 解决: 1)将<哈希值,服务器>元数据存储在元数据服务器中;2)一致性哈希 一致性哈希: 给系统每个节点分配一个随机token,这些token构成一个hash环。执行数据存放操作时,先计算key的hash值,然后存放到顺时针方向第一个大于或者等于该hash值的token所在节点。 关键: 哈希值变成了一个范围,每个物理节点上存储的数据是哈希值处于前一段范围的数据。 优点: 节点增加/删除时只会影响到在hash环中相邻的节点,而对其他节点没影响。 维护每台机器在哈希环中的位置方式:1) 记录它前一个&后一个节点的位置信息,每次查找可能遍历整个哈希环所有服务器;2) O(logN)位置信息,查找的时间复杂度为O(logN);3) 每台服务器维护整个集群中所有服务器的位置信息,查找服务器的时间复杂度为O(1) 虚拟节点: 将哈希取模的模数取得很大,就会得到更多的哈希值,这个哈希值成为逻辑节点

redis哨兵(docker-compoer)

早过忘川 提交于 2020-01-20 20:29:38
在介绍redis哨兵之前,先来建立一下模拟哨兵需要搭建的环境(此方法用于快速生成多个容器并统一管理,如不怕麻烦可跳过) 。通过之前docker的文章,我们知道可以通过镜像生成容器,可以快速的部署环境,但是却只能单一的生成,每次都需要通过docker run命令来运行,这对于部署多个redis是很不方便的,那么我们可以通过docker-compose 来解决这个问题。 docker-compose 安装 运行命令 (提前设置好对应的版本): curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose- uname -s - uname -m > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose 这样 docker compose 就安装完成了。我们在安装docker镜像用到的Dockerfile可以填写我们需要的配置, docker compose 同样也有对应的配置文件,docker-composer.yml或docker-composer.yaml文件。 下面我们来简单介绍一下该文件的几个比较重要的配置项(下面是主节点的配置部分): version : “3.6” :

zk干货

夙愿已清 提交于 2020-01-20 16:46:50
zk是干什么的????? 分布式服务架构,解决统一命名,状态同步,集群管理,分布式应用配置项管理 为了减轻分布式应用程序所承担的协调任务,比如hadoop中多个NameNode节点,怎么管理与节点间信息同步,Hbase中master与slaver之间状态同步。 怎么干的??? 既然是为了减轻协调任务,产生了角色,有老大leader,跟随的follower,观察的observer leader,负责投票的发起和决议,更新系统参数状态。 follower,参与系统投票,接受返回客户端的请求 observer,接收写请求,转发给leader,不参与投票 为什么要选举????? 心跳机制:Leader与Follower利用PING来感知对方的是否存活,当Leader无法相应PING时,将重新发起Leader选举。即Leader over了。 怎么样才能成为Leader???? 成为Leader的必要条件: Leader要具有最高的zxid;当集群的规模是n时,集群中大多数的机器(至少n/2+1)得到响应并follow选出的Leader。 服务器的选举状态,分为looking,leading,following和observer looking:寻找leader状态,处于该状态需要进入选举流程 leading:leader状态,表明当前服务角色为leader following:跟随者状态

运维之道 | Redis 哨兵(Sentinel)深入剖析 及 Sentinel 搭建部署(高可用)

泪湿孤枕 提交于 2020-01-19 03:51:19
运维之道 | Redis 哨兵(Sentinel)深入剖析 及 Sentinel 搭建部署(高可用) 前言 Redis高可用概述 在 Web 服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服(99.9%、99.99%、99.999% 等等)。在 Redis 层面,高可用的含义要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术 等),还需要考虑数据容量扩展、数据安全 等等。 在 Redis 中,实现 高可用的技术 主要包括 持久化 、 复制 、 哨兵 和 集群 ,下面简单说明它们的作用,以及解决了什么样的问题: 持久化 :持久化是最简单的高可用方法。它的主要作用是 数据备份 ,即将数据存储在 硬盘,保证数据不会因进程退出而丢失。 主从复制 :复制是高可用 Redis 的基础,哨兵和集群都是在复制基础上实现高可用的。 复制主要实现了数据的多机备份以及对于读操作的负载均衡和简单的故障恢复 。缺陷是故障恢复无法自动化、写操作无法负载均衡、存储能力受到单机的限制。 哨兵 :在复制的基础上, 哨兵实现了自动化的故障恢复 。缺陷是写操作无法负载均衡,存储能力受到单机的限制。 集群 :通过集群,Redis 解决了写操作无法负载均衡以及存储能力受到单机限制的问题, 实现了较为完善的高可用 方案。 主从切换技术的方法是 :当主服务器宕机后