架构

收集各大互联网公司大数据平台架构

丶灬走出姿态 提交于 2019-12-06 11:35:27
收集各大互联网公司大数据平台架构 https://www.cnblogs.com/swordfall/p/11198015.html 分类: Hadoop undefined 1. 五种主流的大数据架构 1.1 传统大数据架构      之所以叫传统大数据架构,是因为其定位是为了解决传统BI的问题,简单来说,数据分析的业务没有发生任何变化,但是因为数据量、性能等问题导致系统无法正常使用,需要进行升级改造,那么此类架构便是为了解决这个问题。可以看到,其依然保留了ETL的动作,将数据经过ETL动作进入数据存储。    优点: 简单,易懂,对于BI系统来说,基本思想没有发生变化,变化的仅仅是技术选型,用大数据架构替换掉BI的组件。    缺点: 对于大数据来说,没有BI下如此完备的Cube架构,虽然目前有kylin,但是kylin的局限性非常明显,远远没有BI下的Cube的灵活度和稳定度,因此对业务支撑灵活度不够,所以对于存在大量报表,或者复杂的钻取的场景,需要太多的手工定制化,同时该架构依旧以批处理为主,缺乏实时的支撑。    适用场景: 数据分析需求依旧以BI场景为主,但是因为数据量、性能等问题无法满足日常使用。 1.2 流式架构      在传统大数据架构的基础上,流式架构非常激进,直接拔掉了批处理,数据全程以流的形式处理,所以在数据接入端没有了ETL,转而替换为数据通道

10.Redis 主从架构

会有一股神秘感。 提交于 2019-12-06 11:05:57
作者:中华石杉 Redis 主从架构 单机的 redis,能够承载的 QPS 大概就在上万到几万不等。对于缓存来说,一般都是用来支撑读高并发的。因此架构做成主从(master-slave)架构,一主多从,主负责写,并且将数据复制到其它的 slave 节点,从节点负责读。所有的读请求全部走从节点。这样也可以很轻松实现水平扩容,支撑读高并发。 redis replication -> 主从架构 -> 读写分离 -> 水平扩容支撑读高并发 redis replication 的核心机制 redis 采用异步方式复制数据到 slave 节点,不过 redis2.8 开始,slave node 会周期性地确认自己每次复制的数据量; 一个 master node 是可以配置多个 slave node 的; slave node 也可以连接其他的 slave node; slave node 做复制的时候,不会 block master node 的正常工作; slave node 在做复制的时候,也不会 block 对自己的查询操作,它会用旧的数据集来提供服务;但是复制完成的时候,需要删除旧数据集,加载新数据集,这个时候就会暂停对外服务了; slave node 主要用来进行横向扩容,做读写分离,扩容的 slave node 可以提高读的吞吐量。 注意,如果采用了主从架构,那么建议必须开启

SpringBoot 及其 基本原理(一)

半腔热情 提交于 2019-12-06 10:53:59
前言: 分布式架构及微服务理念 1.SOA理念(思想) SOA :即 Service Oriented Architecture,面向服务架构 主张: 把项目中的各个模块从单一架构中拆分出来,封装成一个一个可以远程调用的服务,从而实现分布式架构。 开发具体的每一个服务时,使用一个interface定义这个服务的功能,这就是我们常说的暴露接口。 当我们实现了interface,将接口暴露到了网络上,可以进行远程调用了,就可以说这个服务开发完成了,这就是我们常说的“写接口”。 SOA精髓: 通过提供服务和对服务的调用实现分布式架构。 项目 -----> 模块 -------> 代码 2. micro service 微服务理念 微服务主张服务的“微小化”,将各个模块服务中重复的功能抽取出来封装为微服务,用微服务组装称为各个功能模块。功能模块再组成项目。 项目 -----> 模块 -----> 微服务 -----> 代码 3.关于 SpringCloud 和 SpringBoot 的关系 ​ ​ ​ 这是对微服务理念的一整套具体实现。 SpringBoot在微观上开发具体的一个一个微服务。 SpringCloud在宏观上统一管理、协调各个微服务。为微服务提供各个服务的注册中心、网关、配置中心、负载均衡、熔断机制、服务降级、服务监控、服务细节屏蔽等等。 4.SpringCloud 和

创业互联网公司架构呓语

