(一)认识微服务

1. 什么是微服务

微服务是分布式架构的一种。

1.1 微服务技术 != Spring Cloud

分布式架构就是要把服务进行拆分,拆分的过程会产生一系列问题需要解决,而Spirng Cloud 只是解决了服务拆分的过程中的服务治理问题,所以一个完整的微服务包含的不只是Spring Cloud。

1.2 微服务技术栈的具体内容

  1. 传统的单体架构中所有的服务都耦合在一起,随着业务的发展,后续的升级维护会变得越来越困难,所以一些大型项目都要进行拆分。
  2. 微服务会根据业务功能模块把一个单体的项目拆分成许多个独立的项目,每个项目完成一部分业务功能,后续进行独立和部署,这样的一个项目称为一个服务。通常每个项目会包含成百上千的服务,形成一个服务集群。
  3. 一个业务往往需要多个服务之间相互调用来共同完成。当业务越来越多越复杂时,这些服务之间的调用关系也越来越复杂。
  4. 为了解决复杂的调用关系,微服务中引入了注册中心这个组件。注册中心可以记录微服务中每一个服务的IP、端口以及功能等其他信息。此时,当一个服务需要调用另一个服务时,它不需要记录对方的IP,直接去注册中心就行了,从注册中心拉取对方的服务信息。
  5. 为了解决种多服务的配置文件的管理问题,微服务中引入了配置中心这个组件。配置中心可以统一的管理整个服务集群里所有的服务的配置,如果有配置信息需要变更,只需要找配置中心就行了,配置中心会通知相关的服务实现配置的热更新。
  6. 为了解决用户对服务的访问问题,微服务引入了服务网关这个组件。服务网关一方面对用户身份做校验另一方面可以把用户的请求路由到具体的服务,并且在路由的过程中还可以做负载均衡。服务接收到用户请求之后访问数据库集群,完成相关服务。
  7. 为了解决高并发访问对数据库集群带来的压力,微服务中引入了分布式缓存。缓存就是把数据库中的数据放到内存当中,内存的查询效率比内存效率更高。用户请求先到分布式缓存中,如果未命中再到数据库中查询。
  8. 简单查询可以走缓存,为了解决海量数据的复杂搜索、统计和分析问题,微服务中引入了分布式搜索功能。从此数据库主要负责数据的写操作,还有一些事务类型的,对数据安全要求较高的数据存储。
  9. 微服务中各个服务相互调用的过程中整个业务的调用链路会很长,业务的执行时长是每个服务执行时长之和,性能会有所下降。为了解决这个问题,微服务中引入了实现异步通信的消息队列组件,请求来了先调用服务A,服务A不在直接去调用并等待服务B,而是通知服务B去执行,然后服务A就执行结束了,这样整个调用链路就变短了,响应时间也变短了,服务集群的业务吞吐能力也变强了。异步通信可以大大提高服务的并发。
  10. 众多的服务使得异常的排查变得十分困难,为了解决这个问题,微服务引入了分布式日志服务组件和系统监控链路追踪这两个组件,分布式服务日志可以统计整个服务集群中的运行日志,进行统一存储、统计和分析,便于后期异常的定位和排查。系统监控链路追踪可以实时监控整个服务集群中每个服务节点的运行状态、CPU的负载、内存的占用等信息,一旦出现问题可以直接定位到具体的某一个方法、栈信息等。
  11. 为了解决众多服务的部署问题,引入了持续集成的概念:利用JenKins这样的工具进行自动化部署,JenKins可以对这些微服务进行自动化编译,然后基于Docker进行打包形成镜像,再基于Kubernetes或Rancher实现自动化部署

2. 微服务技术栈的大致分类

2.1 微服务治理

主要是Spring Cloud所包含的内容:

  1. 注册发现
  2. 远程调用
  3. 负载均衡
  4. 配置管理
  5. 网关路由
  6. 系统包含
  7. 流量控制
  8. 服务授权
  9. 熔断降级
  10. 分布式事务
  11. TCC模型
  12. AT模型
  13. Seate

