千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:西安千锋IT培训  >  技术干货  >  为什么要把web服务器和数据库服务器运行在不同机器上?

为什么要把web服务器和数据库服务器运行在不同机器上?

来源:千锋教育
发布人:xqq
时间: 2023-10-20 14:33:16

一、为什么要把web服务器和数据库服务器运行在不同机器上

硬件故障

基本上现在大型的软件都是搞分布式部署、分布式计算,生产环境最忌讳的就是单点故障,所以现在云计算、虚拟化得以大行其道,哪怕是一个简单的计算微服务,也应该最少要有2份以上的副本,而且较好是要求这些副本不同机器、不同机架甚至是不同的数据中心,这样在发生意外时另外有效的副本可以马上接上继续工作,一个简单的服务尚且如此,更何况是重量级的web服务器和数据库服务器,部署在同一台物理机器上是及其不合理的

软件定位

每个软件的专注的功能不同,必然导致它们对各种软硬件资源的利用效率不一样。web服务器主要是用来处理网络连接和资源请求的,因此要求就是高带宽,高并发,对CPU的要求其实不高,对内存的要求高,因为在这一层面需要缓存大量的信息以及线程池来追求速度,对磁盘IO要求不高,因此可以专门优化为大内存的多核服务器,结合具体使用的服务器(如Apache、Tomcat、Nginx等)做极致的优化,然而为web服务器所做的优化显然不适合数据库服务器。数据库服务器的主要职责是处理SQL语句,管理磁盘上存储的数据,要求大量的磁盘IO,对缓冲池要求极高,拿MySQL的Innodb引擎来讲,基本上较好内存的80%都分配给innodb_buffer_pool_size,用来缓存索引信息,磁盘脏页,临时表等,但是并发程度是远远低于web服务器的,比如对于一个秒杀系统而言,如果web服务器在1秒内收到了100万请求需要处理,而库存只有1万个,这时会落到数据库的请求就是非常多1万个,当然,生产环境中甚至不应该使用数据库来查这些实时数据。总结,web服务器和数据库服务器定位不同,优化点也不同,强行放一起会严重影响两者的性能

安全

一般企业的数据库都是部署在内网,端口不会开放的,以防止黑客攻击,只能通过内网跳板机去访问,由专业的DBA管理,而web服务器是开放的,容易造成误操作或者被攻击导致数据损坏什么的

延伸阅读:

二、MongoDB是什么

非关系型数据库(nosql ),属于文档型数据库。MongoDB采用类JSON的documents来存储数据。数据结构由键值(key=>value)对组成。

MongoDB采用动态数据模型schema,这意味着不需要预先定义表的数据类型和字段名。当MongoDB需要更新文档documents的时候,可以轻松增加新的字段名或者删除旧的字段。MongoDB让数据结构更加层级化,因而存储数组等复杂数据结构。 在同一个集合collection中,文档document对字段也没有强约束,因此更容易设计差异化的数据结构。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

在mysql中, 为什么只有右模糊才走索引?

2023-10-20

SQL语言中的ALTER和UPDATE,DROP和DELETE都有什么区别?

2023-10-20

一个大型的SNS网站,是否适合数据库全部用mongodb来做,为什么?

2023-10-20

最新文章NEW

为什么声明性语言往往适合于并行执行,命令代码很难在多个内核和多个机器之间并行化?

2023-10-20

MySQL多表关联查询效率高点还是多次单表查询效率高,为什么?

2023-10-20

jmeter性能测试步骤?

2023-10-20

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>