大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
架构图如下图所示。这张图基本涵盖了互联网技术公司的大部分技术点,不同公司只是在具体的技术实现上稍有差异,但不会跳出这个框架的范畴。
成都创新互联是一家专注于网站设计制作、成都网站制作与策划设计,康平网站建设哪家好?成都创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:康平等地区。康平做网站价格咨询:18982081108
SQL: 常用的有mysql,用于存储业务数据。互联网发展初期,各个业务一般都会独立运营mysql集群,但随着业务越来越多,mysql集群规模越来越大,那就有必要做成SQL平台。
NoSQL: 翻译为Not Only SQL,作为mysql的一种补充。Nosql一般本身就提供集群,且使用起来很方便,公司业务发展初期没有必要。一般Nosql集群的数量越来越多,那就有必要做成Nosql平台。
小文件: 互联网中有很多小文件,比如商品图片,Facebook的图片。这类小文件具有数据小、数量巨大、访问大的特点。如果每个业务都去考虑小文件存储的话,就会出现重复造轮子现象,那就有必要做成小文件平台了。
大文件: 互联网的大文件主要分为两类:一类是业务上的大数据,例如Youtube的视频、电影网站的电影;另一类是海量的日志数据,例如各种访问日志。实力雄厚的一些大公司会基于开源方案做成大数据平台。
开发框架: 比如常见的Spring框架。
Web服务器: 常见的有tomcat、jetty等。
容器: Docker可以极大降低运维成本,以及在实现动态扩容上非常方便。
配置中心: 故名思义,配置中心就是集中管理各个系统的配置。
服务中心: 解决跨系统依赖的配置和调度问题。比如有10个系统依赖A系统的x接口,此时A系统实现了一个y接口可以更好地支持x接口,那么如果直接更新10个系统依赖的配置将会很麻烦。
消息队列: 支持系统解耦。
负载均衡: 充当任务分配器的职责。
CDN: 可以对一些常用文件进行就近缓存,来提高访问速度。
多机房: 多机房的主要目的是备灾,当机房故障时可以快速地将业务切换到另外一个机房,这种切换操作允许一定时间的中断,比如10分钟,1个小时。
多中心: 多中心的要求就更高了,要求同时对外提供服务,且业务能够自动在多中心之间切换,故障后不需人工干预或者很少的人工干预就能自动恢复。
用户管理: 对各个系统的用户进行统一管理。
消息推送: 根据不同途径分为短信、邮件、站内信、App推送。
存储云: 实现是CDN+小文件存储。
图片云: 实现也是CDN+小文件存储。为何不与存储云统一一套系统呢?这是因为图片业务的复杂性导致的。图片涉及的业务会更多,包括裁剪、压缩、美化、审核、水印等。
业务千差万别,各个互联网业务面对的主要问题是复杂度越来越高。此时就要用到拆和合的技术。拆即将一个大系统拆分为多个子系统,降低复杂度。当子系统越来越多,有可能就需要采用合的技术。
测试平台的核心目的是提升测试效率。
运维平台的核心职责分为四大块:配置、部署、监控、应急。
数据平台的核心职责主要包含三部分:数据管理、数据分析和数据应用。
管理平台的核心职责就是权限管理。
为零售业服务的MongoDB软件。
MongoDB
MongoDB是NoSQL的一种,它是面向文档存储。为什么使用MongoDB,这要先从大数据说起,其中一个经典问题就是从互联网上抓数据。
从互联网上我们能抓取大量的数据,那么就面临着存储,更新,查找,错误处理等问题。概括而言就是:
how to save, update and find?
save储存
首先是如何保存从互联网上抓取的大量数据。
update更新
从互联网上抓取的数据,会包含很多属性,比如url, time, author, title, content。
在mongoDB中,documenet在disk上存的大小一般在32k以内。那么在设计padding的时候,选择凑成比它大的最小2的指数,比如documnet本身28k,那么要申请一个32k的空间(padding为4k)。这样数据块一直是2的指数。这样做的好处是,如果此数据块被移走了,留下一个完整的2的指数的空间(比如32k),那么新的数据块(比如10k的数据)可以直接填进去。disk被切成规则的长度,极大地减少碎片。而且,2的指数作为寻址空间时,移动指针可用位操作,更快速。MMAPv1(mongoDB使用的一种存储引擎)中空间分配使用的就是此策略。
find 查找
除了保存,更新,还有一个重要操作是find。
内存数据库,也叫缓存,可以存储访问频次很高的数据
redis是一个nosql(not only sql不仅仅只有sql)数据库,翻译成中文叫做非关系型型数据库
redis是一个nosql(not only sql不仅仅只有sql)数据库,翻译成中文叫做非关系型型数据库