对以往做过的电商项目技术架构做一次总结。
使用SOA分布式架构的方式去治理电商项目,解决分布式、高并发、高可用、集群、负载均衡等问题。
互联网大型网站项目架构拆分:
一、前端
1.资源静态化
静态化资源就是请求一个url访问一个服务器上面的网页,而且这个网页上的资源基本不会发生变化,所以我们的每次请求其实都是重复请求。
2.负载均衡
负载均衡是分布式服务架构设计必须考虑的因素之一,它将请求/数据均匀的平摊到各个操作元件中。
二、应用服务
1.业务模块化
将应用程序根据业务模块进行拆分,使每个模块能够独立运行在服务器上。在发布时,某个模块的问题不会影响到整个应用程序,只需解决出现问题的模块,然后将其发布,是相对粗粒度的服务应用。
2.服务总线
所有的应用之间需要连接时,如果应用变多,相对的连接数也会成倍增长,这时需要一个服务总线,将所有的服务接口透明化出来,对于应用于应用之间的连接,只需经过服务总线这个过程,实现1对1的连接。
3.消息队列
对于互联网架构异步操作必不可少,使用消息队列可以解决各种操作的同步性,将部分操作变成异步。异步可以防止互联网网站的高峰操作。
同时消息队列对应用之间进行解耦,应用之间的操作不需要约定,也可以处理相应的操作。
4.读写分离
数据库的写比较耗时,而数据库的读效率很高,所以数据库的写操作影响了查询效率。在应用中通过切换数据源实现读写分离。
5.缓存
缓存能够减轻数据库访问的一定压力,加快访问速度,是互联网架构中必不可少的元素。
三、数据库
1.分库分表
垂直分表:主要是分散系统负载,让一台机器做的事情变成几台服务器做。
水平分表:缩小索引区大小,使查找更快。
分布式系统
1.分布式的应用和服务
将应用和服务进行分割,应用和服务模块分布式部署。这样做不仅提高并发访问能力、减少数据库连接和资源消耗,还能使不同
应用复用服务,利于扩展。
2.分布式静态资源
对网站静态资源如JS、CSS、图片资源进行分布式部署,减轻应用服务器负载压力,提高访问速度。