分布式架构

(28)ElasticSearch分布式架构特点

与世无争的帅哥 提交于 2020-04-05 18:42:41
  1、分布式架构的透明隐藏特性   ElasticSearch是一个分布式架构系统,隐藏了复杂的处理机制。   分片机制:我们不用关系数据是按照什么机制分片的,最后放入到哪个分片中。   集群发现机制(cluster discovery):比如当前我们启动了一个es进程,当启动了第二个es进程时,这个进程作为一个node自动就发现了集群,并且加入了进去。   shard负载均衡:比如现在有10个shard,集群中有3个节点,es会均衡的进行分配,已保持每个节点均衡的负载请求。   2、扩容机制   垂直扩容:购置新的机器,替换已有的机器。   水平扩容:直接增加机器。   3、rebalance   增加或减少节点时会自动均衡   4、master节点   主节点的主要职责是和集群操作相关的内容,如创建或删除索引,跟踪哪些节点时集群的一部分,并决定哪些分片分配给相关的节点。稳定的主节点对集群的健康是非常重要的。   5、节点对等   每个节点都能接收请求,每个节点接收到请求后都能把该请求路由到有相关数据的其他节点上,接收原始请求的节点负责采集数据,并返回给客户端。 来源: https://www.cnblogs.com/javasl/p/12638337.html

浅谈分布式集群管理的原理,看看集群究竟是做什么的

◇◆丶佛笑我妖孽 提交于 2020-04-04 09:19:19
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是 分布式专题的第11篇 文章,我们一起来聊聊 分布式集群资源管理 。 在开始文章之前,我们先来问一个问题, 为什么是国际上是亚马逊,国内是阿里这两家公司云计算搞得最好呢 ?这两家公司之间有一个巨大的共同点,就是它们都是 电商公司 。电商公司的特点很明显,就是流量不是固定的,往往会受到大促、节日的影响。像是国内的双十一和美国的黑色星期五就是典型的大促。在大促的时候的流量会是平常的十倍甚至更多,这么大的流量必须要有更多的机器去应对。但问题是如果去买这么多机器,但是大促过了,流量下降,那么这些机器就又用不到了,显然就会造成浪费。 那怎么样才能 避免浪费 呢?就是搞一个大集群,把所有机器和计算资源管理起来,大促的时候就用来应对大促的流量,平时呢可以用来搞搞大数据运算或者是租给其他公司或个人,形成一定的经济收益,总是就是 不让这些机器闲着,以免浪费 。 本质上来说,亚马逊和阿里搞云计算、云服务器背后的核心驱动因素之一原因都是为了解决这个问题。 集群资源管理 集群资源管理是分布式非常普遍的应用场景,可以说是无论公司大小都必然有所接触。像是阿里云、亚马逊云说起来很高大上,但是底层也离不开这个。 这个问题的背景非常简单,无论 大小公司往往都不止一套系统 。但是公司的资源是有限的也是固定的,但是我们需要应用机器的场景却是灵活的

ML平台_小米深度学习平台的架构与实践

