198.44.253.X大型网站服务器怎么个架构?
大型网站服务器怎么个架构?用多少台服务器合适?鸿网互联大型电商网站服务器解决方案!
任何一个大型网站都是经历用户积累然后成长,从一台服务器到多台服务器才能构架支撑网站现有数据、用户、页面请求等。大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要解决数亿的用户实时消息传输,百度它要处理海量的搜索请求,他们都有各自的业务特性,系统架构也有所不同。尽管如此我们也可以从这些不同的网站背景下,找出其中共用的技术,这些技术和手段可以广泛运行在大型网站系统的架构中,下面鸿网互联就通过介绍大型网站系统的演化过程,来认识这些技术和手段。
198.44.253.1
198.44.253.2
198.44.253.3
198.44.253.4
198.44.253.5
198.44.253.6
198.44.253.7
198.44.253.8
198.44.253.9
198.44.253.10
198.44.253.11
198.44.253.12
198.44.253.13
198.44.253.14
198.44.253.15
198.44.253.16
198.44.253.17
198.44.253.18
198.44.253.19
198.44.253.20
198.44.253.21
198.44.253.22
198.44.253.23
198.44.253.24
198.44.253.25
198.44.253.26
198.44.253.27
198.44.253.28
198.44.253.29
198.44.253.30
198.44.253.31
198.44.253.32
198.44.253.33
198.44.253.34
198.44.253.35
198.44.253.36
198.44.253.37
198.44.253.38
198.44.253.39
198.44.253.40
198.44.253.41
198.44.253.42
198.44.253.43
198.44.253.44
198.44.253.45
198.44.253.46
198.44.253.47
198.44.253.48
198.44.253.49
198.44.253.50
198.44.253.51
198.44.253.52
198.44.253.53
198.44.253.54
198.44.253.55
198.44.253.56
198.44.253.57
198.44.253.58
198.44.253.59
198.44.253.60
198.44.253.61
198.44.253.62
198.44.253.63
198.44.253.64
198.44.253.65
198.44.253.66
198.44.253.67
198.44.253.68
198.44.253.69
198.44.253.70
198.44.253.71
198.44.253.72
198.44.253.73
198.44.253.74
198.44.253.75
198.44.253.76
198.44.253.77
198.44.253.78
198.44.253.79
198.44.253.80
198.44.253.81
198.44.253.82
198.44.253.83
198.44.253.84
198.44.253.85
198.44.253.86
198.44.253.87
198.44.253.88
198.44.253.89
198.44.253.90
198.44.253.91
198.44.253.92
198.44.253.93
198.44.253.94
198.44.253.95
198.44.253.96
198.44.253.97
198.44.253.98
198.44.253.99
198.44.253.100
198.44.253.101
198.44.253.102
198.44.253.103
198.44.253.104
198.44.253.105
198.44.253.106
198.44.253.107
198.44.253.108
198.44.253.109
198.44.253.110
198.44.253.111
198.44.253.112
198.44.253.113
198.44.253.114
198.44.253.115
198.44.253.116
198.44.253.117
198.44.253.118
198.44.253.119
198.44.253.120
198.44.253.121
198.44.253.122
198.44.253.123
198.44.253.124
198.44.253.125
198.44.253.126
198.44.253.127
198.44.253.128
198.44.253.129
198.44.253.130
198.44.253.131
198.44.253.132
198.44.253.133
198.44.253.134
198.44.253.135
198.44.253.136
198.44.253.137
198.44.253.138
198.44.253.139
198.44.253.140
198.44.253.141
198.44.253.142
198.44.253.143
198.44.253.144
198.44.253.145
198.44.253.146
198.44.253.147
198.44.253.148
198.44.253.149
198.44.253.150
198.44.253.151
198.44.253.152
198.44.253.153
198.44.253.154
198.44.253.155
198.44.253.156
198.44.253.157
198.44.253.158
198.44.253.159
198.44.253.160
198.44.253.161
198.44.253.162
198.44.253.163
198.44.253.164
198.44.253.165
198.44.253.166
198.44.253.167
198.44.253.168
198.44.253.169
198.44.253.170
198.44.253.171
198.44.253.172
198.44.253.173
198.44.253.174
198.44.253.175
198.44.253.176
198.44.253.177
198.44.253.178
198.44.253.179
198.44.253.180
198.44.253.181
198.44.253.182
198.44.253.183
198.44.253.184
198.44.253.185
198.44.253.186
198.44.253.187
198.44.253.188
198.44.253.189
198.44.253.190
198.44.253.191
198.44.253.192
198.44.253.193
198.44.253.194
198.44.253.195
198.44.253.196
198.44.253.197
198.44.253.198
198.44.253.199
198.44.253.200
198.44.253.201
198.44.253.202
198.44.253.203
198.44.253.204
198.44.253.205
198.44.253.206
198.44.253.207
198.44.253.208
198.44.253.209
198.44.253.210
198.44.253.211
198.44.253.212
198.44.253.213
198.44.253.214
198.44.253.215
198.44.253.216
198.44.253.217
198.44.253.218
198.44.253.219
198.44.253.220
198.44.253.221
198.44.253.222
198.44.253.223
198.44.253.224
198.44.253.225
198.44.253.226
198.44.253.227
198.44.253.228
198.44.253.229
198.44.253.230
198.44.253.231
198.44.253.232
198.44.253.233
198.44.253.234
198.44.253.235
198.44.253.236
198.44.253.237
198.44.253.238
198.44.253.239
198.44.253.240
198.44.253.241
198.44.253.242
198.44.253.243
198.44.253.244
198.44.253.245
198.44.253.246
198.44.253.247
198.44.253.248
198.44.253.249
198.44.253.250
198.44.253.251
198.44.253.252
198.44.253.253
198.44.253.254
一、最开始的网站架构 最初的架构,应用程序、数据库、文件都部署在一台服务器上。
二、应用、数据、文件分离 随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库、文件各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到最佳的性能效果。
三、利用缓存改善网站性能
在硬件优化性能的同时,同时也通过软件进行性能优化,在大部分的网站系统中,都会利用缓存技术改善系统的性能,使用缓存主要源于热点数据的存在,大部分网站访问都遵循28原则(即80%的访问请求,最终落在20%的数据上),所以我们可以对热点数据进行缓存,减少这些数据的访问路径,提高用户体验。
缓存实现常见的方式是本地缓存、分布式缓存。当然还有CDN、反向代理等,这个后面再讲。本地缓存,顾名思义是将数据缓存在应用服务器本地,可以存在内存中,也可以存在文件,OSCache就是常用的本地缓存组件。本地缓存的特点是速度快,但因为本地空间有限所以缓存数据量也有限。分布式缓存的特点是,可以缓存海量的数据,并且扩展非常容易,在门户类网站中常常被使用,速度按理没有本地缓存快,常用的分布式缓存是Memcached、Redis。
四、使用集群改善应用服务器性能 应用服务器作为网站的入口,会承担大量的请求,我们往往通过应用服务器集群来分担请求数。应用服务器前面部署负载均衡服务器调度用户请求,根据分发策略将请求分发到多个应用服务器节点。
常用的负载均衡技术硬件的有F5,价格比较贵,软件的有LVS、Nginx、HAProxy。LVS是四层负载均衡,根据目标地址和端口选择内部服务器,Nginx是七层负载均衡和
HAProxy支持四层、七层负载均衡,可以根据报文内容选择内部服务器,因此LVS分发路径优于Nginx和HAProxy,性能要高些,而Nginx和HAProxy则更具配置性,如可以用来做动静分离(根据请求报文特征,选择静态资源服务器还是应用服务器)。
五、数据库读写分离和分库分表 随着用户量的增加,数据库成为最大的瓶颈,改善数据库性能常用的手段是进行读写分离以及分表,读写分离顾名思义就是将数据库分为读库和写库,通过主备功能实现数据同步。分库分表则分为水平切分和垂直切分,水平切换则是对一个数据库特大的表进行拆分,例如用户表。垂直切分则是根据业务不同来切换,如用户业务、商品业务相关的表放在不同的数据库中。
六、使用CDN和反向代理提高网站性能?假如我们的服务器都部署在鸿网互联的佛山高防机房,对于广东的用户来说访问是较快的,而对于北京的用户访问是较慢的,这是由于广东和北京分别属于电信和联通的不同发达地区,北京用户访问需要通过互联路由器经过较长的路径才能访问到广东的服务器,返回路径也一样,所以数据传输时间比较长。对于这种情况,常常使用CDN解决,CDN将数据内容缓存到运营商的机房,用户访问时先从最近的运营商获取数据,这样大大减少了网络访问的路径。比较专业的CDN运营商有蓝汛、网宿等等
而反向代理,则是部署在网站的机房,当用户请求达到时首先访问反向代理服务器,反向代理服务器将缓存的数据返回给用户,如果没有没有缓存数据才会继续走应用服务器获取,也减少了获取数据的成本。反向代理有Squid,Nginx。?
七、使用分布式文件系统。用户一天天增加,业务量越来越大,产生的文件越来越多,单台的文件服务器已经不能满足需求。需要分布式的文件系统支撑。常用的分布式文件系统有NFS。
八、使用NoSql和搜索引擎。对于海量数据的查询,我们使用nosql数据库加上搜索引擎可以达到更好的性能。并不是所有的数据都要放在关系型数据中。常用的NOSQL有mongodb和redis,搜索引擎有lucene。
九、将应用服务器进行业务拆分。随着业务进一步扩展,应用程序变得非常臃肿,这时我们需要将应用程序进行业务拆分,如百度分为新闻、网页、图片等业务。每个业务应用负责相对独立的业务运作。业务之间通过消息进行通信或者同享数据库来实现。
十、搭建分布式服务。这时我们发现各个业务应用都会使用到一些基本的业务服务,例如用户服务、订单服务、支付服务、安全服务,这些服务是支撑各业务应用的基本要素。我们将这些服务抽取出来利用分部式服务框架搭建分布式服务。淘宝的Dubbo是一个不错的选择。
大型网站的架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些常规技术和手段。
阅读本文的人还阅读: