关于后端技术介绍

写在开篇:本内容根据B站BV1hH4y1n7b4记录笔记

仅用于个人学习,如有侵扰,联系删除


目录

创建后端服务器需要的技术

数据库(存储和管理网站的数据,与服务器连接)

云计算

基础设施

平台即服务

微服务

最后介绍一些可能在后端看到的其他技术


两台计算机可以通过互联网进行连接,发送消息。

其中发送消息的计算机称为客户端,接收消息的计算机称为服务器。

为使计算机能够称为服务器并允许其接收消息,可以使用后端编程语言。

创建后端服务器需要的技术

流行的后端编程语言:

JavaScript(也称为Node js)、Python、Ruby、Java

但是单独使用这些语言非常困难,且需要大量代码——因此使用两种工具帮助解决此问题。

后端框架(Backend Framework)和包管理器(Package Manager)。

后端框架:帮助我们更轻松地创建服务器并且使用更少的代码。每种后端编程语言都有几种不同的框架可供选择。

包管理器:我们可以使用许多他人编写的称为包的代码来执行常见任务,例如:计算,与数据库通信,以及设置用户登录和身份验证。为了安装和管理所有这些包,则用到了包管理器。每种语言都有自己的包管理器。

语言

后端框架包管理器
JavaScriptExpress JSNPM
PythonDjangoPIP
RubyRailsbundler
JavaSpringMaven

数据库(存储和管理网站的数据,与服务器连接)

MySQL、PostgreSQL、MongoDB

当客户在前端下订单时,前端会向后端发送包括订单的消息。然后,后端讲订单保存到数据库,并向前端发回一条消息,确认订单已创建。

前端发送到后端的消息称为请求(request),后端发回的消息称为响应(response),这称为请求响应周期。这通常是Web应用程序的工作方式。

另外一个例子,假如您在系统仓库中,仓库可能有不同的前端,它向后端发送请求以获得我们的订单,然后后端从数据库中获取我们的订单并将其发送回仓库前端,之后他们继续准备我们的订单。

亚马逊为例,该公司购买了域名amazon.com,并对其进行了配置,以便任何前往amazon.com的请求都将被重定向到其办公楼中的该服务器。

后端允许的所有不同类型的请求的列表称为API应用程序编程接口。

POST https://amazon.com/orders——识别请求

类型(POST):

post:创建一些东西,用于创建新的资源或提交数据到服务器进行处理。post/orders意味着创建一个订单。

get:或许一些东西。

put:提供整个资源的新版本,通常用于更新或替换服务器上的资源。

delete:删除一些东西。

URL路径(/orders):有一个请求的命名约定,此约定称为剩余表征状态转移(RESTRespresentational State Transfer)。

REST命名约定的API称为REST api,即上述api含义。这也是我们用于API的最常见约定。

除此之外,还可以使用GraphQL(使用Post/GraphQL来处理我们的所有请求),rpc(remote procedure call,使用post和更详细的D URL路径,如POST/createOrder,POST/getOrderHistory)

云计算

基础设施

公司不是购买自己的计算机来运行网站,而是从云计算公司租用计算机。

最大的云计算公司是Amazon Web Services(AWS),Google Cloud Platform(GCP),Mrcrosoft Azure。

云计算的基本思想是租用一堆计算机,即IAS基础设施作为服务。

在幕后,AWS有一个巨大的强大的计算机,在它软件内部,运行着许多较小的计算机,我们实际上租用了其中一台较小的计算机,而这些较小的计算机只存在于这些软件中,所以我们称之为虚拟机或虚拟器。因此,为了运行我们的网站,我们从AWS租用了一个虚拟机来运行我们的后端(VM JS),我们还租用了另一个虚拟机来运行我们的数据库(VM database)。

我们必须解决的另一个问题是,如果我们的网站在假期期间非常受欢迎,并且我们开始收到服务器无法处理的大量请求和互联网流量,该怎么办?通过云计算,我们可以设置多个运行这些相同后端代码的虚拟机,然后在它们前面设置一个特殊的虚拟机,称为负载均衡器

负载均衡器将在我们的虚拟机之间均匀分配请求,假期结束后,我们可以在不需要虚拟机时关闭它们。这比购买物理计算机要方便得多,因为请求高发期结束后物理计算机资源将会被浪费掉。

平台即服务

但现在还有一个问题,我们现在有很多虚拟机需要创建和设置,这将花费大量的时间精力。云计算公司提供另一种称为PAs(PaaS)的服务。作为一种服务,PAs只是让我们上传后端代码,它将设置所有虚拟机包括负载均衡器,并为我们集成一切。

三种最流行的方式是适用于AWS的Elastic Beanstalk,适用于GCP的App Engine,适用于Microsoft Azure的App Service。

微服务

以亚马逊为例,假设后端包含将订单保存到数据库(Saves orders)、向用户的信用卡收费(Charges credit cards)、发送电子邮件确认(Sends emails)的代码。在现实世界中,这个后端可能有数百万行代码,所以我们将其分为三个代码库。然而每个代码库都有自己的后端,每个后端都有负载均衡器,有时还有自己的数据库。

当我们需要发送电子邮件时,我们的订单后端将向电子邮件后端发送请求,电子邮件后端将发送电子邮件。因此像这样将后端再细分的方式称为微服务,它有助于是我们的代码库更小更集中。每个微服务不必使用相同的编程语言和数据库。一个微服务可以使用JavaScript和MongoDB,而另一个微服务可以使用Python和MySQL。现在为了让这一切变得更加容易,像Twilio这样的公司已经创建了电子邮件服务。因此Twilio提供了一个后端和一个用于发送电子邮件的API。因此我们的后端无需创建自己的电子邮件微服务,只需向Twilio的后端发送请求即可。

当一家公司提供外部应用程序可以使用的后端和API时,这称为SaaS(软件即服务)。您在后端要做的几乎所有事情都很复杂,因此当一家SaaS公司提供了该项服务时,你可以直接使用该服务,而不必构建自己的微服务。

所以我们刚才看到的这三个概念:基础设施即服务(IaaS),平台即服务(PaaS),软件即服务(SaaS)是云计算的三个基础。

如今大多数公司使用云计算来运行其网络的后端,而不是自己购买和管理物理服务器。

最后介绍一些可能在后端看到的其他技术

之前我们提到了数据库:MySQL、PostgresSQL和MongoDB,这些有时被称为主数据库,因为它们是网站使用的主要数据库。

一般来说我们从服务器和主数据库开始我们的后端,然后在需要时引入一些附加技术。

例如:

如果我们允许用户上传图像,主数据库不适合存储图像,我们将使用aws、s3等Blob存储,和CloudFront等CDN来存储和加载用户上传的图像。

如果我们想要允许文本搜索,主数据库在这方面非常慢,因此我们会引入像Elastic Search这样的搜索数据库。

如果我们的网站流量很大并需要减轻主数据库的压力,我们会添加像Redis这样的缓存来提高性能。

如果我们想做数据科学,不想使用主数据库进行数据分析(因为我们的网站正忙于运行),我们会将所有数据复制到像Snowflake这样的分析数据库中,这对于兼职数据科学非常有用。

如果你想稍后安排任务,如亚马逊可能希望在续订Amazon Prime订阅之前向用户发送电子邮件,我们将使用像Rabbit MQ这样的作业队列来安排将来的任务。

并且还有更多类似的技术是为了解决特定问题而设计的。

以上即本文介绍的所有后端技术。

  • 35
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值