2.2 缓存技术

  1. SpirngDataRedis
  2. 缓存穿透、雪崩
  3. Redis主从复制
  4. OpenResty
  5. 缓存数据同步
  6. Nginx本地缓存
  7. Redis持久化
  8. 多级缓存分层
  9. Redis分片集群
  10. Lua脚本
  11. Redis数据结构

2.3 异步通信技术

  1. MQ消息模型
  2. SpringAMQP
  3. 消息堆积
  4. 消息可靠性
  5. 仲裁队列
  6. 延迟队列
  7. 镜像集群
  8. 数据持久化

2.4 分布式搜索技术

  1. DSL语句
  2. RestAPI
  3. ES集群
  4. 集群脑裂
  5. 竞价排名
  6. 聚合统计
  7. 自动补全
  8. 地理坐标
  9. 拼音分词

2.5 DevOps(持续继承)

  1. Dockerfile
  2. DokcerCompose
  3. GrayLog
  4. Jenkins
  5. SkyWalking
  6. Docker使用
  7. Kubernetes

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Round 934 (Div. 2) D. Non-Palindromic Substring

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e9, maxm 4e4 5; co…

【ERP原理与应用】用友U8实验

实验一、系统管理与基础设置 实验内容&#xff1a; 一、核算体系的建立 好友软件公司是一家软件制造和系统集成企业&#xff0c;其产品面向国内外市场&#xff0c;自 2019 年 3 月公司开始使用 ERP 软件管理业务。软件操作员有三位&#xff0c;黄红是账套 主管&#xff0c;张…

【C++】string类(常用接口)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;http://t.csdnimg.cn/eCa5z 目录 修改操作 push_back append operator assign insert erase replace c_str find string类非成…

量化交易入门(二十五)什么是RSI,原理和炒股实操

前面我们了解了KDJ&#xff0c;MACD&#xff0c;MTM三个技术指标&#xff0c;也进行了回测&#xff0c;结果有好有坏&#xff0c;今天我们来学习第四个指标RSI。RSI指标全称是相对强弱指标(Relative Strength Index),是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市…

论文研读:Transformers Make Strong Encoders for Medical Image Segmentation

论文&#xff1a;TransUNet&#xff1a;Transformers Make Strong Encoders for Medical Image Segmentation 目录 Abstract Introduction Related Works 各种研究试图将自注意机制集成到CNN中。 Transformer Method Transformer as Encoder 图像序列化 Patch Embed…

Net8 ABP VNext完美集成FreeSql、SqlSugar,实现聚合根增删改查,完全去掉EFCore

没有基础的&#xff0c;请参考上一篇 彩蛋到最后一张图里找 参考链接 结果直接上图&#xff0c;没有任何业务代码 启动后&#xff0c;已经有了基本的CRUD功能&#xff0c;还扩展了批量删除&#xff0c;与动态查询 动态查询截图&#xff0c;支持分页&#xff0c;排序 实现原理…

消息队列经典应用场景

笔者心中,消息队列,缓存,分库分表是高并发解决方案三剑客。 在职业生涯中,笔者曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列 。 这篇文章,笔者结合自己的真实经历,和大家分享消息队列的七种经典应用场景。 1 异步&解耦 笔者曾经负责某电…

Charles抓包配置代理手机连接

Charles下载地址&#xff1a; Charles_100519.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供Charles_100519.zip最新版正式版官方版绿色版下载,Charles_100519.zip安卓版手机版apk免费下载安装到手机,支持电脑端一键快捷安装https://www.123pan.com…

Scala介绍与环境搭建

Scala环境搭建与介绍 一、Scala环境搭建 1、环境准备与下载 2、验证Scala 3、IDEA新建项目&#xff0c;配置Scala&#xff0c;运行Hello world 二、Scala介绍 1、Scala 简介 2、Scala 概述 一、Scala环境搭建 1、环境准备与下载 JDK1.8 Java Downloads | Oracle 下载需求版本…

酒店能源监测管理系统:实现节能减排与提升管理效率的利器

