微服务-开篇-个人对微服务的理解

2023-11-10 17:15

本文主要是介绍微服务-开篇-个人对微服务的理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从吃饭说起

个人理解新事物的时候喜欢将天上飞的理念转换成平常生活中的实践,对比理解这些高大上的名词,才能让我们减少恐慌的同时加深理解。废话不多说,我们从吃饭开始说起,逐渐类比出微服务的思想。
(个人见解,帮助掌握概念,有不对的地方请大神指出)
在这里插入图片描述
小明有一家餐馆,一开始餐馆很小,只有小明一个人。自己既要炒菜也要端碗还要打扫卫生。不过由于餐馆小,顾客不多也能忙的过来。
(单机模式,应用的数据、代码等全部运行在一台服务器上)

小明的手艺很好,不长时间他的饭馆在邻居中获得了口碑,大家都去他那吃饭。小明很开心,但是他发现他自己忙不过来了。。。
(业务量大了之后,由于单机的性能限制,服务无法满足需求)

在这里插入图片描述

想了一下以后,他决定招一名服务员,帮他承担端碗打杂的活。
(将部分功能拆开,比如将数据库分离,前后端分离,只是简单的做了拆分,不涉及微服务思想)

又过了一段时间,小明发现自己还是忙不过来,而且服务员也抱怨自己又要接待客人又要端碗还要打扫卫生,忙不过来了。
(在高并发的场景下,依旧无法满足需求)
在这里插入图片描述
于是,小明想了一下决定,再招一名厨师帮自己,另外再招一名服务员分解压力。随着小明的饭店生意越来越好,顾客越来越多,小明不停的招员工。
(不停的添加服务器,业务上逐渐拆分的更加细化。符合微服务理念,但是缺少微服务管理模块,会出现新的问题)

但是,新的问题来了:

  1. 员工偷懒,迟到、早退、缺勤等情况严重,无法及时发现和处理,导致客人有时候来到饭馆吃不到饭。(服务注册与发现)
  2. 客人感觉每次来了之后招待,端碗都乱哄哄的,没有统一的管事的人,用餐体验差,客人期望有专人对接服务。(网关服务)
  3. 员工都抱怨自己很忙,但是效率确上不去。(服务调用,负载均衡)
  4. 有时候餐馆用餐的人太多,自己点了很久也不上菜,并且没有人出来解释。(服务降级,服务熔断)
  5. 有时候服务员A收过钱了,但是服务员B不知道,还会问客人收钱。(数据一致性)

以上问题引出了讨论的主题,微服务和微服务的主要工具模块

问题解决:

  1. 招聘专业管理者,管理员工签到请假早退等。(Eureka、Zookeeper、Consul、Nacos)
  2. 招聘接待人员,专门接待客人用餐,客人只与接待人员沟通即可。(Zuul、gateway)
  3. 招聘专人根据具体的规则给每个员工安排合适的工作量。(Ribbon、OpenFeign)
  4. 招聘专人,在饭店坐满或者某个厨师、服务员工作压力过大、或者某个菜卖完了的时候,及时给客人提示。(Hystrix、sentinel)
  5. 招聘专人负责数据一致性(seate)

另外,还有链路追踪、服务配置等内容。随着饭店的变大,小明可以继续将自己的饭店业务细化,比如厨房分为配菜、切菜、炒菜、面点等服务。服务员分为传菜、接待、前台等等。每一个服务需要其他服务的配合时就互相调用。但是不是一对一的调用,不是直接两个人直接找到对方。而是通过对方的经理,找到对应的负责人对接。这样所有的服务都相当于一个整体,内部由很多个单体组成,但是对外只有一个接口,由经理负责统一调度。

在这里插入图片描述

这些加在一起,可以保证小明的饭馆在管理上和服务上都满足客人的需求。也保证在客流量大的时候,整个饭店的运营不会出现故障。

目前引出了微服务架构的概念和主要应用工具,但是还感觉在天上飘着,没有脚踏实地的感觉,不着急,下一篇整理一下我对Springclound的理解。

这篇关于微服务-开篇-个人对微服务的理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384128

相关文章

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

springboot的调度服务与异步服务使用详解

《springboot的调度服务与异步服务使用详解》本文主要介绍了Java的ScheduledExecutorService接口和SpringBoot中如何使用调度线程池,包括核心参数、创建方式、自定... 目录1.调度服务1.1.JDK之ScheduledExecutorService1.2.spring

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客