技术架构-单机架构

news2024/10/5 23:26:56

前言

    从今天开始系统学习 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. 正因为一台服务器的内存是有限的,如果服务器只有很少的内存,但是服务和数据库                        需要的内存很大,此时就会进行资源的抢占,就出现访问网站的时候需要一直等待。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1196885.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode【33】搜索旋转排序数组

题目&#xff1a; 思路&#xff1a; https://www.cnblogs.com/CherryTab/p/12196580.html 代码&#xff1a; class Solution {int [] nums;int target;public int find_rotate_index(int left, int right) {if (nums[left] < nums[right])return 0;while (left < righ…

C语言实现写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度

完整代码&#xff1a; // 写一个函数&#xff0c;求一个字符串的长度&#xff0c;在main函数中输入字符串&#xff0c;并输出其长度 #include<stdio.h> //字符串最大长度 #define N 100 int strlen(char *str){int i0;//字符串结尾为‘\0’while (*str!\0){i;//指针移动…

drawio连接线使用技巧和功能大全

drawio连接线使用技巧和功能大全 drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址draw.io或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能&#xff0c;并实现了…

[游戏中的图形学实时渲染技术] Part1 实时阴影技术

原理篇&#xff1a; 常见的渲染方程如下&#xff1a; 在不考虑自发光项与考虑阴影对于着色结果的影响之后可以将方程变化为如下形式&#xff1a; 如果射线在到达光源前击中了其他物体时&#xff0c;就认为这条来自光源的光线对着色点没有贡献。 利用上述渲染方程进行正确的着…

基于springboot的教学在线作业管理系统(源码+调试)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

一文图解爬虫(spider)

—引导语 互联网&#xff08;Internet&#xff09;进化到今天&#xff0c;已然成为爬虫&#xff08;Spider&#xff09;编制的天下。从个体升级为组合、从组合联结为网络。因为有爬虫&#xff0c;我们可以更迅速地触达新鲜“网事”。 那么爬虫究竟如何工作的呢&#xff1f;允许…

补坑:Java的字符串String类(1)

常用方法 字符串构造 来看看源码里面String的构造方法 普通字符串 //"hello" 是字符串常量&#xff0c;没有\0标记结尾String str "hello";System.out.println(str);//helloString str2 new String();System.out.println(str2);//没有输出String str3…

摊位展示预约小程序的作用有哪些

无论市场还是街边&#xff0c;小摊小贩往往很多&#xff0c;组成了丰富多彩的线下购物环境&#xff0c;而在实际发展中&#xff0c;摊位的需求度很高&#xff0c;但由于种种原因&#xff0c;导致在实际发展中&#xff0c;也有一定难题&#xff1a; 1、摊位预约难、信息查看难 …

IDEA的优化配置教程

前言 IDEA 全称 IntelliJ IDEA&#xff0c;是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具&#xff0c;尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以…

多门店民宿预定系统酒店预订管理系统源码/公寓/农家乐小程序源码

技术栈&#xff1a; thinkphpuniappmysql 支持H5APP小程序 主要功能介绍&#xff1a; 在线预订 支持在线支付或到店付&#xff0c;支持配置免费取消订单时长&#xff0c;支持到店付保留时长设置 房间搜索 支持按日期搜索房间状态&#xff0c;支持按日期区间搜索房间状态…

Python tkinter库利用Scrollbar对象实现Text组件右侧滚动条

在Python的Tkinter中&#xff0c;可以使用Scrollbar来实现Text组件的上下滑动。首先&#xff0c;需要创建一个Scrollbar对象并将其与Text组件绑定&#xff0c;然后将Scrollbar放置在Text组件的右侧&#xff0c;使其能够控制Text组件的上下滑动。 运行结果 以下是一个简单的示例…

Postman常见报错与解决方法,持续更新~

postman中文文档 基本操作&#xff1a;从控制台查看请求报错 如果 Postman 无法发送你的请求&#xff0c;或者如果它没有收到你发送请求的 API 的响应&#xff0c;你将收到一条错误消息。此消息将包含问题概述和指向控制台的链接&#xff0c;你可以在其中访问有关请求的详细信…

SmargGBD(GB28181设备接入模块)如何对接wvp-gb28181-pro

技术背景 我们在对接SmartGBD&#xff08;GB28181设备接入模块&#xff09;的时候&#xff0c;除了常规的海康大华宇视等国标平台外&#xff0c;有些公司会选择wvp-gb28181-pro。 众所周知&#xff0c;WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的开箱即用的网络视频…

SAMBA文件共享与DNS域名服务

一、SAMBA文件共享 1、什么是SAMBA SMB&#xff08;Server Message Block&#xff09;协议实现文件共享&#xff0c;也称为CIFS&#xff08;Common Internet File System &#xff09; 是Windows和类Unix系统之间共享文件的一种协议 客户端主要是Windows&#xff1b;支持多…

openGauss学习笔记-120 openGauss 数据库管理-设置密态等值查询-概述及使用gsql操作密态数据库

文章目录 openGauss学习笔记-120 openGauss 数据库管理-设置密态等值查询-概述及使用gsql操作密态数据库120.1 密态等值查询概述120.2 使用gsql操作密态数据库 openGauss学习笔记-120 openGauss 数据库管理-设置密态等值查询-概述及使用gsql操作密态数据库 120.1 密态等值查询…

【dbeaver】添加mysql高低版本选择驱动

添加mysql高低版本选择驱动 连接到数据库->全部->查询mysql MySQL 版本驱动 8.0 MySQL 5 版本驱动 5.7.x 其他需要就&#xff1a;https://downloads.mysql.com/archives/c-j/ 密码查看 项目设置密码&#xff1a; File -> Project security ->设置密码 It i…

可视化 | echarts饼图改编

echarts模板来源 &#x1f4da;改编点 &#x1f407;基本样式 去掉legend、label&#xff1a;show: false背景透明&#xff1a;backgroundColor: "transparent"去除功能标签添加载入动态animationEasing: elasticOut, animationDelay: function (idx) {return Mat…

Mac安装与配置eclipse

目录 一、安装Java&#xff1a;Mac环境配置&#xff08;Java&#xff09;----使用bash_profile进行配置&#xff08;附下载地址&#xff09; 二、下载和安装eclipse 1、进入eclipse的官网 (1)、点击“Download Packages ”​编辑 (2)、找到macOS选择符合自己电脑的框架选项…

安全框架SpringSecurity-1(认证入门数据库授权)

一、Spring Security ①&#xff1a;什么是Spring Security Spring Security是一个能够为基于Spring的企业应用系统提供声明式&#xff08;注解&#xff09;的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean&#xff0c;充分利用了Spring …

Linux-vi/vim命令

1.vim/vi编辑器的三种工作模式 ①命令模式 ②输入模式 i打开 ③底线命令模式 :打开 2.命令模式 vi 文件路径 vim 文件路径 如果文件不存在则创建新的文件&#xff0c;存在则使用vi/vim打开 3.快捷键 模式命令描述命令模式i在当前光标位置进入输入模式命令模式a在当前光标位置之…