当前位置: 首页 > news >正文

如何做好营销型网站建设东莞横沥地图

如何做好营销型网站建设,东莞横沥地图,无锡,做网站前端用什么软件目录 1.单机架构 2.应用数据分离架构 3.应用服务集群架构 4.读写分离 / 主从分离架构 5.引入缓存 —— 冷热分离架构 6.垂直分库 7.业务拆分 —— 微服务 8.容器化引入——容器编排架构 总结 1.单机架构 初期#xff0c;我们需要利用我们精干的技术团队#xff0c;快…目录 1.单机架构 2.应用数据分离架构 3.应用服务集群架构 4.读写分离 / 主从分离架构 5.引入缓存 —— 冷热分离架构 6.垂直分库 7.业务拆分 —— 微服务 8.容器化引入——容器编排架构 总结 1.单机架构 初期我们需要利用我们精干的技术团队快速将业务系统投入市场进行检验并且可以迅速响应变化要求。但好在前期用户访问量很少没有对我们的性能、安全等提出很高的要求而且系统架构简单无需专业的运维团队所以选择单机架构是合适的。 用户在浏览器中输入 www.baidu.com首先经过 DNS 服务将域名解析成 IP 地址10.102.41.1随后浏览器访问该 IP 对应的应用服务。 优点部署简单成本低 缺点存在严重的性能瓶颈 数据库和应用互相竞争资源 2.应用数据分离架构 随着系统的上线我们不出意外地获得了成功。市场上出现了一批忠实于我们的用户使得系统的访问量逐步上升逐渐逼近了硬件资源的极限同时团队也在此期间积累了对业务流程的一批经验。面对当前的性能压力我们需要未雨绸缪去进行系统重构、架构挑战以提升系统的承载能力。但由于预算仍然很紧张我们选择了将应用和数据分离的做法可以最小代价的提升系统的承载能力。 和之前架构的主要区别在于将数据库服务独立部署在同一个数据中心的其他服务器上应用服务通过网络访问数据。 优点成本相对可控性能相比单机有提升数据库单独隔离不会因为应用把数据库搞坏有一定的容灾能力 缺点硬件成本变高性能有瓶颈无法应对海量并发 3.应用服务集群架构 我们的系统受到了用户的欢迎并且出现了爆款单台应用服务器已经无法满足需求了。我们的单机应用服务器首先遇到了瓶颈摆在我们技术团队面前的有两种方案大家针对方案的优劣展示了热烈的讨论 • 垂直扩展 / 纵向扩展 Scale Up。通过购买性能更优、价格更高的应用服务器来应对更多的流量。这种方案的优势在于完全不需要对系统软件做任何的调整但劣势也很明显硬件性能和价格的增长关系是非线性的意味着选择性能 2 倍的硬件可能需要花费超过 4 倍的价格其次硬件性能提升是有明显上限的。 • 水平扩展 / 横向扩展 Scale Out。通过调整软件架构增加应用层硬件将用户流量分担到不同的应用层服务器上来提升系统的承载能力。这种方案的优势在于成本相对较低并且提升的上限空间也很大。但劣势是带给系统更多的复杂性需要技术团队有更丰富的经验。经过团队的学习、调研和讨论最终选择了水平扩展的方案来解决该问题但这需要引入一个新的组件 —— 负载均衡为了解决用户流量向哪台应用服务器分发的问题需要一个专门的系统组件做流量分发。实际中负载均衡不仅仅指的是工作在应用层的甚至可能是其他的网络层之中。同时流量调度算法也有很多种这里简单介绍几种较为常见的 • Round-Robin 轮询算法。即非常公平地将请求依次分给不同的应用服务器。 • Weight-Round-Robin 轮询算法。为不同的服务器比如性能不同赋予不同的权 重weight能者多劳。 • 一致哈希散列算法。通过计算用户的特征值比如 IP 地址得到哈希值根据哈希结果做分发优点是确保来自相同用户的请求总是被分给指定的服务器。也就是我们平时遇到的专项客户经理服务。 优点 应用服务高可用应用满足高可用不会一个服务出问题整个站点挂掉应用服务具备一定高性能如果不访问数据库应用相关处理通过扩展可以支持海量请求快速响应应用服务有一定扩展能力支持横向扩展 缺点数据库成为性能瓶颈无法应对数据库的海量查询数据库是单点没有高可用运维工作增多扩展后部署运维工作增多需要开发对应的工具应对快速部署硬件成本较高 4.读写分离 / 主从分离架构 前面提到我们把用户的请求通过负载均衡分发到不同的应用服务器之后可以并行处理了并且可以随着业务的增长可以动态扩张服务器的数量来缓解压力。但是现在的架构里无论扩展多少台服务器这些请求最终都会从数据库读写数据到一定程度之后数据的压力称为系统承载能力的瓶颈点。我们可以像扩展应用服务器一样扩展数据库服务器么答案是否定的因为数据库服务有其特殊性如果将数据分散到各台服务器之后数据的一致性将无法得到保障。所谓数据的一致性此处是指针对同一个系统无论何时何地我们都应该看到一个始终维持统一的数据。想象一下银行管理的账户金额如果收到一笔转账之后一份数据库的数据修改了但另外的数据库没有修改则用户得到的存款金额将是错误的。我们采用的解决办法是这样的保留一个主要的数据库作为写入数据库其他的数据库作为从属数据库。从库的所有数据全部来自主库的数据经过同步后从库可以维护着与主库一致的数据。然后为了分担数据库的压力我们可以将写数据请求全部交给主库处理但读请求分散到各个从库中。由于大部分的系统中读写请求都是不成比例的例如 100 次读 1 次写所以只要将读请求由各个从库分担之后数据库的压力就没有那么大了。当然这个过程不是无代价的主库到从库的数据同步其实是有时间成本的但这个问题我们暂时不做进一步探讨。 优点 数据库的读取性能提升读取被其他服务器分担写的性能间接提升数据库有从库数据库的可用性提高了 缺点热点数据的频繁读取导致数据库负载很高当同步挂掉或者同步延迟比较大时写库和读库的数据不一致服务器成本需要进一步增加 5.引入缓存 —— 冷热分离架构 随着访问量继续增加发现业务中一些数据的读取频率远大于其他数据的读取频率。我们把这部分数据称为热点数据与之相对应的是冷数据。针对热数据为了提升其读取的响应时间可以增加本地缓存并在外部增加分布式缓存缓存热门商品信息或热门商品的 html 页面等。通过缓存能把绝大多数请求在读写数据库前拦截掉大大降低数据库压力。其中涉及的技术包括使用 memcached 作为本地缓存使用Redis 作为分布式缓存还会涉及缓存一致性、缓存穿透/击穿、缓存雪崩、热点数据集中失效等问题。 优点大幅降低对数据库的访问请求性能提升非常明显 缺点带来了缓存一致性缓存击穿缓存失效缓存雪崩等问题服务器成本需要进一步增加业务体量支持变大后数据不断增加数据库单库太大单个表体量也太大数据查询会很慢导致数据库再度成为系统瓶颈  6.垂直分库 随着业务的数据量增大大量的数据存储在同一个库中已经显得有些力不从心了所以可以按照业务将数据分别存储。比如针对评论数据可按照商品 ID 进行 hash路由到对应的表中存储针对支付记录可按照小时创建表每个小时表继续拆分为小表使用用户 ID 或记录编号来路由数据。只要实时操作的表数据量足够小请求能够足够均匀的分发到多台服务器上的小表那数据库就能通过水平扩展的方式来提高性能。其中前面提到的 Mycat 也支持在大表拆分为小表情况下的访问控制。这种做法显著的增加了数据库运维的难度对 DBA 的要求较高。数据库设计到这种结构时已经可以称为分布式数据库但是这只是一个逻辑的数据库整体数据库里不同的组成部分是由不同的组件单独来实现的如分库分表的管理和请求分发由 Mycat 实现SQL 的解析由单机的数据库实现读写分离可能由网关和消息队列来实现查询结果的汇总可能由数据库接口层来实现等等这种架构其实是 MPP大规模并行处理架构的一类实现。 优点数据库吞吐量大幅提升不再是瓶颈 缺点跨库join、分布式事务等问题这些需要对应的去进行解决目前的mpp都有对应的解决方案数据库和缓存结合目前能够抗住海量的请求但是应用的代码整体耦合在一起修改一行代码需要整体重新发布  7.业务拆分 —— 微服务 随着人员增加业务发展我们将业务分给不同的开发团队去维护每个团队独立实现自己的微服务然后互相之间对数据的直接访问进行隔离可以利用 Gateway、消息总线等技术实现相互之间的调用关联。甚至可以把一些类似用户管理等业务提成公共服务。 优点 灵活性高服务独立测试、部署、升级、发布独立扩展每个服务可以各自进行扩展提高容错性一个服务问题并不会让整个系统瘫痪新技术的应用容易:支持多种编程语言 缺点运维复杂度高业务不断发展应用和服务都会不断变多应用和服务的部署变得复杂同一台服务器上部署多个服务还要解决运行环境冲突的问题此外对于如大促这类需要动态扩缩容的场景需要水平扩展服务的性能就需要在新增的服务上准备运行环境部署服务等运维将变得十分困难资源使用变多所有这些独立运行的微服务都需要需要占用内存和 CPU 处理故障困难一个请求跨多个服务调用需要查看不同服务的日志完成问题定位 8.容器化引入——容器编排架构 随着业务增长然后发现系统的资源利用率不高很多资源用来应对短时高并发平时又闲置需要动态扩缩容还没有办法直接下线服务器而且开发、测试、生产每套环境都要隔离的环境运维的工作量变的非常大。容器化技术的出现给这些问题的解决带来了新的思路。         目前最流行的容器化技术是 Docker最流行的容器管理服务是 Kubernetes(K8S)应用/服务可以打包为 Docker 镜像通过 K8S 来动态分发和部署镜像。Docker 镜像可理解为一个能运行你的应用/服务的最小的操作系统里面放着应用/服务的运行代码运行环境根据实际的需要设置好。把整个“操作系统”打包为一个镜像后就可以分发到需要部署相关服务的机器上直接启动 Docker 镜像就可以把服务起起来使服务的部署和运维变得简单。服务         通常会有生产和研发 k8s 集群一般不会公用而研发集群通过命名空间来完成应用隔离有的公司按照研发目的划分为研发和测试集群有的公司通过组织架构完成部门间的资源复用。 优点部署、运维简单快速一条命令就可以完成几百个服务的部署或者扩缩容隔离性好容器与容器之间文件系统、网络等互相隔离不会产生环境冲突轻松支持滚动更新版本间切换都可以通过一个命令完成升级或者回滚 缺点技术栈变多对研发团队要求高机器还是需要公司自身来管理在非大促的时候还是需要闲置着大量的机器资源来应对大促机器自身成本和运维成本都极高资源利用率低可以通过购买云厂商服务器解决。  总结 至此一个还算合理的高可用、高并发系统的基本雏形已显。注意以上所说的架构演变顺序只是针对某个侧面进行单独的改进在实际场景中可能同一时间会有几个问题需要解决或者可能先达到瓶颈的是另外的方面这时候就应该按照实际问题实际解决。如在政府类的并发量可能不大但业务可能很丰富的场景高并发就不是重点解决的问题此时优先需要的可能会是丰富需求的解决方案。对于单次实施并且性能指标明确的系统架构设计到能够支持系统的性能指标要求就足够了但要留有扩展架构的接口以便不备之需。对于不断发展的系统如电商平台应设计到能满足下一阶段用户量和性能指标要求的程度并根据业务的增长不断的迭代升级架构以支持更高的并发和更丰富的业务。所谓的“大数据”其实是海量数据采集清洗转换、数据存储、数据分析、数据服务等场景解决方案的一个统称在每一个场景都包含了多种可选的技术如数据采集有Flume、Sqoop、Kettle 等数据存储有分布式文件系统 HDFS、FastDFSNoSQL数据库 HBase、MongoDB 等数据分析有 Spark 技术栈、机器学习算法等。总的来说大数据架构就是根据业务的需求整合各种大数据组件组合而成的架构一般会提供分布式存储、分布式计算、多维分析、数据仓库、机器学习算法等能力。而服务端架构更多指的是应用组织层面的架构底层能力往往是由大数据架构来提供。
http://www.hkea.cn/news/14371428/

