1 认识微服务

news2024/11/24 12:46:56

1.认识微服务

随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?

1.0.学习目标

了解微服务架构的优缺点

1.1.单体架构

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。

在这里插入图片描述

单体架构的优缺点如下:

优点:

  • 架构简单
  • 部署成本低

缺点:

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

1.2.分布式架构

分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。

在这里插入图片描述

分布式架构的优缺点:

优点:

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

缺点:

  • 服务调用关系错综复杂

分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:

  • 服务拆分的粒度如何界定?
  • 服务之间如何调用?
  • 服务的调用关系如何管理?

人们需要制定一套行之有效的标准来约束分布式架构。

1.3.微服务

微服务的架构特征:

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

在这里插入图片描述

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

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

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

其中在Java领域最引人注目的就是SpringCloud提供的方案了。

1.4.SpringCloud

SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud。

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

其中常见的组件包括:

在这里插入图片描述

另外,SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系,如下:

在这里插入图片描述

我们课堂学习的版本是 Hoxton.SR10,因此对应的SpringBoot版本是2.3.x版本。

1.5.总结

  • 单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统

  • 分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝

  • 微服务:一种良好的分布式架构方案

    ①优点:拆分粒度更小、服务更独立、耦合度更低

    ②缺点:架构非常复杂,运维、监控、部署难度提高

  • SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件

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

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

相关文章

Checklist系列:MySQL自检五十五问,万字整理,推荐收藏

🚀最近也打算整理一波已经学过的知识,名字已经想好了就叫《CheckList》系列,以后需要用到的时候也可以拿出来看。问题来源于网上常见的面试题,问题的答案多以官网为主,每个问题我都贴了链接,觉得我写的不清…

Flink中的容错机制

一.容错机制 在Flink中,有一套完整的容错机制来保证故障后的恢复,其中最重要的就是检查点。 1.1 检查点(Checkpoint) 在流处理中,我们可以用存档读档的思路,将之前某个时间点的所有状态保存下来&#xf…

世微AP2915宽电压无MOS管切换双色灯性价比方案

1:产品描述 AP2915 是一款可以一路灯串切换两路灯串的降压恒流驱动器,高效率、外围简单、内置功率管,适用于 5-100V 输入的高精度降压 LED 恒流驱动芯片。内置功率管输出功率可达 12W,电流 1.2A。AP2915 一路灯亮切换两路灯亮,其…

外包干了一个月,技术退步明显。。。。。

先说一下自己的情况,本科生,19年通过校招进入南京某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

【GitHub项目推荐--不错的 C++开源项目】【转载】

01 C 那些事 这是一个适合初学者从入门到进阶的仓库,解决了面试者与学习者想要深入 C及如何入坑 C的问题。 除此之外,本仓库拓展了更加深入的源码分析,多线程并发等的知识,是一个比较全面的 C 学习从入门到进阶提升的仓库。…

用Axure RP 9制作弹出框

制作流程 1.准备文本框 下拉列表 按钮 动态面板 如图 2.先把下拉列表放好 再放动态面板覆盖 3.点动态面板 进入界面 如图 4.给按钮添加交互 3个按钮一样的 如图 5.提交按钮添加交互 如图

PyCharm安装PyQt5及工具Qt Designer程序UI界面的实现工具

1. 工具包安装 对于一个新创建的Python环境,首先需要安装PyQt的相关工具包,因为是Python的依赖包所有可以通过pip进行安装,由于我们在PyCharm中进行程序设计,这里我们可以通过PyCharm中的环境管理界面进行安装。 点击菜单栏“Fi…

Day 28 | 回溯 93.复原IP地址 、78.子集 、 90.子集II

93.复原IP地址 题目 文章讲解 视频讲解 思路&#xff1a;每轮开始的位置需要变化就需要设置start class Solution {List<String> result new ArrayList<>();public List<String> restoreIpAddresses(String s) {if (s.length() < 4 ||s.length() >…

[MySQL]基础的增删改查

目录 1.前置介绍 2.数据库操作 2.1显示当前数据库 2.2创建数据库 2.3 使用数据库 2.4 删除数据库 3.常用数据类型 3.1整型和浮点型 3.2字符串类型 4.表的操作 4.1查看表结构 4.2创建表 4.3删除表 5.重点 5.1操作数据库 5.2常用数据类型 5.3操作表 1.前置介绍 …

