微服务_入门1

news2024/9/21 18:19:02

文章目录

  • 一、 认识微服务
  • 二、 微服务演变
    • 2.1、 单体架构
    • 2.2、 分布式架构
    • 2.3、 微服务
    • 2.4、 微服务方案对比
  • 三、 注册中心
    • 3.1、 Eureka
    • 3.2、 Nacos
      • 3.2.1、服务分级存储模型
      • 3.2.2、权重配置
      • 3.2.3、环境隔离

一、 认识微服务

在这里插入图片描述

二、 微服务演变

  随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。

2.1、 单体架构

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。
在这里插入图片描述
优点:

  • 架构简单
  • 部署成本低

缺点:

  • 耦合度高(维护困难、升级困难)

2.2、 分布式架构

分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。
在这里插入图片描述
优点:

  • 降低服务耦合
  • 有利于服务升级和拓展

缺点:

  • 服务调用关系错综复杂

2.3、 微服务

在这里插入图片描述
微服务的架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
  • 自治:团队独立、技术独立、数据独立,独立部署和交付
  • 面向服务:服务提供统一标准的接口,与语言和技术无关
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

  微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。

  因此,可以认为微服务是一种经过良好架构设计的分布式架构方案

2.4、 微服务方案对比

 
  但方案该怎么落地?选用什么样的技术栈?全球的互联网公司都在积极尝试自己的微服务落地方案。

在这里插入图片描述
  其中在Java领域最引人注目的就是SpringCloud提供的方案了。

  SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
 
在这里插入图片描述

三、 注册中心

3.1、 Eureka

 
eureka的作用:
 
