IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 互联网技术演进了解 -> 正文阅读

[大数据]互联网技术演进了解

互联网业务千差万别,但由于它们具有“规模决定一切”的相同点,其发展路径也基本上是一致的。互联网业务发展一般分为几个时期:初创期、发展期、竞争期、成熟期。
不同时期的差别主要体现在两个方面:复杂性、用户规模

业务复杂性

互联网业务发展第一个主要方向就是业务越来越复杂。

初创期

互联网业务刚开始一般都是一个创新的业务点,这个业务点的重点不在于完善,而在于创新,只有创新才能吸引用户;而且因为其新的特点,其实一开始是不可能很完善的。只有随着越来越多的用户的使用,通过快速迭代试错、用户的反馈等手段,不断地在实践中去完善,才能继续创新。

初创期的业务对技术就一个要求:,但这个时候却又是创业团队最弱小的时期,可能就几个技术人员,所以这个时候十八般武艺都需要用上:能买就买,有开源的就用开源的。

发展期

当业务推出后经过市场验证如果是可行的,则吸引的用户就会越来越多,此时原来不完善的业务就进入了一个快速发展的时期。业务快速发展时期的主要目的是将原来不完善的业务逐渐完善,因此会有越来越多的新功能不断地加入到系统中。对于绝大部分技术团队来说,这个阶段技术的核心工作是快速地实现各种需求,只有这样才能满足业务发展的需要。

堆功能

业务进入快速发展期的初期,此时团队规模也不大,业务需求又很紧,最快实现业务需求的方式是继续在原有的系统里面不断地增加新的功能,重构、优化、架构等方面的工作即使想做,也会受制于人力和业务发展的压力而放在一边。

优化

随着功能越来越多,系统开始变得越来越复杂,后面继续堆功能会感到越来越吃力,速度越来越慢,如何解决这个问题,一般会分为两派:一派是优化派,一派是架构派。

  • 优化期

优化的核心思想是将现有的系统优化。例如,采用重构、分层、优化某个 MySQL 查询语句,将机械硬盘换成 SSD,将数据库从 MySQL 换成 Oracle,增加 Memcache 缓存等。优化派的优势是对系统改动较小,优化可以比较快速地实施;缺点就是可能过不了多久,系统又撑不住了。

  • 架构期

经过优化期后,如果业务能够继续发展,慢慢就会发现优化也顶不住了,毕竟再怎么优化,系统的能力总是有极限的。此时已经没有别的选择,只能进行架构调整,主要是将原来的大系统拆分为多个互相配合的小系统。例如,将购物系统拆分为登录认证子系统、订单系统、查询系统、分析系统等。架构派的优势是一次调整可以支撑比较长期的业务发展,缺点是动作较大、耗时较长,对业务的发展影响也比较大。

竞争期

当竞争对手加入后,大家互相学习和模仿,业务更加完善,也不断有新的业务创新出来,而且由于竞争的压力,对技术的要求是更上一层楼了。
新业务的创新结果是新的系统会更多,同时,原有的系统也会拆得越来越多。两者合力的一个典型后果就是系统数量在原来的基础上又增加了很多。架构拆分后带来的美好时光又开始慢慢消逝,技术工作又开始进入了慢的状态,这又是怎么回事呢?
原来系统数量越来越多,到了一个临界点后就产生了质变,即系统数量的量变带来了技术工作的质变。主要体现在下面几个方面:

  • 重复造轮子
    系统越来越多,各系统相似的工作越来越多。例如,每个系统都有存储,都要用缓存,都要用数据库。
  • 系统交互一团乱麻
    系统越来越多,各系统的交互关系变成了网状。

针对这个时期业务变化带来的问题,技术工作主要的解决手段有:

  • 平台化

目的在于解决“重复造轮子”的问题。

存储平台化:淘宝的 TFS、京东 JFS。

数据库平台化:百度的 DBProxy、淘宝 TDDL。

缓存平台化:Twitter 的 Twemproxy,豆瓣的 BeansDB、腾讯 TTC。

  • 服务化

目的在于解决系统交互的问题,常见的做法是通过消息队列来完成系统间的异步通知,通过服务框架来完成系统间的同步调用。

消息队列:淘宝的 Notify、MetaQ,开源的 Kafka、ActiveMQ 等。

服务框架:Facebook 的 thrift、当当网的 Dubbox、淘宝的 HSF 等。

成熟期

当企业熬过竞争期,成为了行业的领头羊,或者整个行业整体上已经处于比较成熟的阶段,市场地位已经比较牢固后,业务创新的机会已经不大,竞争压力也没有那么激烈,此时求快求新已经没有很大空间,业务上开始转向为求精:我们的响应时间是否比竞争对手快?我们的用户体验是否比竞争对手好?我们的成本是否比竞争对手低……

此时技术上其实也基本进入了成熟期,该拆的也拆了,该平台化的也平台化了,技术上能做的大动作其实也不多了,更多的是进行优化。这个时候的技术优化没有固定的套路,只能按照竞争的要求,找出自己的弱项,然后逐项优化。在逐项优化时,可以采取之前各个时期采用的手段。

用户规模

互联网业务的发展第二个主要方向就是用户量越来越大。互联网业务发展的几个阶段典型的差别就是用户量的差别,用户量随着业务的发展而越来越大。

用户量增大对技术的影响主要体现在两个方面:性能要求越来越高、可用性要求越来越高。

性能

用户量增大给技术带来的第一个挑战就是性能要求越来越高。

以互联网企业最常用的 MySQL 为例,再简单的查询,再高的硬件配置,单台 MySQL 机器支撑的 TPS 和 QPS 最高也就是万级,低的可能是几千,高的也不过几万。当用户量增长后,必然要考虑使用多台 MySQL,从一台 MySQL 到多台 MySQL 不是简单的数量的增加,而是本质上的改变,即原来集中式的存储变为了分布式的存储,分布式 MySQL 要考虑分库分表、读写分离、复制、同步等很多问题。

可用性

用户量增大对技术带来的第二个挑战就是可用性要求越来越高。

当你有 1 万个用户的时候,宕机 1 小时可能也没有很大的影响;但当你有了 100 万用户的时候,宕机 10 分钟,投诉电话估计就被打爆了,这些用户再到朋友圈抱怨一下你的系统有多烂,很可能你就不会再有机会发展下一个 100 万用户了。
除了口碑的影响,可用性对收入的影响也会随着用户量增大而增大。1 万用户宕机 1 小时,你可能才损失了几千元;100 万用户宕机 10 分钟,损失可能就是几十万元了。

量变到质变

通过前面的分析,我们可以看到互联网业务驱动技术发展的两大主要因素是复杂性和用户规模,而这两个因素的本质其实都是量变带来质变。

究竟用户规模发展到什么阶段才会由量变带来质变,虽然不同的业务有所差别,但基本上可以按照下面这个模型去衡量:

应对业务质变带来的技术压力,不同时期有不同的处理方式,但不管什么样的方式,其核心目标都是为了满足业务快的要求,当发现你的业务快不起来的时候,其实就是技术的水平已经跟不上业务发展的需要了,技术变革和发展的时候就到了。
更好的做法是在问题还没有真正暴露出来就能够根据趋势预测下一个转折点,提前做好技术上的准备。

--------来源《极客课程》? 学习摘要

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:08:12  更:2022-03-06 13:11:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:57:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码