后端开发需要了解的基本架构概念
Posted sugarCYF
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后端开发需要了解的基本架构概念相关的知识,希望对你有一定的参考价值。
后端开发需要了解的基本架构概念
用户的浏览器/客户端向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的关键技术主要有内容存储和分发技术。
以上是关于后端开发需要了解的基本架构概念的主要内容,如果未能解决你的问题,请参考以下文章