随着全球能源问题的日益突出和可持续发展理念的深入人心&#xff0c;酒店业也在积极探索节能减排的途径。在这一背景下&#xff0c;酒店能源监测管理系统应运而生&#xff0c;成为了酒店行业提升管理效率、降低能源消耗的重要工具。本文将从多个角度介绍酒店能源监测管理系统的…

Elastic 8.13:Elastic AI 助手中 Amazon Bedrock 的正式发布 (GA) 用于可观测性

作者&#xff1a;来自 Elastic Brian Bergholm 今天&#xff0c;我们很高兴地宣布 Elastic 8.13 的正式发布。 有什么新特性&#xff1f; 8.13 版本的三个最重要的组件包括 Elastic AI 助手中 Amazon Bedrock 支持的正式发布 (general availability - GA)&#xff0c;新的向量…

360奇酷刷机 360刷机助手 QGDP360手机QGDP刷机

360奇酷刷机 360刷机助手 QGDP破解版360手机QGDP刷机 360手机刷机资源下载链接&#xff1a;360rom.github.io 参考&#xff1a;360手机-360刷机360刷机包twrp、root 360奇酷刷机&#xff1a;360高通驱动安装 360手机刷机驱动&#xff1b;手机内置&#xff0c;可通过USB文件传输…

前端学习<二>CSS基础——11-CSS3属性详解(一)

前言 我们在上一篇文章中学习了CSS3的选择器&#xff0c;本文来学一下CSS3的一些属性。 本文主要内容&#xff1a; 文本 盒模型中的 box-sizing 属性 处理兼容性问题&#xff1a;私有前缀 边框 背景属性 渐变 文本 text-shadow&#xff1a;设置文本的阴影 格式举例&…

关于MD5加密

1、什么是MD5 计算机安全领域广泛使用的一种散列函数&#xff0c;是用以提供消息的完整性保护 2、MD5的优势 &#xff08;1&#xff09;压缩性&#xff1a;任意长度的密码进过MD5加密后的长度是固定的 &#xff08;2&#xff09;容易计算&#xff1a;从原数字计算到MD5很简单 &…

分享全栈开发医疗小程序 -带源码课件(课件无解压密码),自行速度保存

课程介绍 分享全栈开发医疗小程序 -带源码课件&#xff08;课件无解压密码&#xff09;&#xff0c;自行速度保存&#xff01;看到好多坛友都在求SpringBoot2.X Vue UniAPP&#xff0c;全栈开发医疗小程序 - 带源码课件&#xff0c;我看了一下&#xff0c;要么链接过期&…

我于窗中窥月光,恰如仰头见“链表”(Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

编程实现黄金分割法、平分法和不精确一维搜索等最优化算法

解&#xff1a; 1、黄金分割法 思想&#xff1a; 黄金分割法是通过不断缩短搜索区间的长度来寻求一维函数的极小点&#xff0c;这种方法的基本原理是&#xff1a;在搜索区间[a,b]内按如下规则对称地取两点a1和a2 a1a0.382(b-a); a2a0.618(b-a); 黄金分割法的搜索过程是&#x…

C# winform校验文件版本差异及版本号

界面 代码 using System.Diagnostics;namespace VersionTool {public partial class Form1 : Form{List<string> fileNmaes new List<string>() { "PhotoMes.Base.dll", "PhotoMes.App.exe", "PhotoMes.Cameras.dll" };public F…

MySQL Server 8.3.0 重要变更解析

MySQL Server 8.3.0 Innovation 版本是 MySQL 8.x 系列最后一个创新版本&#xff0c;下个月即将迎来 MySQL 8.4.0 LTS 长期支持版本。 关于发版模型变更&#xff0c;在之前的文章 重磅&#xff01;MySQL 8.1.0 已来&#xff01; 中已有所介绍。 这里补充一点&#xff0c;对于 M…

学习鸿蒙基础(10)

目录 一、轮播组件 Swiper 二、列表-List 1、简单的List 2、嵌套的List 三、Tabs容器组件 1、系统自带tabs案例 2、自定义导航栏&#xff1a; 一、轮播组件 Swiper Entry Component struct PageSwiper {State message: string Hello Worldprivate SwCon: SwiperControl…