消费者该如何获取服务提供者具体信息?

  • 服务提供者启动时向eureka注册自己的信息
  • eureka保存这些信息
  • 消费者根据服务名称向eureka拉取提供者信息(服务发现
     

如果有多个服务提供者,消费者该如何选择?

  • 服务消费者利用负载均衡算法,从服务列表中挑选一个

 
消费者如何感知服务提供者健康状态?

  • 服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态
  • eureka会更新记录服务列表信息,心跳不正常会被剔除
  • 消费者就可以拉取到最新的信息

3.2、 Nacos

  Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。
 
  Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说,并没有太大区别。

3.2.1、服务分级存储模型

 

一个服务可以有多个实例,例如一个服务可以有:

  • 127.0.0.1:8081
  • 127.0.0.1:8082
  • 127.0.0.1:8083

假如这些实例分布于全国各地的不同机房,例如:

  • 127.0.0.1:8081,在上海机房
  • 127.0.0.1:8082,在上海机房
  • 127.0.0.1:8083,在杭州机房

Nacos就将同一机房内的实例 划分为一个集群

也就是说,一个服务可以包含多个集群,如杭州、上海,每个集群下可以有多个实例,形成分级模型,如图(user_service是支撑用户信息的服务):

在这里插入图片描述

3.2.2、权重配置

 
NacosRule负载均衡策略:

  • 优先选择同集群服务实例列表
  • 本地集群找不到提供者,才去其它集群寻找,并且会报警告
  • 确定了可用实例列表后,再采用随机负载均衡挑选实例

实际部署中会出现这样的场景:
 
  服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。

  • Nacos控制台可以设置实例的权重值,0~1之间
  • 同集群内的多个实例,权重越高被访问的频率越高
  • 权重设置为0则完全不会被访问

3.2.3、环境隔离

 
Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离
 
在这里插入图片描述

  • nacos中可以有多个namespace
  • namespace下可以有group、service等
  • 不同namespace之间相互隔离,例如不同namespace的服务互相不可见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2152990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java项目实战II基于Java+Spring Boot+MySQL的洗衣店订单管理系统(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 随着生活节奏的加快,现代人对便捷、高效服务的需求日益增长,洗衣店作为日常生…

[Linux] Linux操作系统 进程的状态

标题:[Linux] Linux操作系统 进程的状态 个人主页:水墨不写bug (图片来源于网络) 目录 一、前置概念的理解 1.并行和并发 2.时间片 3.进程间具有独立性 4.等待的本质 正文开始: 在校的时候,你一定学过《…

【自然语言处理】补充:词项权重计算及向量空间模型

【自然语言处理】补充:词项权重计算及向量空间模型 文章目录 【自然语言处理】补充:词项权重计算及向量空间模型1. 排序式检索2. 词项频率3. tf-idf权重计算4. 向量空间模型1. 排序式检索 布尔检索的不足:结果过少或者过多 布尔查询常常会是过少(=0)或者过多(>1000)在…

Python “函数” ——Python面试100道实战题目练习,巩固知识、检查技术、成功就业

本文主要是作为Python中函数的一些题目,方便学习完Python的函数之后进行一些知识检验,感兴趣的小伙伴可以试一试,含选择题、判断题、实战题、填空题,答案在第五章。 在做题之前可以先学习或者温习一下Python的函数,推荐…

[Python数据可视化]探讨数据可视化的实际应用:三个案例分析

数据可视化是理解复杂数据集的重要工具,通过图形化的方法,可以直观地展示信息、趋势和模式。本文将深入探讨三个实际案例,包括健康数据分析、销售趋势分析、城市交通流量分析。每个案例将提供假设数据、详细注释的代码及分析结果。 案例 1: …

【PyTorch】Tensor(张量)介绍

Tensor 的概念 Tensor 中文为张量。张量的意思是一个多维数组,它是标量、向量、矩阵的高维扩展。 标量可以称为 0 维张量,向量可以称为 1 维张量,矩阵可以称为 2 维张量,RGB 图像可以表示 3 维张量。你可以把张量看作多维数组。 …

Redis作为单线程模型,为什么效率高、速度快呢?

前言: 效率高、速度快是相较于数据库来说的(MySQL、Orcale、SQL server) 文章目录 一、单线程模式的工作流程二、为什么快? 一、单线程模式的工作流程 这里我们所说的单线程是指:Redis只使用一个线程,来处…

PPP的配置

概述:PPP模式,即公私合作模式(Public-Private Partnership),是一种公共部门与私营部门合作的模式。 一、实验拓扑 实验一:PPP基本功能 实验步骤: (1)配置AR1的接口IP地…

xilinx hbm ip运用

AXI-HBM是一个集成的IP核,该核提供高达16个AXI3从PORT的HBM接口,每个使用他自己的独立的时钟。HBM2 GEN存储器也支持,HBM相对传统DDR的方案,带宽得到极大的提高 特征 AXI3从端口存储器接口 -16个独立的256bit存储器接口 -可选的…

国标视频流媒体服务GB28181和Ehome等多协议接入的Liveweb方案详解

Liveweb视频融合/汇聚云平台基于“云-边-端”一体化架构,部署轻量简单、功能灵活多样,平台可支持多协议(GB28181/RTSP/Onvif/海康SDK/Ehome/大华SDK/RTMP推流等)、多类型设备接入(IPC/NVR/监控平台),在视频能力上&…

企业文档管理系统哪个好?2024年热门的10款文档管理系统软件推荐

在信息化时代,企业每天都会生成海量的文档、数据和资料。 如何有效管理这些文档,确保信息安全、版本控制和协同办公顺畅,是每个企业都必须面对的挑战。 2024年,随着技术的不断进步,市场上涌现出了众多优秀的文档管理…

STM32如何修改外部晶振频率和主频

对于STM32F10x系列的单片机,除了STM32F10x_CL单片机,其它的单片机一般外部晶振HSE的时钟频率都默认是8MHz。如果我们使用的外部晶振为12Mhz,那么可以把上图绿色标记改为:12000000 72MHz的主频8MHz的外部晶振HSE*倍频系数9。当然如果像上面把外…

ChatGPT 在国内使用的方法

AI如今很强大,聊聊天、写论文、搞翻译、写代码、写文案、审合同等等,ChatGPT 真是无所不能~ 作为一款出色的大语言模型,ChatGPT 实现了人类般的对话交流,最主要是能根据上下文进行互动。 接下来,我将介绍 ChatGPT 在国…

Android-UI设计

控件 控件是用户与应用交互的元素。常见的控件包括: 按钮 (Button):用于执行动作。文本框 (EditText):让用户输入文本。复选框 (CheckBox):允许用户选择或取消选择某个选项。单选按钮 (RadioButton):用于在多个选项中…

『功能项目』QFrameWorkBug关联Slot(插槽)【67】

我们打开上一篇66QFrameWorkBug拖拽功能的项目, 本章要做的事情是关联插槽Slot 修改脚本:UISlot.cs 修改脚本:UGUICanvas.cs 此时关联Slot已经完成 接下来的文章内容: 1.QFrameWork扔到地上UGUI 2.位置存储功能 3.点击名称寻…

IBM Spectrum LSF 用户基础

获取 IBM Spectrum LSF 工作负载管理概念和操作的概述。 1、IBM Spectrum LSF 概述 LSF 如何满足您的作业需求并找到运行该作业的最佳资源。 - IBM Spectrum LSF IBM Spectrum LSF (“LSF” ,简称为负载共享设施) 软件是业界领先的企业级软件。 LSF 在现有异构 I…

【C++】内联函数(inline function)详解

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:C_小米里的大麦的博客-CSDN博客 🎁代码托管:C: 探索C编程精髓,打造高效代码仓库 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、前言 语法: 在函数定义前加上关键字 inli…

2024华为杯研赛数学建模E题分析

2024华为杯数学建模E题分析如下,完整版本可查看最下方名片

基于SSM+Vue+MySQL的家教服务管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着现代社会对教育质量要求的不断提升,家教行业迎来了前所未有的发展机遇。然而,家教市场也面临着信息不对称、管理不规范、匹配效率低等挑战。为了解决这些问题,提高家教服务的质量和效率&a…

【Python】Anaconda插件:Sublime Text中的Python开发利器

上班的时候没人问我苦不苦,下班的时候总有人问为什么走这么早。 Anaconda 是一个专为Sublime Text打造的开源Python开发插件,旨在为开发者提供类似于IDE的丰富功能,提升Python编码效率。该插件提供了代码补全、语法检查、代码片段提示等多项…