让人想犯罪 __ 提交于 2020-04-03 22:12:18
( 转载: http://www.36dsj.com/archives/85383 )机器学习与人工智能,相信大家已经耳熟能详,随着 大规模标记数据的积累 、 神经网络算法的成熟 以及 高性能通用GPU的推广 ,深度学习逐渐成为计算机专家以及大数据科学家的研究重点。近年来,无论是 图像的分类 、 识别和检测 ,还是 语音生成、自然语言处理 ,甚至是AI下围棋或者打游戏都基于深度学习有了很大的突破。而随着 TensorFlow、Caffe 等开源框架的发展,深度学习的门槛变得越来越低,甚至初中生都可以轻易实现一个图像分类或者自动驾驶的神经网络模型,但目前最前沿的成果主要还是出自Google、微软等巨头企业。 Google不仅拥有优秀的人才储备和大数据资源,其得天独厚的基础架构也极大推动了AI业务的发展,得益于内部的 大规模集群调度系统Borg ,开发者可以快速申请大量GPU资源进行模型训练和上线模型服务,并且 通过资源共享和自动调度保证整体资源利用率也很高 。Google开源了TensorFlow深度学习框架,让开发者可以在本地轻易地组合MLP、CNN和RNN等模块实现复杂的神经网络模型, 但TensorFlow只是一个数值计算库,并不能解决资源隔离、任务调度等问题,将深度学习框架集成到基于云计算的基础架构上将是下一个关键任务 。 除了Google、微软,国内的百度也

Redis分布式集群搭建

此生再无相见时 提交于 2020-04-03 05:33:21
Redis 集群架构图 上图蓝色为 redis 集群的节点。 节点之间通过 ping 命令来测试连接是否正常,节点之间没有主区分,连接到任何一个节点进行操作时,都可能会转发到其他节点。 1、Redis 的容错机制 节点之间会定时的互相发送 ping 命令,测试节点的健康状态,当节点接受到 ping 命令后,会返回一个 pong 字符串。 投票机制:如果一个节点 A 给节点 B 发送 ping 没有得到 pong 返回,会通知其他节点再次给 B 发送 ping ,如果集群中有超过一半的节点收不 B 节点的 pong 。那么就认为 B 节点挂了。一般会为每个节点提供一个备份节点,如果挂掉会切换到备份节点。 2、Redis 集群存储原理 Redis 对于每个存放的 key 会进行 hash 操作,生成一个 [ 0-16384] 的 hash 值(先进行 crc 算法再对 16384 取余)。 集群的情况下,就是把 [0-16384] 的区间进行拆分,放到不同的 redis 中。 3、Redis 的持久化 Snapshotting :定时的将 Redis 内存中的数据保存到硬盘中 AOF :将所有的 command 操作保存到 aof 中, AOP 的同步频率很高,数据即使丢失,粒度也很小,但会在性能上造成影响。 二、Redis 集群准备工作 Redis 安装 源码下载 下载地址

五分钟学后端技术:一篇文章告诉你如何学习云计算!

五迷三道 提交于 2020-04-02 22:50:00
作者:刘超 转自【刘超的通俗云计算】 什么是云计算 早在十年前,市场上就出现了很多和云计算相关的岗位,当时正是云计算技术最火热的时代,不管是BAT还是华为等企业都开始布局云计算,于是OpenStack研发、容器研发、底层开发等相关岗位相应地也越来越多,虽然这几年大数据和AI的风头已经完全压过了云计算,但是这一门技术仍然在现如今的技术体系中占有很重要的位置。那么,到底什么是云计算,就是我们每一个要学习云计算技术的朋友要了解的事情了,根据百度百科的介绍 大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》 [1] 中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。 [2] 思维导图 云计算的发展史 物理机时代 云计算的整个过程,用一个词来讲就是“分久必合,合久必分”。 云计算其实主要解决了四个方面的内容:计算,网络,存储,应用。前三者是资源层面的,最后是应用层面的。 计算是CPU和内存,为啥

JavaWeb项目架构之Kafka分布式日志队列

与世无争的帅哥 提交于 2020-04-02 06:41:18
架构、分布式、日志队列,标题自己都看着唬人,其实就是一个日志收集的功能,只不过中间加了一个Kafka做消息队列罢了。 kafka介绍 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 特性 Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。 高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。 支持通过Kafka服务器和消费机集群来分区消息。 支持Hadoop并行数据加载。 主要功能 发布和订阅消息流,这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因 以容错的方式记录消息流,kafka以文件的方式来存储消息流 可以再消息发布的时候进行处理 使用场景 在系统或应用程序之间构建可靠的用于传输实时数据的管道,消息队列功能 构建实时的流数据处理程序来变换或处理数据流,数据处理功能 消息传输流程 相关术语介绍 Broker Kafka集群包含一个或多个服务器

互联网公司分布式集群架构图入门解析(简单通俗易懂,超详细)

旧巷老猫 提交于 2020-04-01 00:06:23
互联网公司分布式集群架构图入门解析(简单通俗易懂,超详细) 置顶 2018年11月08日 09:32:44 英俊帅比林 阅读数:1769 标签: 集群 分布式 互联网架构 java 更多 个人分类: JavaWeb 一、小型公司网络架构 狗子是某大学计算机专业本科应届毕业生,由于自己的技术不错,再加上互联网产业的巨大利润的驱使,狗子决定走上创业这条路,于是,狗子联合了同学二黑,鸡子,狗蛋等人花费了几个月的时间写出了一套网站,是关于足球资讯的pc端网站加上手机APP客户端。现在产品测试成功了,准备发布了,狗子想到了两个问题: 1.网站需要服务器 狗子之前所有的代码测试都是在本地服务器或者局域网上进行的,现在需要把产品发布到外网上,让所有的人都能访问,因此再用自己的电脑当服务器显然很不现实,于是,狗子去买了一台服务器,在上面装了jdk,tomcat,mysql等必备环境,把网站搭了起来,又经过了很多测试,运行毫无问题了,通过网站的ip可以访问并且实现功能了,而且app的后台也在服务器上测试成功了,目前公司的架构如图所示: 那么问题又来了: 2.网站需要域名 显然,如果让各地的用户需要记住你服务器的ip地址才能访问你的网站的话,那是会被用户拿刀追着砍的。因此,狗子需要一个便于记住的域名,以后在浏览器输入这个域名就能够访问这个网站,所以,狗子拿着申请下来的各种资质,找到了域名贩卖商

ML平台_微博深度学习平台架构和实践

断了今生、忘了曾经 提交于 2020-03-30 06:20:21
( 转载至: http://www.36dsj.com/archives/98977 ) 随着人工神经网络算法的成熟、GPU计算能力的提升,深度学习在众多领域都取得了重大突破。本文介绍了微博引入深度学习和搭建深度学习平台的经验,特别是 机器学习工作流、控制中心、深度学习模型训练集群、模型在线预测服务 等核心部分的设计、架构经验。微博深度学习平台极大地提升了深度学习开发效率和业务迭代速度,提高了深度学习模型效果和业务效果。 人工智能和深度学习 人工智能为机器赋予人的智能。随着计算机计算能力越来越强,在重复性劳动和数学计算方面很快超过了人类。然而,一些人类通过直觉可以很快解决的问题,例如自然语言理解、图像识别、语音识别等,长期以来很难通过计算机解决。随着人工神经网络算法的成熟、GPU计算能力的提升,深度学习在这些领域也取得了重大的突破,甚至已经超越人类。深度学习大大拓展了人工智能的领域范围。 深度学习框架 深度学习框架是进行深度学习的工具。 简单来说,一套深度学习框架就是一套积木,各个组件就是某个模型或算法; 开发者通过简单设计和组装就能获得自己的一套方案。深度学习框架的出现降低了深度学习门槛。开发者不需要编写复杂的神经网络代码,只需要根据自己的数据集,使用已有模型通过简单配置训练出参数。 当前主流的深度学习开源框架如下: TensorFlow: 的优势是社区最活跃

【Other】最近在研究的, Java/Springboot/RPC/JPA等

可紊 提交于 2020-03-29 07:13:10
Dubbo-大波-服务化框架 dubbo_百度搜索 Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错) - 好库文摘 User Guide-zh - Dubbo - Alibaba Open Sesame User Guide-zh - Dubbo - Alibaba Open Sesame 简单之美 | Dubbo架构设计详解 DUBBO Hprose RPC框架 java rpc_百度搜索 谁能用通俗的语言解释一下什么是 RPC 框架? - 知乎 Java程序员的现代RPC指南 - 西代零零发 - 博客频道 - CSDN.NET Hprose_百度搜索 Hprose Hprose Home Hprose首页、文档和下载 - 高性能跨语言 RPC - 开源中国社区 项目 - 码云 - 开源中国 hprose/hprose-doc: Hprose 文档汇总 hprose_百度百科 thrift 和 Hprose有什么区别吗?_百度知道 hprose具体用途案例是什么,看到这个东西但是想不出来具体应用实例和优势? - 知乎 Hprose使用经历 - xiang_quan123的专栏 - 博客频道 - CSDN.NET Hprose 2.0.0 for HTML5 发布,高性能跨语言RPC - 开源中国社区 为什么采用hprosehttpclient

详解Session分布式共享(.NET CORE版)

感情迁移 提交于 2020-03-29 00:56:06
一、前言&回顾 在上篇文章 Session分布式共享 = Session + Redis + Nginx 中,好多同学留言问了我好多问题,其中印象深刻的有:nginx挂了怎么办?采用Redis的Session方案与微软Session方案相比,有什么优势呢?Cookie也可以取代Session的,采用Redis的Session方案优势在哪里?Nginx的iphash方式到底是什么?MachineKey有啥用?Net Core怎样实现? 那会儿看到大家的提问,我的回答也只是从应用层面回答,基本上的回答可以总结为:“别人这么做了,解决了这个问题,我用这个方法也解决了这个问题,原理请看链接。”很惭愧的说,那时的我并没有完全理解他真正的优势在哪里,只是凭着直觉和经验知道这样做比较好,知道当一部分东西不可控时候,将其解耦、可视化、集群就可以让一个系统更加健壮,但没有一个理论支撑。经过最近一段时间的查阅资料和阅读书籍,对此有了深刻理解,本文将从网站架构的可用性角度对这种Session共享进行分析和讲解,并用.net core再次实现这种架构模式。(Session分布式共享的net core版,因为工作没有机会应用到生产环境,过往经验就更别提了,所以只是研究性的,请大家注意,但园子里早有大牛写出了相关文章,本文结束会将相关文章贴出) 二、网站可用性--Session管理