前言
从今天开始系统学习 Docker 课程,总结下 Docker 是什么,用来做什么,架构是怎样的。
注:(1)当浏览器 / APP访问服务器时,如果服务器适用的时 http 协议,那么默认端口时80,如果服务器适用的时 https 协议,那么默认端口是443。
(2)DNS 服务器做的工作:比如访问 www.taobao.com,这只是一个域名,但是如果要在网络中找到一个资源 / 服务器,需要知道 IP才可,DNS就是将这个 域名转化成 IP 地址的。
1. 简介
单机架构:就是将应用服务和数据库服务以及其他服务全部部署到一台服务器上,此时这台服务器就相当于一个单个的机器,所以称为单机架构。
2. 出现原因
在互联网早期,用户量都是比较小的,所以没有很多的访问量,此时一个单机架构就可以满足需求,因为一台服务器的各种资源都是有限的,
3. 架构工作原理
如下图所示:假设一个用户在客户端上用浏览器访问淘宝网站,此时访问 www.taobao.com 是不能直接在网络中找到这台服务器的,首先要经过 DNS 域名解析服务器,之后这个 DNS 服务器返回给浏览器一个 IP 地址,这个IP地址就相当于服务器的门牌号一样,之后浏览器才可以找到这个淘宝的服务器,假设就用 http 协议进行访问,此时默认端口就是 80,因为一个端口就对应着一个进程,一个进程就是一个服务,这个服务绑定了80端口,这个淘宝服务中有:用户,商品,交易 这么多的模块,用户模块用来负责用户的登录和注册,商品负责商品的录入和浏览,交易模块用来下单和购买,整体构成了淘宝这个服务,然后所有的数据都存到数据库中,数据库中有用户表,商品表,交易表.......
单机架构:就是将上述的服务都部署在一台服务器上,此时这种架构就被称为单机架构。
4. 技术案例
还是以淘宝这个服务为例,用户访问了淘宝这个网站之后,服务器首先需要查一下该网站内有哪些商品,此时淘宝就在对应的数据库中查一下所有的商品,数据库查到商品信息之后,就返回给应用,应用拿到这些数据之后,服务不用经过DNS服务器了再返回给浏览器了,DNS 只是再开始的时候告诉浏览器的IP(服务器的门牌号),之后用户的浏览器就可以直接和淘宝服务器之后进行通信了,之后前端再把这些数据渲染成页面的形式展现给用户。这个就是单机架构的工作原理。
如下图所示:此时就是一个具体的实例应用,下图中的 tomcat 对应着上图服务的三个模块,三个应用中就是写的 Java 的代码,代码以应用 / 服务 的形式对外提供服务,在 tomcat 组件中运行,数据库可以是 MySQL,也可以是其他的数据库。
5. 架构优缺点
优点:1. 部署简单,因为所有的服务都是在一台服务器中。
2. 成本低,只需要一台服务器即可,不够购买更多的服务器。
缺点:1. 存在性能瓶颈,因为一个服务器以及拥有的内存都是有限的,如果访问量很大的话服 务器会崩溃 / 宕机。
2. 正因为一台服务器的内存是有限的,如果服务器只有很少的内存,但是服务和数据库 需要的内存很大,此时就会进行资源的抢占,就出现访问网站的时候需要一直等待。