Python with Office 054 - Work with Word - 7-9 插入图像 (3)

近日详细学习了寒冰老师的很好的书《让Python遇上Office》&#xff0c;总结了系列视频。 这个是其中的一集&#xff1a;如何在Word中插入图像&#xff0c;我会陆续分享其他的视频并加上相应说明 https://www.ixigua.com/7319498175104942643?logTage9d15418663166a05d10

社区公益培训系统功能说明

社区公益培训系统功能说明 本系统将用于社区面向居民开展的公益培训课程展示&#xff0c;在线报名&#xff0c;并按班级排课上课&#xff0c;上课时学员要扫码签到&#xff0c;经常旷课的学员将禁止再报名其他课程。 1. 用户注册与登录 - 提供用户注册和登录功能&#xff0c;…

linux的kali安装,换源,更新包

下载kali kali.org进入官网后点第二个 然后点第一个 解压kali 下载后获得.7z压缩包&#xff0c;建议移动到合适自己电脑的位置进行解压&#xff0c;我喜欢放在D盘 启动kali 双击进入解压出的文件夹&#xff0c;将唯一一个.vmx文件用vmware打开&#xff08;没装的自行提前装…

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(27)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置&#xff08;26&#xff09; 2.5 非透明PCI桥 本回将结合实例说明直接地址翻译过程。 2.5.2 通过非透明桥片进行数据传递 下文以图2-16中处理器x访问处理器y存储器地址空间的实…

基于SAM的视频标注

在本文中&#xff0c;我们将演示基础模型的应用&#xff0c;例如 Meta 的 Segment Anything 和 YOLOv8&#xff0c;以自动检测、分类和绘制视频中感兴趣对象的蒙版。这是之前指南的后续&#xff1a;使用 Meta 的 Segment Anything 和 YOLOv8 自动分类掩码。在本指南中&#xff…

MPU6050传感器—姿态检测

本节主要介绍以下内容&#xff1a; 姿态检测的基本概念 姿态传感器的工作原理及参数 MPU6050传感器介绍 实验&#xff1a;获取MPU6050原始数据 实验&#xff1a;移植官方DMP例程 一、姿态检测基本概念 1.1 姿态 在飞行器中&#xff0c;飞机姿态是非常重要的参数&#x…

SpringBoot打包成Docker镜像

SpringBoot打包成Docker镜像 1、第一种方式 1.1 编写一个springboot项目并且打包成jar包 package com.example.demo.controller;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestContr…

Python基础之数据库操作

一、安装第三方库PyMySQL 1、在PyCharm中通过 【File】-【setting】-【Python Interpreter】搜索 PyMySQL进行安装 2、通过PyCharm中的 Terminal 命令行 输入: pip install PyMySQL 注&#xff1a;通过pip安装&#xff0c;可能会提示需要更新pip&#xff0c;这时可执行&#…

【趣味游戏-08】20240123点兵点将点到谁就是谁(列表倒置reverse)

背景需求&#xff1a; 上个月&#xff0c;看到大4班一个孩子在玩“点兵点将点到谁就是谁”的小游戏&#xff0c;他在桌上摆放两排奥特曼卡片&#xff0c;然后点着数“点兵点将点到谁就是谁”&#xff0c;第10次点击的卡片&#xff0c;拿起来与同伴的卡片进行交换。他是从第一排…

怎么把一个已经压缩好的大容量的压缩包,分卷后发给别人

环境&#xff1a; Win10 专业版 7Z 360压缩 问题描述&#xff1a; 怎么把一个已经压缩好的大压缩包&#xff0c;分卷 解决方案&#xff1a; 使用压缩软件&#xff1a;许多常用的压缩软件&#xff0c;如WinRAR、7-Zip等&#xff0c;都支持将大的压缩包分卷压缩。您可以使…

归一化是是什么意思,为什么要归一化

归一化 归一化是指将数据转换为标准尺度或相对比例的过程。在数据处理中&#xff0c;归一化的目标是使数据具有统一的尺度&#xff0c;以便更好地适应模型的训练和提高模型性能。归一化通常是通过线性变换将数据映射到一个特定的范围或分布。 为什么要进行归一化&#xff1f; …