一个社交App是如何构建高伸缩性的交互式系统
2022-01-30 10:20:01
733
0
一个社交App需实现的功能
用户关注的常规社交功能、活动、地理位置、探索功能、新鲜事、视频照片分享等等,需要提供的功能不胜枚举,所以从技术角度来说,开发者需要解决的问题也是异常复杂的。
当一款社交App发布之初,用户访问量比较小,使用一台服务器就能够支撑全部的访问压力和数据存储需求,但是互联网应用具有病毒式的传播特点。一款App很可能会面临一夜爆红的现象,访问量和数据量在短时间内呈现爆发式增长,这时候会面临的局面是每天上亿PV、数百万新增用户和活跃用户、流量飙升至每秒数百兆。这些对于一个只部署了简单后端架构的应用来讲是无法支撑的,会直接导致服务器响应缓慢甚至超时,以及在高峰期时服务呈现瘫痪状态,使得后端的服务完全无法使用,用户体验急剧下降。本文将会通过一个真实的案例来分享一个社交应用如何构建一个具备高伸缩性的后端系统。
社交App最初部署的后端架构解析
社交App在最初的时候,后端架构相对比较简单,最初是部署在基础网络之上。最前面放置一台绑定了公网IP的nginx服务器作负载均衡,后面放置3台应用服务器来负责处理所有业务上的请求,最后面搭建一台MySQL Database数据库。
构建私有网络
随着产品的不断迭代、用户数的持续增长、数据量的积累,App就需要改进自己的后端架构,即开始构建私有网络。用户可以使用私有网络构建自己的网络拓扑——创建路由器和私有网络,将后续加入的用于运行内部服务的主机放置在私用网络中,可以有效地和云平台其他用户主机,在网络上实现100%二层隔离。主机对外开放的仅仅只有80端口,这样系统安全性上多了一层保障。
在上面的架构图中,最前面的是防火墙,后面接负载均衡器,然后接路由器和私有网络,很多互联网应用都存在读多写少的情况,这个比例有时可以达到8:2,所以我们首先通过引入缓存分摊数据库读压力。其次,引入负载均衡器,替换最初架构中的nginx proxy,负责均衡器在这里其主要用于分发请求到后端多台应用服务器,,当其中一台应用服务器挂掉,负载均衡器可以进行自动隔离。
业务分区与扩展
App随着并发访问量和数据量不断增大,首先想到横向扩容Web服务。水平扩容业务服务器的前提是要保证每台服务器都是无状态的,将session信息下放到缓存或数据库中存储,保证请求被负载到任何一台服务器可以正常处理。
从上图中看到,在前一步「构建私有网络」之后,增加了一个新的私有网络来扩展网络层,这里可以利用自有映像功能,将原有的应用服务器制作成模板,后续就可以基于这个模板快速启动新的主机。另外可以利用Auto-scaling(自动横向扩展)功能,根据后端服务器的负载请求,动态调整服务器的数量。
一个社交应用的后端会提供很多服务请求接口,比如添加好友、刷新新鲜事、浏览页面等,可以通过日志分析每一个接口的耗时,将耗时长但非重要业务的请求分到单独的Web服务器上进行处理,从而给主Web服务器留出更多资源去处理关键业务的请求。
面向服务的架构
随着产品功能的不断迭代,业务代码会越来越复杂,出现故障的可能性也在加大,当一个局部功能出现问题时,都会影响整个服务的可用性。此时可以构建面向服务的架构,将一个完整且庞大的服务拆分为一个个的子服务,服务之间通过接口交互。如下图所示:
社交App的服务被拆分成了四个子服务——新鲜事(News Feed)、用户资料(Profile)、广告(Ads)和探索(Explore),不同的服务之间通过消息通信框架(例如ZeroMQ)来进行交互。把一个大服务拆分为几个小的子服务的好处不言而喻,主要是:
故障隔离:子服务出现故障不会影响全局,比如广告业务出现问题并不会让整个App不能使用,依然可以查看新鲜事等;
独立扩展:每一个被拆分出的子服务有着不同的访问压力,比如新鲜事的调用相比一些二级页面的用户资料要高很多,所以前者会被分配更多的Web 服务器;
独立部署:一个大服务的配置因功能过多会异常复杂,一旦被拆分就可根据不同的特性需求定制配置项,从而提高可管理性;
团队协作开发:开发者都有着自己精通的方向,从而提高开发效率;
抽象出数据访问:在后续进行数据层面(数据库、缓存)扩展时,可通过修改子服务的Data Service,实现对下层数据的透明。
数据库Replication
业务增长也会给数据库带来诸多问题,当最初架构中单台数据库(数据库同时提供读和写)不足已支撑起App访问压力时,首先需要做数据副本Replication。市面上常见的MySQL、MongoDB等数据库都提供Replication功能,以MySQL为例,从高层来看,Replication可分成三步:
Master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
Slave将Master的binary log events拷贝到它的中继日志(relay log);
Slave重做中继日志中的事件,将改变反映它自己的数据。
具体实现该过程的第一部分就是Master记录二进制日志。在每个事务更新数据完成之前,Master在二进制日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,Master通知存储引擎提交事务。
下一步就是Slave将Master的binary log拷贝到它自己的中继日志。首先,Slave开始一个工作线程——I/O线程。I/O线程在Master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从Master的二进制日志中读取事件,如果已经跟上Master,它会睡眠并等待Master产生新的事件。I/O线程将这些事件写入中继日志。
SQL slave thread处理该过程的最后一步。SQL线程从中继日志读取事件,更新Slave的数据,使其与Master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。
此外,在Master中也有一个工作线程:和其它MySQL的连接一样,Slave在Master中打开一个连接也会使得Master开始一个线程。复制过程有一个很重要的限制——复制在Slave上是串行化的,也就是说Master上的并行更新操作不能在Slave上并行操作。
对于云计算使用者来说,只需要知道数据库的IP和端口即可进行使用。具体实现见下图:
第一步要做的是扩充Slave,将单机Master变成Master+3台Slave的架构,而在其中的Slave上搭建一个内网的负载均衡器(Load Balancer),对于最上层的Data Service来说,只要配置一个MySQL Master节点和一个LB节点即可,今后因业务变化进行增减Slave对上层来说完全是透明的。
此做法可以带来两个好处,第一是提高可用性,若是一台Master出现错误,则可以提升某一台的Slave作为Master继续提供服务,从而保证数据可用性;第二个是分摊读压力,对于一个社交App来说,读写分离是在数据层优化第一步要做的事情,利用上面的架构可以很轻易地做到将读的请求分担到MySQL Slave上进行查询,而写留给Master。但是读写分离时会有数据库一致性的问题,即在数据写至Master之后同步到Slave有一个延迟的时间,对于社交应用来说,这是可以接受的,只要保证数据的最终一致性即可。
在上图的最下面有一个Snapshot,即定期对数据进行冷备份,这不同于单纯对MySQL Master进行复制的Slave,因为线上bug或误操作会删除Master上的数据,这时会立即同步到slave上造成数据丢失这时冷备份Snapshot就会起到数据保护作用。
运行过程中肯定需要监控,用户可以利用Linux上的工具进行统计分析top / iotop / df / free / netstat等工具去监控系统里的各个服务和组件是否正常运行,以及通过日志的信息(http access log / application log / database slow log )分析各个服务的性能瓶颈。
数据分区与扩容
下一步业务的调整要进行数据库的分区和扩容。第一,构建缓存集群,在开始的架构中引用了Memcached缓存,是单机数据库缓存。当数据量增长,,需要把数据分散到多台缓存服务器上,常用的是HashRing算法,好处在于不管是添加结点还是删除结点时,只会使得少部分数据失效。还可以引用NoSQL数据库,这里用到了Redis把社交数据里对于关系要求不强但对查询效率要求很高的数据从MySQL里拿到Redis里存。Redis尤其适合存储列表类数据,比如好友关系列表、排行榜数据等。
除此以外可以考虑做数据分区对于MySQL第一步是垂直拆分,把原来单独的数据库按照功能模块分别拆分成:好友新鲜事、用户资料、广告数据以及探索数据。对于Redis也同样,将原来的单台Redis按照功能模块拆成四个,分别为:排行榜数据、好友、广告数据、探索数据。
接下来会遇到的瓶颈是单表过大的问题,这时候我们需要做水平拆分——把一个表拆分成多个表,需要选取一个分区Key,比如对用户表做拆分时,通常选取User ID。分区key的选择主要是看所有的查询语句频繁使用哪个查询字段,就选择那个字段作为分区key这样能保证大部分的查询可以落在单个数据表上,少量没有带分区Key的查询语句,可能要遍历一遍所有切分后的数据表。
构建完整的测试环境
构建完整测试服务器时需要创建新的路由器和私有网络、独立的网络环境和带宽资源、内网GRE隧道打通路由器、VPN拨入网络和SSH密钥管理。
这个过程你可以创建一个包含所有系统服务的all-in-one的环境,将其制作成自有映像。如果后续你的团队来新的人,需要独立的完整开发环境,只需基于自有镜像快速创建主机即可;还可以利用User Data定制化功能,在主机启动执行一段你上传的脚本,来初始化环境。你可以将这两个功能结合起来用,把所有你所需要用的服务全部安装部署完毕后做成映像,并用User Data脚本从代码库里更新代码。因为代码的变动相对于环境的更新更加频繁,不可能每次代码的更新都要构建一个新的自有镜像。通过这种方式构建起一个完整的测试服务器,让每个工程师都可以有自己独立的测试服务器。
在App发布上线时需要连到线上环境怎么办?这两个网络本身完全100%隔离,可利用GRE隧道的功能,把两个路由器打通,实现测试环境网络和线上生产环境网络的完全连通。
多机房部署与混合组网
为了让后端架构更可靠和业务更稳定,就需要实施多机房部署和混合组网。具体原因有以下三点:
异地容灾:在复杂的网络环境下,机房可能会出现网络状况,导致一些比较关键性的业务的可用性降低,备份机房后可保证服务不会出现明显的长时间中断;
负载分摊:单独一个机房可能不足以支撑全部的请求,这时可以把一部分的请求压力分担到另一个机房;
加速区域访问:在国内网络环境下,南方和北方相互之间网络访问时有较高的延迟。通过做多机房部署实现加速区域用户的访问。
如上所示,有三个机房,中间是QingCloud大丰1区机房,负责主营业务。左边是亚太1区机房,主要服务亚太和海外的客户。这两个机房都使用了QingCloud私有网络部署,利用路由器,通过GRE隧道或者IPsec加密隧道的方式进行互通。如果对数据传输过程的安全性要求较高,可以用IPsec的方式把两个机房相互打通,这时的访问只能通过内网IP进行访问。右边是办公室机房,工程师在这个环境下进行开发。
在实现混合组网时,只要机房路由器或者网宽设备支持标准的GRE隧道协议、IP隧道协议,就可以将传统物理世界的机房与路由器连通,并最终打通公有云环境。多机房部署通常见的方案有这些:
异地冷备份
把主机房全套业务在异地重新构建一遍,且不需要提供线上服务,只有在主机房出现故障的时候才切换到备用机房,部署相对要简单一些。但有两方面缺点,一是成本比较高,需要双倍的费用且只是用来做冷备份,平时完全用不上;另外,当主机房突然挂掉时,备用机房再起动起来提供服务,数据需要预热,这是非常缓慢的过程,可能会出现服务响应慢,甚至不能正常提供服务。
异地多活
从易到难有三阶段:第一,反向代理,用户请求到第二个机房,但不做任何处理被转向第一个机房这样会对两地的延时有一定的要求。第二,在第二个机房部署应用服务器和缓存,大部分的数据请求可以从缓存中读取,不用进行跨机房请求,但当缓存失效时,依然落到第一个机房的数据库去查询。所以,这个方式不太彻底;第三,全套服务的部署,包括HTTP服务器、业务服务器、缓存和数据库的 slave。此方式使得进入第二个机房的请求,只需要在机房内就可以完成请求处理,速度更快,但会遇到数据一致性和缓存一致性的问题,针对这点也会有一些解决方法。除了数据同步过程中的不一致问题,还需要面对缓存。
好的系统架构不是设计出来的,而是进化而来的
构建稳定可靠的业务系统需要注意以下这些:
分析用户行为,理解你的业务,如社交、电商、视频;
不同的业务有不同的行业属性和特点,对于社交来讲,比较典型的特点是数据量庞大、数据查询维度多,比如查询6月11日-7月15日在xx咖啡厅我所有好友里拍过照片的人,查询条件包括好友维度、照片维度、地点维度、隐私状态维度等,这时就需要合理的做数据层面的扩展。
电商的特点是定期举办大促销活动,届时会需要大量的计算资源、应用服务器来扛流量峰值,此时可利用云计算平台的弹性实现快速扩展业务,而在自己业务压力、促销来临时调用API接口,及AutoScaling扩展后端计算资源。视频业务有非常明显的流量高峰期和低峰期,流量高峰期通常是白天或者大家晚上下班回家那段时间,晚上2点到早上6点是流量非常低的时候,可利用云计算弹性优势,来调用API方式调整业务带宽资源,从而达到节省成本目的。
合理规划系统,预估系统容量,如 10w / 100w / 1000w PV(DAU):不同的系统容量有可能对应不同架构的部署方式,找到最适合自己的那一个;
系统是可横向扩展的 scalable;
不遗余力地解决单点问题;
为出错而设计design for failure:App的后端架构在开发支出就要为可能出现的各种问题进行准备,比如异地备份等;
设计面向服务的架构,拆分子系统,API交互,异步处理;
构建无处不在的缓存:页面缓存、接口缓存、对象缓存、数据库缓存;
避免过度设计,好的系统架构不是设计出来的,而是进化而来的。 app公司 www.lei-niao.com
用户关注的常规社交功能、活动、地理位置、探索功能、新鲜事、视频照片分享等等,需要提供的功能不胜枚举,所以从技术角度来说,开发者需要解决的问题也是异常复杂的。
当一款社交App发布之初,用户访问量比较小,使用一台服务器就能够支撑全部的访问压力和数据存储需求,但是互联网应用具有病毒式的传播特点。一款App很可能会面临一夜爆红的现象,访问量和数据量在短时间内呈现爆发式增长,这时候会面临的局面是每天上亿PV、数百万新增用户和活跃用户、流量飙升至每秒数百兆。这些对于一个只部署了简单后端架构的应用来讲是无法支撑的,会直接导致服务器响应缓慢甚至超时,以及在高峰期时服务呈现瘫痪状态,使得后端的服务完全无法使用,用户体验急剧下降。本文将会通过一个真实的案例来分享一个社交应用如何构建一个具备高伸缩性的后端系统。
社交App最初部署的后端架构解析
社交App在最初的时候,后端架构相对比较简单,最初是部署在基础网络之上。最前面放置一台绑定了公网IP的nginx服务器作负载均衡,后面放置3台应用服务器来负责处理所有业务上的请求,最后面搭建一台MySQL Database数据库。
构建私有网络
随着产品的不断迭代、用户数的持续增长、数据量的积累,App就需要改进自己的后端架构,即开始构建私有网络。用户可以使用私有网络构建自己的网络拓扑——创建路由器和私有网络,将后续加入的用于运行内部服务的主机放置在私用网络中,可以有效地和云平台其他用户主机,在网络上实现100%二层隔离。主机对外开放的仅仅只有80端口,这样系统安全性上多了一层保障。
在上面的架构图中,最前面的是防火墙,后面接负载均衡器,然后接路由器和私有网络,很多互联网应用都存在读多写少的情况,这个比例有时可以达到8:2,所以我们首先通过引入缓存分摊数据库读压力。其次,引入负载均衡器,替换最初架构中的nginx proxy,负责均衡器在这里其主要用于分发请求到后端多台应用服务器,,当其中一台应用服务器挂掉,负载均衡器可以进行自动隔离。
业务分区与扩展
App随着并发访问量和数据量不断增大,首先想到横向扩容Web服务。水平扩容业务服务器的前提是要保证每台服务器都是无状态的,将session信息下放到缓存或数据库中存储,保证请求被负载到任何一台服务器可以正常处理。
从上图中看到,在前一步「构建私有网络」之后,增加了一个新的私有网络来扩展网络层,这里可以利用自有映像功能,将原有的应用服务器制作成模板,后续就可以基于这个模板快速启动新的主机。另外可以利用Auto-scaling(自动横向扩展)功能,根据后端服务器的负载请求,动态调整服务器的数量。
一个社交应用的后端会提供很多服务请求接口,比如添加好友、刷新新鲜事、浏览页面等,可以通过日志分析每一个接口的耗时,将耗时长但非重要业务的请求分到单独的Web服务器上进行处理,从而给主Web服务器留出更多资源去处理关键业务的请求。
面向服务的架构
随着产品功能的不断迭代,业务代码会越来越复杂,出现故障的可能性也在加大,当一个局部功能出现问题时,都会影响整个服务的可用性。此时可以构建面向服务的架构,将一个完整且庞大的服务拆分为一个个的子服务,服务之间通过接口交互。如下图所示:
社交App的服务被拆分成了四个子服务——新鲜事(News Feed)、用户资料(Profile)、广告(Ads)和探索(Explore),不同的服务之间通过消息通信框架(例如ZeroMQ)来进行交互。把一个大服务拆分为几个小的子服务的好处不言而喻,主要是:
故障隔离:子服务出现故障不会影响全局,比如广告业务出现问题并不会让整个App不能使用,依然可以查看新鲜事等;
独立扩展:每一个被拆分出的子服务有着不同的访问压力,比如新鲜事的调用相比一些二级页面的用户资料要高很多,所以前者会被分配更多的Web 服务器;
独立部署:一个大服务的配置因功能过多会异常复杂,一旦被拆分就可根据不同的特性需求定制配置项,从而提高可管理性;
团队协作开发:开发者都有着自己精通的方向,从而提高开发效率;
抽象出数据访问:在后续进行数据层面(数据库、缓存)扩展时,可通过修改子服务的Data Service,实现对下层数据的透明。
数据库Replication
业务增长也会给数据库带来诸多问题,当最初架构中单台数据库(数据库同时提供读和写)不足已支撑起App访问压力时,首先需要做数据副本Replication。市面上常见的MySQL、MongoDB等数据库都提供Replication功能,以MySQL为例,从高层来看,Replication可分成三步:
Master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
Slave将Master的binary log events拷贝到它的中继日志(relay log);
Slave重做中继日志中的事件,将改变反映它自己的数据。
具体实现该过程的第一部分就是Master记录二进制日志。在每个事务更新数据完成之前,Master在二进制日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,Master通知存储引擎提交事务。
下一步就是Slave将Master的binary log拷贝到它自己的中继日志。首先,Slave开始一个工作线程——I/O线程。I/O线程在Master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从Master的二进制日志中读取事件,如果已经跟上Master,它会睡眠并等待Master产生新的事件。I/O线程将这些事件写入中继日志。
SQL slave thread处理该过程的最后一步。SQL线程从中继日志读取事件,更新Slave的数据,使其与Master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。
此外,在Master中也有一个工作线程:和其它MySQL的连接一样,Slave在Master中打开一个连接也会使得Master开始一个线程。复制过程有一个很重要的限制——复制在Slave上是串行化的,也就是说Master上的并行更新操作不能在Slave上并行操作。
对于云计算使用者来说,只需要知道数据库的IP和端口即可进行使用。具体实现见下图:
第一步要做的是扩充Slave,将单机Master变成Master+3台Slave的架构,而在其中的Slave上搭建一个内网的负载均衡器(Load Balancer),对于最上层的Data Service来说,只要配置一个MySQL Master节点和一个LB节点即可,今后因业务变化进行增减Slave对上层来说完全是透明的。
此做法可以带来两个好处,第一是提高可用性,若是一台Master出现错误,则可以提升某一台的Slave作为Master继续提供服务,从而保证数据可用性;第二个是分摊读压力,对于一个社交App来说,读写分离是在数据层优化第一步要做的事情,利用上面的架构可以很轻易地做到将读的请求分担到MySQL Slave上进行查询,而写留给Master。但是读写分离时会有数据库一致性的问题,即在数据写至Master之后同步到Slave有一个延迟的时间,对于社交应用来说,这是可以接受的,只要保证数据的最终一致性即可。
在上图的最下面有一个Snapshot,即定期对数据进行冷备份,这不同于单纯对MySQL Master进行复制的Slave,因为线上bug或误操作会删除Master上的数据,这时会立即同步到slave上造成数据丢失这时冷备份Snapshot就会起到数据保护作用。
运行过程中肯定需要监控,用户可以利用Linux上的工具进行统计分析top / iotop / df / free / netstat等工具去监控系统里的各个服务和组件是否正常运行,以及通过日志的信息(http access log / application log / database slow log )分析各个服务的性能瓶颈。
数据分区与扩容
下一步业务的调整要进行数据库的分区和扩容。第一,构建缓存集群,在开始的架构中引用了Memcached缓存,是单机数据库缓存。当数据量增长,,需要把数据分散到多台缓存服务器上,常用的是HashRing算法,好处在于不管是添加结点还是删除结点时,只会使得少部分数据失效。还可以引用NoSQL数据库,这里用到了Redis把社交数据里对于关系要求不强但对查询效率要求很高的数据从MySQL里拿到Redis里存。Redis尤其适合存储列表类数据,比如好友关系列表、排行榜数据等。
除此以外可以考虑做数据分区对于MySQL第一步是垂直拆分,把原来单独的数据库按照功能模块分别拆分成:好友新鲜事、用户资料、广告数据以及探索数据。对于Redis也同样,将原来的单台Redis按照功能模块拆成四个,分别为:排行榜数据、好友、广告数据、探索数据。
接下来会遇到的瓶颈是单表过大的问题,这时候我们需要做水平拆分——把一个表拆分成多个表,需要选取一个分区Key,比如对用户表做拆分时,通常选取User ID。分区key的选择主要是看所有的查询语句频繁使用哪个查询字段,就选择那个字段作为分区key这样能保证大部分的查询可以落在单个数据表上,少量没有带分区Key的查询语句,可能要遍历一遍所有切分后的数据表。
构建完整的测试环境
构建完整测试服务器时需要创建新的路由器和私有网络、独立的网络环境和带宽资源、内网GRE隧道打通路由器、VPN拨入网络和SSH密钥管理。
这个过程你可以创建一个包含所有系统服务的all-in-one的环境,将其制作成自有映像。如果后续你的团队来新的人,需要独立的完整开发环境,只需基于自有镜像快速创建主机即可;还可以利用User Data定制化功能,在主机启动执行一段你上传的脚本,来初始化环境。你可以将这两个功能结合起来用,把所有你所需要用的服务全部安装部署完毕后做成映像,并用User Data脚本从代码库里更新代码。因为代码的变动相对于环境的更新更加频繁,不可能每次代码的更新都要构建一个新的自有镜像。通过这种方式构建起一个完整的测试服务器,让每个工程师都可以有自己独立的测试服务器。
在App发布上线时需要连到线上环境怎么办?这两个网络本身完全100%隔离,可利用GRE隧道的功能,把两个路由器打通,实现测试环境网络和线上生产环境网络的完全连通。
多机房部署与混合组网
为了让后端架构更可靠和业务更稳定,就需要实施多机房部署和混合组网。具体原因有以下三点:
异地容灾:在复杂的网络环境下,机房可能会出现网络状况,导致一些比较关键性的业务的可用性降低,备份机房后可保证服务不会出现明显的长时间中断;
负载分摊:单独一个机房可能不足以支撑全部的请求,这时可以把一部分的请求压力分担到另一个机房;
加速区域访问:在国内网络环境下,南方和北方相互之间网络访问时有较高的延迟。通过做多机房部署实现加速区域用户的访问。
如上所示,有三个机房,中间是QingCloud大丰1区机房,负责主营业务。左边是亚太1区机房,主要服务亚太和海外的客户。这两个机房都使用了QingCloud私有网络部署,利用路由器,通过GRE隧道或者IPsec加密隧道的方式进行互通。如果对数据传输过程的安全性要求较高,可以用IPsec的方式把两个机房相互打通,这时的访问只能通过内网IP进行访问。右边是办公室机房,工程师在这个环境下进行开发。
在实现混合组网时,只要机房路由器或者网宽设备支持标准的GRE隧道协议、IP隧道协议,就可以将传统物理世界的机房与路由器连通,并最终打通公有云环境。多机房部署通常见的方案有这些:
异地冷备份
把主机房全套业务在异地重新构建一遍,且不需要提供线上服务,只有在主机房出现故障的时候才切换到备用机房,部署相对要简单一些。但有两方面缺点,一是成本比较高,需要双倍的费用且只是用来做冷备份,平时完全用不上;另外,当主机房突然挂掉时,备用机房再起动起来提供服务,数据需要预热,这是非常缓慢的过程,可能会出现服务响应慢,甚至不能正常提供服务。
异地多活
从易到难有三阶段:第一,反向代理,用户请求到第二个机房,但不做任何处理被转向第一个机房这样会对两地的延时有一定的要求。第二,在第二个机房部署应用服务器和缓存,大部分的数据请求可以从缓存中读取,不用进行跨机房请求,但当缓存失效时,依然落到第一个机房的数据库去查询。所以,这个方式不太彻底;第三,全套服务的部署,包括HTTP服务器、业务服务器、缓存和数据库的 slave。此方式使得进入第二个机房的请求,只需要在机房内就可以完成请求处理,速度更快,但会遇到数据一致性和缓存一致性的问题,针对这点也会有一些解决方法。除了数据同步过程中的不一致问题,还需要面对缓存。
好的系统架构不是设计出来的,而是进化而来的
构建稳定可靠的业务系统需要注意以下这些:
分析用户行为,理解你的业务,如社交、电商、视频;
不同的业务有不同的行业属性和特点,对于社交来讲,比较典型的特点是数据量庞大、数据查询维度多,比如查询6月11日-7月15日在xx咖啡厅我所有好友里拍过照片的人,查询条件包括好友维度、照片维度、地点维度、隐私状态维度等,这时就需要合理的做数据层面的扩展。
电商的特点是定期举办大促销活动,届时会需要大量的计算资源、应用服务器来扛流量峰值,此时可利用云计算平台的弹性实现快速扩展业务,而在自己业务压力、促销来临时调用API接口,及AutoScaling扩展后端计算资源。视频业务有非常明显的流量高峰期和低峰期,流量高峰期通常是白天或者大家晚上下班回家那段时间,晚上2点到早上6点是流量非常低的时候,可利用云计算弹性优势,来调用API方式调整业务带宽资源,从而达到节省成本目的。
合理规划系统,预估系统容量,如 10w / 100w / 1000w PV(DAU):不同的系统容量有可能对应不同架构的部署方式,找到最适合自己的那一个;
系统是可横向扩展的 scalable;
不遗余力地解决单点问题;
为出错而设计design for failure:App的后端架构在开发支出就要为可能出现的各种问题进行准备,比如异地备份等;
设计面向服务的架构,拆分子系统,API交互,异步处理;
构建无处不在的缓存:页面缓存、接口缓存、对象缓存、数据库缓存;
避免过度设计,好的系统架构不是设计出来的,而是进化而来的。 app公司 www.lei-niao.com
声明:文章来源于互联网!
最新问题
APP热点问题
友情站点
- 嘉兴软件开发|APP制作
- 嘉兴软件公司
- 嘉兴APP公司
- 嘉兴安卓开发公司
- 嘉兴苹果开发公司
- 嘉兴微信开发公司
- 嘉兴移动网页公司
- 嘉兴网站建设公司
- 嘉兴网络新闻
- 嘉善软件开发|APP制作
- 嘉善软件公司
- 嘉善APP公司
- 嘉善安卓开发公司
- 嘉善苹果开发公司
- 嘉善微信开发公司
- 嘉善移动网页公司
- 嘉善网站建设公司
- 嘉善网络新闻
- 平湖软件开发|APP制作
- 平湖软件公司
- 平湖APP公司
- 平湖安卓开发公司
- 平湖苹果开发公司
- 平湖微信开发公司
- 平湖移动网页公司
- 平湖网站建设公司
- 平湖网络新闻
- 海盐软件开发|APP制作
- 海盐软件公司
- 海盐APP公司
- 海盐安卓开发公司
- 海盐苹果开发公司
- 海盐微信开发公司
- 海盐移动网页公司
- 海盐网站建设公司
- 海盐网络新闻
- 海宁软件开发|APP制作
- 海宁软件公司
- 海宁APP公司
- 海宁安卓开发公司
- 海宁苹果开发公司
- 海宁微信开发公司
- 海宁移动网页公司
- 海宁网站建设公司
- 海宁网络新闻
- 桐乡软件开发|APP制作
- 桐乡软件公司
- 桐乡APP公司
- 桐乡安卓开发公司
- 桐乡苹果开发公司
- 桐乡微信开发公司
- 桐乡移动网页公司
- 桐乡网站建设公司
- 桐乡网络新闻
- 新塍软件开发|APP制作
- 新塍软件公司
- 新塍APP公司
- 新塍安卓开发公司
- 新塍苹果开发公司
- 新塍微信开发公司
- 新塍移动网页公司
- 新塍网站建设公司
- 新塍网络新闻
- 王店软件开发|APP制作
- 王店软件公司
- 王店APP公司
- 王店安卓开发公司
- 王店苹果开发公司
- 王店微信开发公司
- 王店移动网页公司
- 王店网站建设公司
- 王店网络新闻
- 王江泾软件开发|APP制作
- 王江泾软件公司
- 王江泾APP公司
- 王江泾安卓开发公司
- 王江泾苹果开发公司
- 王江泾微信开发公司
- 王江泾移动网页公司
- 王江泾网站建设公司
- 王江泾网络新闻
- 杭州软件开发|APP制作
- 杭州软件公司
- 杭州APP公司
- 杭州安卓开发公司
- 杭州苹果开发公司
- 杭州微信开发公司
- 杭州移动网页公司
- 杭州网站建设公司
- 杭州网络新闻
- 桐庐软件开发|APP制作
- 桐庐软件公司
- 桐庐APP公司
- 桐庐安卓开发公司
- 桐庐苹果开发公司
- 桐庐微信开发公司
- 桐庐移动网页公司
- 桐庐网站建设公司
- 桐庐网络新闻
- 淳安软件开发|APP制作
- 淳安软件公司
- 淳安APP公司
- 淳安安卓开发公司
- 淳安苹果开发公司
- 淳安微信开发公司
- 淳安移动网页公司
- 淳安网站建设公司
- 淳安网络新闻
- 萧山软件开发|APP制作
- 萧山软件公司
- 萧山APP公司
- 萧山安卓开发公司
- 萧山苹果开发公司
- 萧山微信开发公司
- 萧山移动网页公司
- 萧山网站建设公司
- 萧山网络新闻
- 建德软件开发|APP制作
- 建德软件公司
- 建德APP公司
- 建德安卓开发公司
- 建德苹果开发公司
- 建德微信开发公司
- 建德移动网页公司
- 建德网站建设公司
- 建德网络新闻
- 富阳软件开发|APP制作
- 富阳软件公司
- 富阳APP公司
- 富阳安卓开发公司
- 富阳苹果开发公司
- 富阳微信开发公司
- 富阳移动网页公司
- 富阳网站建设公司
- 富阳网络新闻
- 临安软件开发|APP制作
- 临安软件公司
- 临安APP公司
- 临安安卓开发公司
- 临安苹果开发公司
- 临安微信开发公司
- 临安移动网页公司
- 临安网站建设公司
- 临安网络新闻
- 余杭软件开发|APP制作
- 余杭软件公司
- 余杭APP公司
- 余杭安卓开发公司
- 余杭苹果开发公司
- 余杭微信开发公司
- 余杭移动网页公司
- 余杭网站建设公司
- 余杭网络新闻
- 宁波软件开发|APP制作
- 宁波软件公司
- 宁波APP公司
- 宁波安卓开发公司
- 宁波苹果开发公司
- 宁波微信开发公司
- 宁波移动网页公司
- 宁波网站建设公司
- 宁波网络新闻
- 象山软件开发|APP制作
- 象山软件公司
- 象山APP公司
- 象山安卓开发公司
- 象山苹果开发公司
- 象山微信开发公司
- 象山移动网页公司
- 象山网站建设公司
- 象山网络新闻
- 宁海软件开发|APP制作
- 宁海软件公司
- 宁海APP公司
- 宁海安卓开发公司
- 宁海苹果开发公司
- 宁海微信开发公司
- 宁海移动网页公司
- 宁海网站建设公司
- 宁海网络新闻
- 余姚软件开发|APP制作
- 余姚软件公司
- 余姚APP公司
- 余姚安卓开发公司
- 余姚苹果开发公司
- 余姚微信开发公司
- 余姚移动网页公司
- 余姚网站建设公司
- 余姚网络新闻
- 慈溪软件开发|APP制作
- 慈溪软件公司
- 慈溪APP公司
- 慈溪安卓开发公司
- 慈溪苹果开发公司
- 慈溪微信开发公司
- 慈溪移动网页公司
- 慈溪网站建设公司
- 慈溪网络新闻
- 奉化软件开发|APP制作
- 奉化软件公司
- 奉化APP公司
- 奉化安卓开发公司
- 奉化苹果开发公司
- 奉化微信开发公司
- 奉化移动网页公司
- 奉化网站建设公司
- 奉化网络新闻
- 温州软件开发|APP制作
- 温州软件公司
- 温州APP公司
- 温州安卓开发公司
- 温州苹果开发公司
- 温州微信开发公司
- 温州移动网页公司
- 温州网站建设公司
- 温州网络新闻
- 洞头软件开发|APP制作
- 洞头软件公司
- 洞头APP公司
- 洞头安卓开发公司
- 洞头苹果开发公司
- 洞头微信开发公司
- 洞头移动网页公司
- 洞头网站建设公司
- 洞头网络新闻
- 永嘉软件开发|APP制作
- 永嘉软件公司
- 永嘉APP公司
- 永嘉安卓开发公司
- 永嘉苹果开发公司
- 永嘉微信开发公司
- 永嘉移动网页公司
- 永嘉网站建设公司
- 永嘉网络新闻
- 平阳软件开发|APP制作
- 平阳软件公司
- 平阳APP公司
- 平阳安卓开发公司
- 平阳苹果开发公司
- 平阳微信开发公司
- 平阳移动网页公司
- 平阳网站建设公司
- 平阳网络新闻
- 苍南软件开发|APP制作
- 苍南软件公司
- 苍南APP公司
- 苍南安卓开发公司
- 苍南苹果开发公司
- 苍南微信开发公司
- 苍南移动网页公司
- 苍南网站建设公司
- 苍南网络新闻
- 文成软件开发|APP制作
- 文成软件公司
- 文成APP公司
- 文成安卓开发公司
- 文成苹果开发公司
- 文成微信开发公司
- 文成移动网页公司
- 文成网站建设公司
- 文成网络新闻
- 泰顺软件开发|APP制作
- 泰顺软件公司
- 泰顺APP公司
- 泰顺安卓开发公司
- 泰顺苹果开发公司
- 泰顺微信开发公司
- 泰顺移动网页公司
- 泰顺网站建设公司
- 泰顺网络新闻
- 瑞安软件开发|APP制作
- 瑞安软件公司
- 瑞安APP公司
- 瑞安安卓开发公司
- 瑞安苹果开发公司
- 瑞安微信开发公司
- 瑞安移动网页公司
- 瑞安网站建设公司
- 瑞安网络新闻
- 乐清软件开发|APP制作
- 乐清软件公司
- 乐清APP公司
- 乐清安卓开发公司
- 乐清苹果开发公司
- 乐清微信开发公司
- 乐清移动网页公司
- 乐清网站建设公司
- 乐清网络新闻
- 湖州软件开发|APP制作
- 湖州软件公司
- 湖州APP公司
- 湖州安卓开发公司
- 湖州苹果开发公司
- 湖州微信开发公司
- 湖州移动网页公司
- 湖州网站建设公司
- 湖州网络新闻
- 德清软件开发|APP制作
- 德清软件公司
- 德清APP公司
- 德清安卓开发公司
- 德清苹果开发公司
- 德清微信开发公司
- 德清移动网页公司
- 德清网站建设公司
- 德清网络新闻
- 长兴软件开发|APP制作
- 长兴软件公司
- 长兴APP公司
- 长兴安卓开发公司
- 长兴苹果开发公司
- 长兴微信开发公司
- 长兴移动网页公司
- 长兴网站建设公司
- 长兴网络新闻
- 安吉软件开发|APP制作
- 安吉软件公司
- 安吉APP公司
- 安吉安卓开发公司
- 安吉苹果开发公司
- 安吉微信开发公司
- 安吉移动网页公司
- 安吉网站建设公司
- 安吉网络新闻
- 绍兴软件开发|APP制作
- 绍兴软件公司
- 绍兴APP公司
- 绍兴安卓开发公司
- 绍兴苹果开发公司
- 绍兴微信开发公司
- 绍兴移动网页公司
- 绍兴网站建设公司
- 绍兴网络新闻
- 新昌软件开发|APP制作
- 新昌软件公司
- 新昌APP公司
- 新昌安卓开发公司
- 新昌苹果开发公司
- 新昌微信开发公司
- 新昌移动网页公司
- 新昌网站建设公司
- 新昌网络新闻
- 诸暨软件开发|APP制作
- 诸暨软件公司
- 诸暨APP公司
- 诸暨安卓开发公司
- 诸暨苹果开发公司
- 诸暨微信开发公司
- 诸暨移动网页公司
- 诸暨网站建设公司
- 诸暨网络新闻
- 上虞软件开发|APP制作
- 上虞软件公司
- 上虞APP公司
- 上虞安卓开发公司
- 上虞苹果开发公司
- 上虞微信开发公司
- 上虞移动网页公司
- 上虞网站建设公司
- 上虞网络新闻
- 嵊州软件开发|APP制作
- 嵊州软件公司
- 嵊州APP公司
- 嵊州安卓开发公司
- 嵊州苹果开发公司
- 嵊州微信开发公司
- 嵊州移动网页公司
- 嵊州网站建设公司
- 嵊州网络新闻
- 金华软件开发|APP制作
- 金华软件公司
- 金华APP公司
- 金华安卓开发公司
- 金华苹果开发公司
- 金华微信开发公司
- 金华移动网页公司
- 金华网站建设公司
- 金华网络新闻
- 武义软件开发|APP制作
- 武义软件公司
- 武义APP公司
- 武义安卓开发公司
- 武义苹果开发公司
- 武义微信开发公司
- 武义移动网页公司
- 武义网站建设公司
- 武义网络新闻
- 浦江软件开发|APP制作
- 浦江软件公司
- 浦江APP公司
- 浦江安卓开发公司
- 浦江苹果开发公司
- 浦江微信开发公司
- 浦江移动网页公司
- 浦江网站建设公司
- 浦江网络新闻
- 磐安软件开发|APP制作
- 磐安软件公司
- 磐安APP公司
- 磐安安卓开发公司
- 磐安苹果开发公司
- 磐安微信开发公司
- 磐安移动网页公司
- 磐安网站建设公司
- 磐安网络新闻
- 兰溪软件开发|APP制作
- 兰溪软件公司
- 兰溪APP公司
- 兰溪安卓开发公司
- 兰溪苹果开发公司
- 兰溪微信开发公司
- 兰溪移动网页公司
- 兰溪网站建设公司
- 兰溪网络新闻
- 义乌软件开发|APP制作
- 义乌软件公司
- 义乌APP公司
- 义乌安卓开发公司
- 义乌苹果开发公司
- 义乌微信开发公司
- 义乌移动网页公司
- 义乌网站建设公司
- 义乌网络新闻
- 东阳软件开发|APP制作
- 东阳软件公司
- 东阳APP公司
- 东阳安卓开发公司
- 东阳苹果开发公司
- 东阳微信开发公司
- 东阳移动网页公司
- 东阳网站建设公司
- 东阳网络新闻
- 永康软件开发|APP制作
- 永康软件公司
- 永康APP公司
- 永康安卓开发公司
- 永康苹果开发公司
- 永康微信开发公司
- 永康移动网页公司
- 永康网站建设公司
- 永康网络新闻
- 衢州软件开发|APP制作
- 衢州软件公司
- 衢州APP公司
- 衢州安卓开发公司
- 衢州苹果开发公司
- 衢州微信开发公司
- 衢州移动网页公司
- 衢州网站建设公司
- 衢州网络新闻
- 常山软件开发|APP制作
- 常山软件公司
- 常山APP公司
- 常山安卓开发公司
- 常山苹果开发公司
- 常山微信开发公司
- 常山移动网页公司
- 常山网站建设公司
- 常山网络新闻
- 开化软件开发|APP制作
- 开化软件公司
- 开化APP公司
- 开化安卓开发公司
- 开化苹果开发公司
- 开化微信开发公司
- 开化移动网页公司
- 开化网站建设公司
- 开化网络新闻
- 龙游软件开发|APP制作
- 龙游软件公司
- 龙游APP公司
- 龙游安卓开发公司
- 龙游苹果开发公司
- 龙游微信开发公司
- 龙游移动网页公司
- 龙游网站建设公司
- 龙游网络新闻
- 江山软件开发|APP制作
- 江山软件公司
- 江山APP公司
- 江山安卓开发公司
- 江山苹果开发公司
- 江山微信开发公司
- 江山移动网页公司
- 江山网站建设公司
- 江山网络新闻
- 舟山软件开发|APP制作
- 舟山软件公司
- 舟山APP公司
- 舟山安卓开发公司
- 舟山苹果开发公司
- 舟山微信开发公司
- 舟山移动网页公司
- 舟山网站建设公司
- 舟山网络新闻
- 岱山软件开发|APP制作
- 岱山软件公司
- 岱山APP公司
- 岱山安卓开发公司
- 岱山苹果开发公司
- 岱山微信开发公司
- 岱山移动网页公司
- 岱山网站建设公司
- 岱山网络新闻
- 嵊泗软件开发|APP制作
- 嵊泗软件公司
- 嵊泗APP公司
- 嵊泗安卓开发公司
- 嵊泗苹果开发公司
- 嵊泗微信开发公司
- 嵊泗移动网页公司
- 嵊泗网站建设公司
- 嵊泗网络新闻
- 台州软件开发|APP制作
- 台州软件公司
- 台州APP公司
- 台州安卓开发公司
- 台州苹果开发公司
- 台州微信开发公司
- 台州移动网页公司
- 台州网站建设公司
- 台州网络新闻
- 仙居软件开发|APP制作
- 仙居软件公司
- 仙居APP公司
- 仙居安卓开发公司
- 仙居苹果开发公司
- 仙居微信开发公司
- 仙居移动网页公司
- 仙居网站建设公司
- 仙居网络新闻
- 天台软件开发|APP制作
- 天台软件公司
- 天台APP公司
- 天台安卓开发公司
- 天台苹果开发公司
- 天台微信开发公司
- 天台移动网页公司
- 天台网站建设公司
- 天台网络新闻
- 三门软件开发|APP制作
- 三门软件公司
- 三门APP公司
- 三门安卓开发公司
- 三门苹果开发公司
- 三门微信开发公司
- 三门移动网页公司
- 三门网站建设公司
- 三门网络新闻
- 玉环软件开发|APP制作
- 玉环软件公司
- 玉环APP公司
- 玉环安卓开发公司
- 玉环苹果开发公司
- 玉环微信开发公司
- 玉环移动网页公司
- 玉环网站建设公司
- 玉环网络新闻
- 临海软件开发|APP制作
- 临海软件公司
- 临海APP公司
- 临海安卓开发公司
- 临海苹果开发公司
- 临海微信开发公司
- 临海移动网页公司
- 临海网站建设公司
- 临海网络新闻
- 温岭软件开发|APP制作
- 温岭软件公司
- 温岭APP公司
- 温岭安卓开发公司
- 温岭苹果开发公司
- 温岭微信开发公司
- 温岭移动网页公司
- 温岭网站建设公司
- 温岭网络新闻
- 丽水软件开发|APP制作
- 丽水软件公司
- 丽水APP公司
- 丽水安卓开发公司
- 丽水苹果开发公司
- 丽水微信开发公司
- 丽水移动网页公司
- 丽水网站建设公司
- 丽水网络新闻
- 龙泉软件开发|APP制作
- 龙泉软件公司
- 龙泉APP公司
- 龙泉安卓开发公司
- 龙泉苹果开发公司
- 龙泉微信开发公司
- 龙泉移动网页公司
- 龙泉网站建设公司
- 龙泉网络新闻
- 青田软件开发|APP制作
- 青田软件公司
- 青田APP公司
- 青田安卓开发公司
- 青田苹果开发公司
- 青田微信开发公司
- 青田移动网页公司
- 青田网站建设公司
- 青田网络新闻
- 云和软件开发|APP制作
- 云和软件公司
- 云和APP公司
- 云和安卓开发公司
- 云和苹果开发公司
- 云和微信开发公司
- 云和移动网页公司
- 云和网站建设公司
- 云和网络新闻
- 庆元软件开发|APP制作
- 庆元软件公司
- 庆元APP公司
- 庆元安卓开发公司
- 庆元苹果开发公司
- 庆元微信开发公司
- 庆元移动网页公司
- 庆元网站建设公司
- 庆元网络新闻
- 缙云软件开发|APP制作
- 缙云软件公司
- 缙云APP公司
- 缙云安卓开发公司
- 缙云苹果开发公司
- 缙云微信开发公司
- 缙云移动网页公司
- 缙云网站建设公司
- 缙云网络新闻
- 遂昌软件开发|APP制作
- 遂昌软件公司
- 遂昌APP公司
- 遂昌安卓开发公司
- 遂昌苹果开发公司
- 遂昌微信开发公司
- 遂昌移动网页公司
- 遂昌网站建设公司
- 遂昌网络新闻
- 松阳软件开发|APP制作
- 松阳软件公司
- 松阳APP公司
- 松阳安卓开发公司
- 松阳苹果开发公司
- 松阳微信开发公司
- 松阳移动网页公司
- 松阳网站建设公司
- 松阳网络新闻
- 景宁软件开发|APP制作
- 景宁软件公司
- 景宁APP公司
- 景宁安卓开发公司
- 景宁苹果开发公司
- 景宁微信开发公司
- 景宁移动网页公司
- 景宁网站建设公司
- 景宁网络新闻
- 南京软件开发|APP制作
- 南京软件公司
- 南京APP公司
- 南京安卓开发公司
- 南京苹果开发公司
- 南京微信开发公司
- 南京移动网页公司
- 南京网站建设公司
- 南京网络新闻
- 江宁软件开发|APP制作
- 江宁软件公司
- 江宁APP公司
- 江宁安卓开发公司
- 江宁苹果开发公司
- 江宁微信开发公司
- 江宁移动网页公司
- 江宁网站建设公司
- 江宁网络新闻
- 江浦软件开发|APP制作
- 江浦软件公司
- 江浦APP公司
- 江浦安卓开发公司
- 江浦苹果开发公司
- 江浦微信开发公司
- 江浦移动网页公司
- 江浦网站建设公司
- 江浦网络新闻
- 六合软件开发|APP制作
- 六合软件公司
- 六合APP公司
- 六合安卓开发公司
- 六合苹果开发公司
- 六合微信开发公司
- 六合移动网页公司
- 六合网站建设公司
- 六合网络新闻
- 溧水软件开发|APP制作
- 溧水软件公司
- 溧水APP公司
- 溧水安卓开发公司
- 溧水苹果开发公司
- 溧水微信开发公司
- 溧水移动网页公司
- 溧水网站建设公司
- 溧水网络新闻
- 高淳软件开发|APP制作
- 高淳软件公司
- 高淳APP公司
- 高淳安卓开发公司
- 高淳苹果开发公司
- 高淳微信开发公司
- 高淳移动网页公司
- 高淳网站建设公司
- 高淳网络新闻
- 无锡软件开发|APP制作
- 无锡软件公司
- 无锡APP公司
- 无锡安卓开发公司
- 无锡苹果开发公司
- 无锡微信开发公司
- 无锡移动网页公司
- 无锡网站建设公司
- 无锡网络新闻
- 江阴软件开发|APP制作
- 江阴软件公司
- 江阴APP公司
- 江阴安卓开发公司
- 江阴苹果开发公司
- 江阴微信开发公司
- 江阴移动网页公司
- 江阴网站建设公司
- 江阴网络新闻
- 宜兴软件开发|APP制作
- 宜兴软件公司
- 宜兴APP公司
- 宜兴安卓开发公司
- 宜兴苹果开发公司
- 宜兴微信开发公司
- 宜兴移动网页公司
- 宜兴网站建设公司
- 宜兴网络新闻
- 锡山软件开发|APP制作
- 锡山软件公司
- 锡山APP公司
- 锡山安卓开发公司
- 锡山苹果开发公司
- 锡山微信开发公司
- 锡山移动网页公司
- 锡山网站建设公司
- 锡山网络新闻
- 徐州软件开发|APP制作
- 徐州软件公司
- 徐州APP公司
- 徐州安卓开发公司
- 徐州苹果开发公司
- 徐州微信开发公司
- 徐州移动网页公司
- 徐州网站建设公司
- 徐州网络新闻
- 丰县软件开发|APP制作
- 丰县软件公司
- 丰县APP公司
- 丰县安卓开发公司
- 丰县苹果开发公司
- 丰县微信开发公司
- 丰县移动网页公司
- 丰县网站建设公司
- 丰县网络新闻
- 沛县软件开发|APP制作
- 沛县软件公司
- 沛县APP公司
- 沛县安卓开发公司
- 沛县苹果开发公司
- 沛县微信开发公司
- 沛县移动网页公司
- 沛县网站建设公司
- 沛县网络新闻
- 铜山软件开发|APP制作
- 铜山软件公司
- 铜山APP公司
- 铜山安卓开发公司
- 铜山苹果开发公司
- 铜山微信开发公司
- 铜山移动网页公司
- 铜山网站建设公司
- 铜山网络新闻
- 睢宁软件开发|APP制作
- 睢宁软件公司
- 睢宁APP公司
- 睢宁安卓开发公司
- 睢宁苹果开发公司
- 睢宁微信开发公司
- 睢宁移动网页公司
- 睢宁网站建设公司
- 睢宁网络新闻
- 邳州软件开发|APP制作
- 邳州软件公司
- 邳州APP公司
- 邳州安卓开发公司
- 邳州苹果开发公司
- 邳州微信开发公司
- 邳州移动网页公司
- 邳州网站建设公司
- 邳州网络新闻
- 新沂软件开发|APP制作
- 新沂软件公司
- 新沂APP公司
- 新沂安卓开发公司
- 新沂苹果开发公司
- 新沂微信开发公司
- 新沂移动网页公司
- 新沂网站建设公司
- 新沂网络新闻
- 常州软件开发|APP制作
- 常州软件公司
- 常州APP公司
- 常州安卓开发公司
- 常州苹果开发公司
- 常州微信开发公司
- 常州移动网页公司
- 常州网站建设公司
- 常州网络新闻
- 溧阳软件开发|APP制作
- 溧阳软件公司
- 溧阳APP公司
- 溧阳安卓开发公司
- 溧阳苹果开发公司
- 溧阳微信开发公司
- 溧阳移动网页公司
- 溧阳网站建设公司
- 溧阳网络新闻
- 金坛软件开发|APP制作
- 金坛软件公司
- 金坛APP公司
- 金坛安卓开发公司
- 金坛苹果开发公司
- 金坛微信开发公司
- 金坛移动网页公司
- 金坛网站建设公司
- 金坛网络新闻
- 武进软件开发|APP制作
- 武进软件公司
- 武进APP公司
- 武进安卓开发公司
- 武进苹果开发公司
- 武进微信开发公司
- 武进移动网页公司
- 武进网站建设公司
- 武进网络新闻
- 苏州软件开发|APP制作
- 苏州软件公司
- 苏州APP公司
- 苏州安卓开发公司
- 苏州苹果开发公司
- 苏州微信开发公司
- 苏州移动网页公司
- 苏州网站建设公司
- 苏州网络新闻
- 常熟软件开发|APP制作
- 常熟软件公司
- 常熟APP公司
- 常熟安卓开发公司
- 常熟苹果开发公司
- 常熟微信开发公司
- 常熟移动网页公司
- 常熟网站建设公司
- 常熟网络新闻
- 张家港软件开发|APP制作
- 张家港软件公司
- 张家港APP公司
- 张家港安卓开发公司
- 张家港苹果开发公司
- 张家港微信开发公司
- 张家港移动网页公司
- 张家港网站建设公司
- 张家港网络新闻
- 昆山软件开发|APP制作
- 昆山软件公司
- 昆山APP公司
- 昆山安卓开发公司
- 昆山苹果开发公司
- 昆山微信开发公司
- 昆山移动网页公司
- 昆山网站建设公司
- 昆山网络新闻
- 吴江软件开发|APP制作
- 吴江软件公司
- 吴江APP公司
- 吴江安卓开发公司
- 吴江苹果开发公司
- 吴江微信开发公司
- 吴江移动网页公司
- 吴江网站建设公司
- 吴江网络新闻
- 太仓软件开发|APP制作
- 太仓软件公司
- 太仓APP公司
- 太仓安卓开发公司
- 太仓苹果开发公司
- 太仓微信开发公司
- 太仓移动网页公司
- 太仓网站建设公司
- 太仓网络新闻
- 南通软件开发|APP制作
- 南通软件公司
- 南通APP公司
- 南通安卓开发公司
- 南通苹果开发公司
- 南通微信开发公司
- 南通移动网页公司
- 南通网站建设公司
- 南通网络新闻
- 海安软件开发|APP制作
- 海安软件公司
- 海安APP公司
- 海安安卓开发公司
- 海安苹果开发公司
- 海安微信开发公司
- 海安移动网页公司
- 海安网站建设公司
- 海安网络新闻
- 如东软件开发|APP制作
- 如东软件公司
- 如东APP公司
- 如东安卓开发公司
- 如东苹果开发公司
- 如东微信开发公司
- 如东移动网页公司
- 如东网站建设公司
- 如东网络新闻
- 启东软件开发|APP制作
- 启东软件公司
- 启东APP公司
- 启东安卓开发公司
- 启东苹果开发公司
- 启东微信开发公司
- 启东移动网页公司
- 启东网站建设公司
- 启东网络新闻
- 如皋软件开发|APP制作
- 如皋软件公司
- 如皋APP公司
- 如皋安卓开发公司
- 如皋苹果开发公司
- 如皋微信开发公司
- 如皋移动网页公司
- 如皋网站建设公司
- 如皋网络新闻
- 通州软件开发|APP制作
- 通州软件公司
- 通州APP公司
- 通州安卓开发公司
- 通州苹果开发公司
- 通州微信开发公司
- 通州移动网页公司
- 通州网站建设公司
- 通州网络新闻
- 海门软件开发|APP制作
- 海门软件公司
- 海门APP公司
- 海门安卓开发公司
- 海门苹果开发公司
- 海门微信开发公司
- 海门移动网页公司
- 海门网站建设公司
- 海门网络新闻
- 连云港软件开发|APP制作
- 连云港软件公司
- 连云港APP公司
- 连云港安卓开发公司
- 连云港苹果开发公司
- 连云港微信开发公司
- 连云港移动网页公司
- 连云港网站建设公司
- 连云港网络新闻
- 赣榆软件开发|APP制作
- 赣榆软件公司
- 赣榆APP公司
- 赣榆安卓开发公司
- 赣榆苹果开发公司
- 赣榆微信开发公司
- 赣榆移动网页公司
- 赣榆网站建设公司
- 赣榆网络新闻
- 东海软件开发|APP制作
- 东海软件公司
- 东海APP公司
- 东海安卓开发公司
- 东海苹果开发公司
- 东海微信开发公司
- 东海移动网页公司
- 东海网站建设公司
- 东海网络新闻
- 灌云软件开发|APP制作
- 灌云软件公司
- 灌云APP公司
- 灌云安卓开发公司
- 灌云苹果开发公司
- 灌云微信开发公司
- 灌云移动网页公司
- 灌云网站建设公司
- 灌云网络新闻
- 灌南软件开发|APP制作
- 灌南软件公司
- 灌南APP公司
- 灌南安卓开发公司
- 灌南苹果开发公司
- 灌南微信开发公司
- 灌南移动网页公司
- 灌南网站建设公司
- 灌南网络新闻
- 淮安软件开发|APP制作
- 淮安软件公司
- 淮安APP公司
- 淮安安卓开发公司
- 淮安苹果开发公司
- 淮安微信开发公司
- 淮安移动网页公司
- 淮安网站建设公司
- 淮安网络新闻
- 淮阴软件开发|APP制作
- 淮阴软件公司
- 淮阴APP公司
- 淮阴安卓开发公司
- 淮阴苹果开发公司
- 淮阴微信开发公司
- 淮阴移动网页公司
- 淮阴网站建设公司
- 淮阴网络新闻
- 涟水软件开发|APP制作
- 涟水软件公司
- 涟水APP公司
- 涟水安卓开发公司
- 涟水苹果开发公司
- 涟水微信开发公司
- 涟水移动网页公司
- 涟水网站建设公司
- 涟水网络新闻
- 洪泽软件开发|APP制作
- 洪泽软件公司
- 洪泽APP公司
- 洪泽安卓开发公司
- 洪泽苹果开发公司
- 洪泽微信开发公司
- 洪泽移动网页公司
- 洪泽网站建设公司
- 洪泽网络新闻
- 盱眙软件开发|APP制作
- 盱眙软件公司
- 盱眙APP公司
- 盱眙安卓开发公司
- 盱眙苹果开发公司
- 盱眙微信开发公司
- 盱眙移动网页公司
- 盱眙网站建设公司
- 盱眙网络新闻
- 金湖软件开发|APP制作
- 金湖软件公司
- 金湖APP公司
- 金湖安卓开发公司
- 金湖苹果开发公司
- 金湖微信开发公司
- 金湖移动网页公司
- 金湖网站建设公司
- 金湖网络新闻
- 宿迁软件开发|APP制作
- 宿迁软件公司
- 宿迁APP公司
- 宿迁安卓开发公司
- 宿迁苹果开发公司
- 宿迁微信开发公司
- 宿迁移动网页公司
- 宿迁网站建设公司
- 宿迁网络新闻
- 沭阳软件开发|APP制作
- 沭阳软件公司
- 沭阳APP公司
- 沭阳安卓开发公司
- 沭阳苹果开发公司
- 沭阳微信开发公司
- 沭阳移动网页公司
- 沭阳网站建设公司
- 沭阳网络新闻
- 泗阳软件开发|APP制作
- 泗阳软件公司
- 泗阳APP公司
- 泗阳安卓开发公司
- 泗阳苹果开发公司
- 泗阳微信开发公司
- 泗阳移动网页公司
- 泗阳网站建设公司
- 泗阳网络新闻
- 泗洪软件开发|APP制作
- 泗洪软件公司
- 泗洪APP公司
- 泗洪安卓开发公司
- 泗洪苹果开发公司
- 泗洪微信开发公司
- 泗洪移动网页公司
- 泗洪网站建设公司
- 泗洪网络新闻
- 宿豫软件开发|APP制作
- 宿豫软件公司
- 宿豫APP公司
- 宿豫安卓开发公司
- 宿豫苹果开发公司
- 宿豫微信开发公司
- 宿豫移动网页公司
- 宿豫网站建设公司
- 宿豫网络新闻
- 盐城软件开发|APP制作
- 盐城软件公司
- 盐城APP公司
- 盐城安卓开发公司
- 盐城苹果开发公司
- 盐城微信开发公司
- 盐城移动网页公司
- 盐城网站建设公司
- 盐城网络新闻
- 响水软件开发|APP制作
- 响水软件公司
- 响水APP公司
- 响水安卓开发公司
- 响水苹果开发公司
- 响水微信开发公司
- 响水移动网页公司
- 响水网站建设公司
- 响水网络新闻
- 滨海软件开发|APP制作
- 滨海软件公司
- 滨海APP公司
- 滨海安卓开发公司
- 滨海苹果开发公司
- 滨海微信开发公司
- 滨海移动网页公司
- 滨海网站建设公司
- 滨海网络新闻
- 阜宁软件开发|APP制作
- 阜宁软件公司
- 阜宁APP公司
- 阜宁安卓开发公司
- 阜宁苹果开发公司
- 阜宁微信开发公司
- 阜宁移动网页公司
- 阜宁网站建设公司
- 阜宁网络新闻
- 射阳软件开发|APP制作
- 射阳软件公司
- 射阳APP公司
- 射阳安卓开发公司
- 射阳苹果开发公司
- 射阳微信开发公司
- 射阳移动网页公司
- 射阳网站建设公司
- 射阳网络新闻
- 建湖软件开发|APP制作
- 建湖软件公司
- 建湖APP公司
- 建湖安卓开发公司
- 建湖苹果开发公司
- 建湖微信开发公司
- 建湖移动网页公司
- 建湖网站建设公司
- 建湖网络新闻
- 盐都软件开发|APP制作
- 盐都软件公司
- 盐都APP公司
- 盐都安卓开发公司
- 盐都苹果开发公司
- 盐都微信开发公司
- 盐都移动网页公司
- 盐都网站建设公司
- 盐都网络新闻
- 东台软件开发|APP制作
- 东台软件公司
- 东台APP公司
- 东台安卓开发公司
- 东台苹果开发公司
- 东台微信开发公司
- 东台移动网页公司
- 东台网站建设公司
- 东台网络新闻
- 大丰软件开发|APP制作
- 大丰软件公司
- 大丰APP公司
- 大丰安卓开发公司
- 大丰苹果开发公司
- 大丰微信开发公司
- 大丰移动网页公司
- 大丰网站建设公司
- 大丰网络新闻
- 扬州软件开发|APP制作
- 扬州软件公司
- 扬州APP公司
- 扬州安卓开发公司
- 扬州苹果开发公司
- 扬州微信开发公司
- 扬州移动网页公司
- 扬州网站建设公司
- 扬州网络新闻
- 宝应软件开发|APP制作
- 宝应软件公司
- 宝应APP公司
- 宝应安卓开发公司
- 宝应苹果开发公司
- 宝应微信开发公司
- 宝应移动网页公司
- 宝应网站建设公司
- 宝应网络新闻
- 邗江软件开发|APP制作
- 邗江软件公司
- 邗江APP公司
- 邗江安卓开发公司
- 邗江苹果开发公司
- 邗江微信开发公司
- 邗江移动网页公司
- 邗江网站建设公司
- 邗江网络新闻
- 仪征软件开发|APP制作
- 仪征软件公司
- 仪征APP公司
- 仪征安卓开发公司
- 仪征苹果开发公司
- 仪征微信开发公司
- 仪征移动网页公司
- 仪征网站建设公司
- 仪征网络新闻
- 高邮软件开发|APP制作
- 高邮软件公司
- 高邮APP公司
- 高邮安卓开发公司
- 高邮苹果开发公司
- 高邮微信开发公司
- 高邮移动网页公司
- 高邮网站建设公司
- 高邮网络新闻
- 江都软件开发|APP制作
- 江都软件公司
- 江都APP公司
- 江都安卓开发公司
- 江都苹果开发公司
- 江都微信开发公司
- 江都移动网页公司
- 江都网站建设公司
- 江都网络新闻
- 泰州软件开发|APP制作
- 泰州软件公司
- 泰州APP公司
- 泰州安卓开发公司
- 泰州苹果开发公司
- 泰州微信开发公司
- 泰州移动网页公司
- 泰州网站建设公司
- 泰州网络新闻
- 兴化软件开发|APP制作
- 兴化软件公司
- 兴化APP公司
- 兴化安卓开发公司
- 兴化苹果开发公司
- 兴化微信开发公司
- 兴化移动网页公司
- 兴化网站建设公司
- 兴化网络新闻
- 泰兴软件开发|APP制作
- 泰兴软件公司
- 泰兴APP公司
- 泰兴安卓开发公司
- 泰兴苹果开发公司
- 泰兴微信开发公司
- 泰兴移动网页公司
- 泰兴网站建设公司
- 泰兴网络新闻
- 靖江软件开发|APP制作
- 靖江软件公司
- 靖江APP公司
- 靖江安卓开发公司
- 靖江苹果开发公司
- 靖江微信开发公司
- 靖江移动网页公司
- 靖江网站建设公司
- 靖江网络新闻
- 姜堰软件开发|APP制作
- 姜堰软件公司
- 姜堰APP公司
- 姜堰安卓开发公司
- 姜堰苹果开发公司
- 姜堰微信开发公司
- 姜堰移动网页公司
- 姜堰网站建设公司
- 姜堰网络新闻
- 镇江软件开发|APP制作
- 镇江软件公司
- 镇江APP公司
- 镇江安卓开发公司
- 镇江苹果开发公司
- 镇江微信开发公司
- 镇江移动网页公司
- 镇江网站建设公司
- 镇江网络新闻
- 丹徒软件开发|APP制作
- 丹徒软件公司
- 丹徒APP公司
- 丹徒安卓开发公司
- 丹徒苹果开发公司
- 丹徒微信开发公司
- 丹徒移动网页公司
- 丹徒网站建设公司
- 丹徒网络新闻
- 丹阳 软件开发|APP制作
- 丹阳 软件公司
- 丹阳 APP公司
- 丹阳 安卓开发公司
- 丹阳 苹果开发公司
- 丹阳 微信开发公司
- 丹阳 移动网页公司
- 丹阳 网站建设公司
- 丹阳 网络新闻
- 句容软件开发|APP制作
- 句容软件公司
- 句容APP公司
- 句容安卓开发公司
- 句容苹果开发公司
- 句容微信开发公司
- 句容移动网页公司
- 句容网站建设公司
- 句容网络新闻
- 扬中软件开发|APP制作
- 扬中软件公司
- 扬中APP公司
- 扬中安卓开发公司
- 扬中苹果开发公司
- 扬中微信开发公司
- 扬中移动网页公司
- 扬中网站建设公司
- 扬中网络新闻
- 上海软件开发|APP制作
- 上海软件公司
- 上海APP公司
- 上海安卓开发公司
- 上海苹果开发公司
- 上海微信开发公司
- 上海移动网页公司
- 上海网站建设公司
- 上海网络新闻
- 静安软件开发|APP制作
- 静安软件公司
- 静安APP公司
- 静安安卓开发公司
- 静安苹果开发公司
- 静安微信开发公司
- 静安移动网页公司
- 静安网站建设公司
- 静安网络新闻
- 浦东软件开发|APP制作
- 浦东软件公司
- 浦东APP公司
- 浦东安卓开发公司
- 浦东苹果开发公司
- 浦东微信开发公司
- 浦东移动网页公司
- 浦东网站建设公司
- 浦东网络新闻
- 金山软件开发|APP制作
- 金山软件公司
- 金山APP公司
- 金山安卓开发公司
- 金山苹果开发公司
- 金山微信开发公司
- 金山移动网页公司
- 金山网站建设公司
- 金山网络新闻
- 奉贤 软件开发|APP制作
- 奉贤 软件公司
- 奉贤 APP公司
- 奉贤 安卓开发公司
- 奉贤 苹果开发公司
- 奉贤 微信开发公司
- 奉贤 移动网页公司
- 奉贤 网站建设公司
- 奉贤 网络新闻
- 南汇软件开发|APP制作
- 南汇软件公司
- 南汇APP公司
- 南汇安卓开发公司
- 南汇苹果开发公司
- 南汇微信开发公司
- 南汇移动网页公司
- 南汇网站建设公司
- 南汇网络新闻
- 青浦软件开发|APP制作
- 青浦软件公司
- 青浦APP公司
- 青浦安卓开发公司
- 青浦苹果开发公司
- 青浦微信开发公司
- 青浦移动网页公司
- 青浦网站建设公司
- 青浦网络新闻
- 崇明软件开发|APP制作
- 崇明软件公司
- 崇明APP公司
- 崇明安卓开发公司
- 崇明苹果开发公司
- 崇明微信开发公司
- 崇明移动网页公司
- 崇明网站建设公司
- 崇明网络新闻
- 徐汇软件开发|APP制作
- 徐汇软件公司
- 徐汇APP公司
- 徐汇安卓开发公司
- 徐汇苹果开发公司
- 徐汇微信开发公司
- 徐汇移动网页公司
- 徐汇网站建设公司
- 徐汇网络新闻
- 长宁软件开发|APP制作
- 长宁软件公司
- 长宁APP公司
- 长宁安卓开发公司
- 长宁苹果开发公司
- 长宁微信开发公司
- 长宁移动网页公司
- 长宁网站建设公司
- 长宁网络新闻
- 宝山软件开发|APP制作
- 宝山软件公司
- 宝山APP公司
- 宝山安卓开发公司
- 宝山苹果开发公司
- 宝山微信开发公司
- 宝山移动网页公司
- 宝山网站建设公司
- 宝山网络新闻
- 闵行软件开发|APP制作
- 闵行软件公司
- 闵行APP公司
- 闵行安卓开发公司
- 闵行苹果开发公司
- 闵行微信开发公司
- 闵行移动网页公司
- 闵行网站建设公司
- 闵行网络新闻
- 杨浦软件开发|APP制作
- 杨浦软件公司
- 杨浦APP公司
- 杨浦安卓开发公司
- 杨浦苹果开发公司
- 杨浦微信开发公司
- 杨浦移动网页公司
- 杨浦网站建设公司
- 杨浦网络新闻
- 虹口软件开发|APP制作
- 虹口软件公司
- 虹口APP公司
- 虹口安卓开发公司
- 虹口苹果开发公司
- 虹口微信开发公司
- 虹口移动网页公司
- 虹口网站建设公司
- 虹口网络新闻
- 闸北软件开发|APP制作
- 闸北软件公司
- 闸北APP公司
- 闸北安卓开发公司
- 闸北苹果开发公司
- 闸北微信开发公司
- 闸北移动网页公司
- 闸北网站建设公司
- 闸北网络新闻
- 普陀软件开发|APP制作
- 普陀软件公司
- 普陀APP公司
- 普陀安卓开发公司
- 普陀苹果开发公司
- 普陀微信开发公司
- 普陀移动网页公司
- 普陀网站建设公司
- 普陀网络新闻
- 嘉定软件开发|APP制作
- 嘉定软件公司
- 嘉定APP公司
- 嘉定安卓开发公司
- 嘉定苹果开发公司
- 嘉定微信开发公司
- 嘉定移动网页公司
- 嘉定网站建设公司
- 嘉定网络新闻
- 松江软件开发|APP制作
- 松江软件公司
- 松江APP公司
- 松江安卓开发公司
- 松江苹果开发公司
- 松江微信开发公司
- 松江移动网页公司
- 松江网站建设公司
- 松江网络新闻
- 黄浦软件开发|APP制作
- 黄浦软件公司
- 黄浦APP公司
- 黄浦安卓开发公司
- 黄浦苹果开发公司
- 黄浦微信开发公司
- 黄浦移动网页公司
- 黄浦网站建设公司
- 黄浦网络新闻