后端开发需要了解的基本架构概念

后端开发需要了解的基本架构概念

在这里插入图片描述

用户的浏览器/客户端向DNS服务器发送请求查找请求地址,然后发送请求。请求先到达负载均服务,负载均衡服务会随机选择正在运行的服务来处理请求,业务服务从数据库(mysql)缓存(redis)全文检索数据服务(elasticsearch)检索数据并返回。如果请求是我们需要监听的业务服务(登录、下单等),将业务数据发送到作业队列,job服务器异步处理。

DNS

域名系统(Domain Name System 缩写 DNS)。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

例如:google.com对应的 IP 地址为 85.129.83.120。可以将 DNS 视为互联网的电话簿。

负载均衡

服务器负载均衡提供了水平扩展服务资源的能力。服务器负载均衡服务将传入的请求代理到一组应用程序服务器中的一个,这些应用程序服务器通常是彼此的克隆/镜像,并将来自应用程序服务器的响应发送回客户端。应用程序服务器中的任何一个都应该以相同的方式处理请求,因此只需将请求分布在一组服务器上,这样它们都不会超载。

水平扩展的好处 水平扩展允许您通过让每个应用程序后端(Web 服务器、数据库、X服务等)运行在不同的服务器上来最小化地耦合应用程序后端的不同部分。因为为了简单起见,东西会中断、服务器随机崩溃、网络退化、整个数据中心偶尔会离线、拥有多个服务器可以让您计划中断,以便您的应用程序继续运行。

应用服务器

应用服务器执行处理用户请求并将数据发送回客户端的核心业务逻辑。通常与各种后端基础设施进行通信,例如数据库、缓存层、作业队列、搜索服务、其他微服务、数据/日志队列等。

数据库

一般情况下每个程序都利用一个或多个数据库来存储信息。数据库提供了定义数据结构、插入新数据、查找现有数据、更新或删除现有数据、跨数据执行计算等的方法。在大多数情况下,Web 应用服务器与作业服务器直接对话。此外,每个后端服务都可能有自己的数据库,该数据库与应用程序的其余部分隔离。

缓存服务

缓存服务提供了一个简单的键/值数据存储,可以在接近 O(1) 的时间内保存和查找信息。应用程序通常利用缓存服务来保存昂贵计算的结果,以便可以从缓存中检索结果,而不是在下次需要时重新计算它们。应用程序可能会缓存来自数据库查询的结果、对外部服务的调用、给定 URL 的 HTML 等等。Google 会缓存“手机”或“电脑”等常见搜索查询的搜索结果,而不是每次都重新计算它们。两种目前最广泛使用的缓存服务器技术是 Redis 和 Memcache。

队列和调度任务

大多数程序需要在后台异步执行一些和响应请求没有直接关系的逻辑。例如商城业务下单的短信通知。最简单的是先进先出 (FIFO) 队列,每当应用程序需要运行作业时,无论是按某种常规计划还是由用户操作确定,它都会简单地将适当的作业添加到队列中。

数据检索服务

当系统数据量上了10亿、100亿条的时候,普通的数据库已经无法满足我们的需求,这就需要数据检索服务。目前主流的是elasticsearch一个分布式多用户能力的全文搜索引擎。它利用倒排索引快速查找包含查询关键字的文档。而且支持插件机制,分词插件、同步插件、Hadoop插件、可视化插件等。

CDN

CDN(内容分发网络)CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web后端开发需要学习以下内容: 1. 编程语言:常见的后端开发语言包括Java、Python、PHP、Ruby等,选择一门适合你的语言进行学习和实践。 2. 服务器端框架:掌握一种流行的服务器端框架,例如Spring(Java)、Django(Python)、Laravel(PHP)等,它们提供了快速构建Web应用程序的工具集。 3. 数据库:学习关系型数据库(如MySQL、PostgreSQL)或非关系型数据库(如MongoDB、Redis),了解数据库的基本概念和操作,以及如何设计和优化数据库模型。 4. HTTP和RESTful API:理解HTTP协议和RESTful架构,学会设计和构建符合RESTful风格的API,实现数据的增删改查。 5. 版本控制系统:使用Git等版本控制工具,管理代码的版本和协作开发。 6. 安全性和认证授权:了解常见的Web安全漏洞,学习如何处理用户认证和授权,保护用户数据和应用程序安全。 7. 软件架构和设计模式:熟悉常见的软件架构模式,如MVC、MVVM等,了解设计模式的原则和应用。 8. 缓存和性能优化:学习使用缓存技术来提高应用性能,了解性能优化的基本原则和方法。 9. API集成和第三方服务:掌握如何使用API集成其他服务,如支付、地图、社交媒体等。 10. 单元测试和自动化测试:学习编写单元测试和自动化测试的技巧,保证代码质量和稳定性。 以上是Web后端开发基本知识点,通过学习和实践,可以逐步提升自己的技能水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值