最后都变了- 提交于 2019-12-06 10:15:35
写于2018-02-01 互联网公司从创业、各轮融资、壮大发展、成功上市,各阶段适用于不同的技术架构,过早采用过于激进的架构可能会出现人力、成本、制度的不匹配,而采用过时的技术则会严重的掣肘业务的发展。好的架构是不断进化的,不是一开始就设计好的放之四海皆准的通用架构,但掌握其中有一些通用的原则,可以让我们少走很多弯路。 在创业初始阶段,通常你只有几号人,还没有做出一个产品投放市场,甚至你还不知道市场上反应如何,产品有无风险,这时你需要的是尽快做出第一版产品,怎么简单怎么来。你可以先不急着前后端分离,不需要专职的运维人员,如果你需要移动端,还需要找Android和IOS开发。完成这项任务,你最低需要一个Java开发(HTML + Java + 运维),一个移动端开发人员、一个美工(前期可以兼职),为什么你需要找Java开发,而不是.NET呢?第1是Java的跨平台(不会与特定操作系统绑定),第2是目前来说Java开发人员市场占有量最高,意味着你后面更容易招到人,第3是Java体系有很多开源的技术,在企业后期发展的不同阶段都或多或少能找到适用的开源产品,这能节省研发投入、缩短时间,提高产品服务质量。这个阶段,做为技术负责人的你,抛开业务层面的事情,技术上你需要关注: 版本管理:Git,分支管理?产品都还没做出来,直接在主干上堆代码吧 项目管理:Tower,跟移动端微信结合起来,简直利器

微服务和分布式的区别

左心房为你撑大大i 提交于 2019-12-06 10:15:22
1.分布式      将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过 接口 进行数据交互。区别分布式的方式是根据不同机器不同业务。   上面:service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。   注:分布式需要做好事务管理。   2.分布式是否属于微服务?   答案是肯定的。微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。   3.微服务架构   微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。     分布式和微服的架构很相似,只是部署的方式不一样而已。   分布式服务架构与微服务架构概念的区别与联系是怎样的   分布式:分散压力。   微服务:分散能力。   当下理解   分布式:   不同模块部署在不同服务器上;   作用:分布式解决网站高并发带来问题;   集群:相同的服务;   多台服务器部署相同应用构成一个集群;   作用:通过负载均衡设备共同对外提供服务;   SOA[组装服务/ESB企业服务总线];   业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力;   通过服务的组合和编排来实现上层的业务流程;   作用:简化维护

大型分布式网站架构技术总结

可紊 提交于 2019-12-06 06:07:15
#0 系列目录# 大型分布式网站架构 大型分布式网站架构技术总结 本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考价值。 #1 大型网站的特点# 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为中心 免费服务,付费体验 #2 大型网站架构目标# 高性能:提供快速的访问体验。 高可用:网站服务一直可以正常访问。 可伸缩:通过硬件增加/减少,提高/降低处理能力。 安全性:提供网站安全访问和数据加密,安全存储等策略。 扩展性:方便的通过新增/移除方式,增加/减少新的功能/模块。 敏捷性:随需应变,快速响应; #3 大型网站架构模式# 分层:一般可分为,应用层,服务层,数据层,管理层,分析层; 分割:一般按照业务/模块/功能特点进行划分,比如应用层分为首页,用户中心。 分布式:将应用分开部署(比如多台物理机),通过远程调用协同工作。 集群:一个应用/模块/功能部署多份(如:多台物理机),通过负载均衡共同提供对外访问。 缓存:将数据放在距离应用或用户最近的位置,加快访问速度。 异步:将同步的操作异步化。客户端发出请求,不等待服务端响应

理解RESTful架构

≯℡__Kan透↙ 提交于 2019-12-06 05:42:52
越来越多的人开始意识到, 网站即软件 ,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合, 现在我们必须考虑,如何开发在互联网环境中使用的软件。 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。 一、起源 REST这个词,是 Roy Thomas Fielding 在他2000年的 博士论文 中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。 他这样介绍论文的写作目的: "本文研究计算机科学两大前沿----软件和网络----的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化

mysql主从架构搭建

折月煮酒 提交于 2019-12-06 05:03:06
1.配置文件,开启二进制日志   vim /etc/my.cnf 在mysql下增加如下内容 1 server-id= 1 2 log-bin=mysql- bin 3 relay-log=mysql-relay 2.登录到本地mysql上,给从slave主机授权,同步日志的权限 1 mysql -uroot -p 2 3 4 grant replication slave on *.* to 'tom'@'%' identified by '123'; 5 flush privileges; #刷新权限 6 7 show master status; 8 9 stop slave; 10 change master to 11 master_host='ip', 12 master_user='tom', 13 master_password='123', 14 master_log_file='mysql-bin.000001', 15 master_log_pos=331; 16 17 start slave; 18 19 show slave status \G; # 查看slave状态 来源: https://www.cnblogs.com/security-guard/p/11963195.html