相关文章:

  • 佛山网站商城建设标识设计公司网站
  • 影楼微网站建设方案外贸网站推广方法
  • 全flash网站下载全国行业名录搜索系统官网
  • 富阳网站建设洛洛科技内网门户网站 建设方案
  • 自己怎样做网站平台微网站 尺寸
  • 网站建设做网站需要多少钱北京建设网站 公司
  • 注册公司在哪个网站什么是域名系统 网站建设教程
  • 上海微网站建设wordpress模板添加授权
  • 创业公司做网站安卓系统软件开发培训机构
  • 东圃网站建设搜索引擎优化的分类
  • 如何制作网站首页google ads
  • 网站宣传有文化事业建设费吗小网站推广
  • 西安优秀的集团门户网站建设服务商东莞百度seo地址
  • 需要证书的建筑公司网站外贸有限公司英文网站
  • 招聘去建设网站类网站教育行业网站制作
  • 宏福建设集团有限公司网站怎样才可以知道网站是否优化
  • 海南房产网站制作怎么开个网站
  • 淄博桓台学校网站建设定制响应式网站排名如何
  • 微商网站开发合同建设银行网站连不上
  • 家居seo整站优化方案做类似淘宝网站怎么做
  • 用php做的订票网站应用商城app开发
  • 做网站是什么专业郑州seo技术博客
  • 学做网站的笔记本wordpress显示分类文章列表
  • 广西网站设计公司排行榜蚌埠seo外包
  • 网站地图seo综合查询网站
  • 悠悠我心的个人网站素材春考网站建设
  • 湘潭自适应网站建设 磐石网络上海网络推广外包公司
  • wordpress 网站上传到服务器长清区seo网络优化软件
  • 广州集团网站建设在北京做网站制作一个月多少钱
  • 开源镜像网站怎么做网站一般用什么服务器