开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
  1. Home
  2. Computer Science
  3. This article

面试问题之如何解释微服务

2023年09月21日 552Browse 0Like 0Comments

这次的面试还是感觉非常愉快,没有那么憋屈,问的问题也非常有意思。

问题

假设现在有一个人完全不懂微服务,你能和对方解释下什么是微服务吗?

 

 

面试回答

这个问题如果要完全回答好,感觉不是那么容易。

什么是微服务

很多人都知道现代的开发流程多是前后端分离,后端采用部署服务的方式来提供服务。

这种服务是可以根据业务来进行区分,也可以是根据架构来进行区分。

微服务指的是一种应用架构,其中的一系列独立服务通过轻量级 API 来进行通信。

上面是对微服务的比较书面化的解释,我觉得不太生动。

我们可以从微服务的进程来进行一些说明

传统的服务器模式

如你对计算机网站比较熟悉的话,我们知道我们可以部署一个 Apache 的服务器,然后部署一个 MySQL 的数据库。

加上你有一点 PHP 的编程基础,你的个人博客网站就开张了。

在这个时候,你的所有服务都在你的 PHP 代码中,包括前端,后端数据库通信,数据返回处理,查询,对象化等等,全部都在一套代码中。

很好,你的程序运行也非常不错。

可能是因为你的内容太受欢迎了,本来每天只有 10 个人访问的你网站,慢慢的每天你的网站有成千上万的人访问了。

这个时候你的 Apache 服务器已经没有办法承受这么大的访问量了,每天宕机好几次,需要重启。

数据库也经常性的进行锁表等情况。

因为访问的人多了,一些用户对网站的界面提出了很多的意见。

同时,你还开始推送手机的 APP 了。

这么多的问题都慢慢的出现了,我们应该怎么办呢?

前后端分离

这个时候,我们可能首先想到是前后端分离。

让前端只处理界面和数据返回展示,前端可以通过调用后端的 API 来获得前端需要的数据;同时,手机 APP 也可以调用后端的 API 来获得程序。

这个时候,后端就被独立成为了一个服务,前端也是一个服务。

前端会使用前端的框架,后端会使用后端的框架分别来对数据进行处理。

API 返回问题

所有的数据请求假设我们都用在一个 API 上的话。

举例来说,用户邮件查重,在用户对我们网站进行注册之前,我们需要对用户的邮件地址进行查询,如果你只有 几万个用户,别那么费劲了,数据库查下就好了。

如果你有上千万的用户,每次用户的注册都要从上千万的数据库进行查找,同时你的这个 API 还要返回用户的信息,密码,校验,还需要提供内容查询服务等功能。

每次用户注册登录都这样就会累死了,那我们能不能这样,把用户的相关 API 请求单独做成一个服务,通过这个服务部署到服务器上,并且使用不同的数据结构来提高用户数据查询效率。

业务拆分

通过上面的解释,我们可以对系统中的业务进行一些拆分。

把本来是一个大系统应该做的东西,我们分成很多小的系统来做,每一个小的服务只完成特定的功能,比如说一个服务只提供用户处理,一个服务只提供查询,一个服务只提供消息。

这样我们就把一个很大的系统逐步拆分成了各种服务。

这种系统设计就是我们常说的微服务了。

结论

通过上面的解释,应该对一个完全不了解微服务的人有一个基本上的概念了。

当然,整个过程是比较复杂的,通常会涉及到各种技术栈,比如说大数据处理,数据缓存,集群部署等等。

但是这整个的思路和架构,就是微服务需要实现的。

另外一个好处就是当某一个服务出现故障的时候,我们可以很快的进行切换,而不会影响整个系统的运行。

如果你不懂计算机的话,通过上面的解释能够理解什么是微服务了吗?

欢迎大家在后面留言。

 

https://www.isharkfly.com/t/topic/14994

Tags: None
Last updated:2023年09月21日

HoneyMoose

有温度的人文和独立的思考

Like
< Previous
Next >

Comments

Cancel reply

Archives
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,367)
    • Confluence (663)
    • Gradle (12)
  • U.S. (512)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1