2022,初步详细了解后端


在这里插入图片描述

前言

本人知识有限,有错误的地方欢迎指正交流❤️❤️❤️

什么是后端?
请添加图片描述

打开百度百科
在这里插入图片描述
哦,放错了,再来,且慢,细看,最终处置,依稀有点东西了,后端,字面意思就是后面处置,最终处置,那是的么?
再来看一下后端工程师~

在这里插入图片描述

在这里插入图片描述

百度百科–后端工程师(点击进入)

请添加图片描述
平台设计,接口设计,这些名词都是什么东东?先往后看吧,,,


网页实例

首先,我们这学期学了一门课程,叫web前端,学完后我好像知道了,前端就是各种页面的设计,比如下面这个图,也就是呈现在我们眼前的东西就是前端,前端也就是给用户看的,
在这里插入图片描述
打开控制台,查看元素,这熟悉的代码标签,,,

在这里插入图片描述
但是,通过代码展示的网页是怎么制作的,这里涉及到上网原理,也就是计网,由于主题是后端,就不展开细说了,(实际暂时也说不清楚计网,不太会😏)我们看到的这些信息,数据,一部分是存在本地中,你自己的电子设备,一部分则是存在后端,
当我把网关了,,,看!
在这里插入图片描述
也就是说,我访问csdn页面,这个网页数据是在后端,不是在本地,

但是给我展示的这个页面数据应该在本地,

下学期我们要学一门课程叫数据库,这个学期我们知道,通过HTTP协议,前端和服务器交互,那么搜索了一下,后端程序员需要编写API接口(API接口(函数)不重复造轮子,例如小A需要访问一个网页X里的Y,Y只需要将接口给X),把后端数据放到数据库中
在这里插入图片描述

百度百科–数据库(点击进入)
在这里插入图片描述

百度百科–服务器(点击进入)

通常,我们将诸如文档,图片,视频这些存储在硬盘中的永久性数据称为静态数据,将诸如程序运行过程中,动态产生的存储在内存中的临时数据称为动态数据。
//此处参考了 这篇CSDN文章(点击进入)

如果画个图应该是这个亚子

API接口
本地数据/静态数据
后端
数据库
API接口
后端
静态数据+动态数据
数据库

百度百科–API(点击进入)


细入之系统架构和服务器

请添加图片描述

//此处借鉴了这篇CSDN文章(点击进入)
系统架构
1.单体架构:前端+中间业务逻辑层+数据库层
2.分布式架构(多个业务模块):中间层分布式+数据库分布式
分布式数据库:redis,ES,solor等,通过LVS/Nginx代理应用,将用户请求均衡的负载到不同的服务器上。
3.微服务架构:主要是中间层分解,将系统拆分成很多小应用,微服务可以部署在不同的服务器上,也可以部署在相同的服务器不同的容器上。
4.serverless架构
只需引用一个API库文件就可以使用标准REST API各种接口对数据进行读写操作,只需编写HTML+CSS+JavaScript前端代码,不需要服务器端代码

服务器
1.IIS服务器 百度百科–ISSweb服务器(点击进入)
2.Tomcat服务器 百度百科–tomcat(点击进入)
3.Apache 百度百科-Apache(点击进入)
4.Nginx 百度百科–Nginx(点击进入)


后端工作(含小结)

请添加图片描述

由前面内容可知,后端简言之是用好一系列软件处理数据,数据有静态数据和动态数据之分,像图片,视频在本地的为静态数据,需要联网下载的数据为动态数据,用户通过HTTP协议访问服务器(硬件),常见服务器,IIS(Windows系统),Tomcat,Apache(Linux,windows),Nginx,服务器上有数据库这些软件,常见数据库有:关系型:SQLite,Oracle,Mysql,非关系型:MongoDb,redis,HBase,那么,在后端工程师是干什么?
//借鉴了这篇博客点击进入

HTTP
客户端请求
服务器
负载均衡LB
内部API返回数据

***微服务 - 也被称为微服务架构 - 一种将整个后端服务,按照领域、模块分解为若干独立小应用的一种架构方式。

***Thrift 使用一种被称为 IDL 的接口定义语言,来定义远程调用的接口。

***Consul是基于GO语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。

***各个大厂几乎都自研自己的微服务框架,但是基本的做法都是在开源社区选择一部分,自己扩展一部分,例如通讯协议和RPC选择Thrift,服务注册中心选 Zookeeper/Consul,然后需要自研扩展的部分就是例如服务注册,服务发现,负载均衡,统一监控,鉴权等公司特色的需求。

***对于一个小公司而言,可能会选择把所有数据保存在 Mysql 中,因为全部业务数据的容量可能也只有百G。大厂每天产生的业务数据异常的大,Mysql存储超过几千万性能会下降,所以需要使用分库分表的方式来解决海量数据场景下的存储问题。

***Mycat就是一个解决数据库分库分表等问题的数据库中间件,也可以理解为是数据库代理。Mycat的三大功能:分表、读写分离、主从切换。

***大厂场景往往是拥有海量需要索引的数据,同时要支持在线构建索引文件和灾备能力,在开源社区中 Elastic Search 就是非常好的选择之一,ES 底层也是基于 Lucene,但是它提供分布式的文档存储引擎,分布式的搜索引擎和分析引擎,支持PB级数据。

***几乎所有大厂都有属于自己的KV-DB,例如360开源的Pika,饿了么通过购买Tikv封装而成Ekv,字节跳动的 Abase。Pika 和 Tikv在存储底层都使用了RocksDB作为数据存储,而RocksDB它是将数据存储在硬盘上的,Pika 和Tikv在上层构建的都是集群化方案,主从模式等,基于内存的一致性Cache等。

***RocketMQ是一款分布式、队列模型的消息中间件,是由阿里巴巴设计的,经过多次双十一流量洪峰的洗礼,让它更有光环效应;RocketMQ是纯java编写,基于通信框架Netty这也让它拥有更好的社区基础和可改造的空间。相比于Kafka,RocketMQ支持很多业务友好的特性,具有以下特点:
支持严格的消息顺序,支持Topic与Queue两种模式,亿级消息堆积能力,比较友好的分布式特性,同时支持Push与Pull方式消费消息

后面有时间在去了解一下代码
看完点个赞吧
请添加图片描述


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尾迹双冒号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值