当前位置: 首页 > news >正文

SpringCloud微服务 【实用篇】| 认识微服务

目录

一:认识微服务

1. 微服务框架介绍

2. 服务架构演变

3. 微服务技术对比

4. SpringCloud

图书推荐:《巧用ChatGPT快速提高职场晋升力》


一:认识微服务

本课程学习于黑马,会通过分层次学习,分为三部分去讲解微服务:实用篇、高级篇、面试篇

分层次学习

微服务技术栈

1. 微服务框架介绍

思考:什么是微服务?

答:第一反应肯定是SpringCloud技术,但不仅仅是;微服务实际上是分布式架构的一种,就是把服务做拆分,拆分时会出现问题需要解决;而SpringCloud仅仅是解决服务治理问题

那么一个完整的微服务需要哪些知识呢?

(1)微服务架构的第一件事就是项目的拆分,独立开发每个服务

(2)当业务越来越多,越来越复杂时,它们之间的调用关系就会越来越复杂,想要记录和维护,需要一个组件---注册中心(记录每个服务的IP、端口等信息)

(3)每个服务都有自己的配置文件,将来要更改配置逐一去更改很麻烦,所以还有一个组件---配置中心(拉取配置信息,实现配置的热更新)

(4)当微服务运行以后,用户就可以进行访问,这里就需要一个组件---服务网关(访问哪一个?谁能访问?对用户的身份进行验证,可以把用户的请求路由到具体的服务)

(5)服务接到请求处理业务,访问数据库,再把数据返回给用户。数据库集群在庞大,也扛不住大量用户的高并发,此时就需要组件---分布式缓存(把数据库的数据放到内存当中,先到缓存,缓存未命中,再去数据库查,内存的查询效率肯定是比数据库高的);

(6)还有一些复杂的搜索功能,简单数据可以走缓存,一些复杂的搜索缓存无法解决,此时就需要另外一个组件---分布式搜索

(7)在为微服务中还需要异步通信的消息队列组件,一个请求来了调用a,a调用b,b调用...整个业务的链路就会很长,调用时长就等于每个服务调用的时长之和,性能下降。而异步通信的消息队列不是去调用a而是通知a,通知完以后就结束了,业务的链路就变短了,响应时间就变短了,吞吐能力变强;

(8)当然那么庞大的微服务,在出现问题排查是个大问题,所以需要引入两个新的组件---分布式日志服务(统治成千上百服务的日志,统一的存储和分析)和 系统的监控链路追踪(实时监控这个服务每一个节点的运行状态,CPU的占用等情况);

(9)庞大复杂的微服务集群怎么部署呢?需要一个自动化的部署---Jenkins(自动化的编译),在使用Docker(打包形成镜像),在基于K8s实现自动化的部署;

技术栈很多很杂,进行梳理学习

2. 服务架构演变

单体架构

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

例如:一个商城的项目,把所有的功能模块放到一个项目中进行打包部署到Tomcat服务器

优点

①架构简单;②部署成本低;

缺点

①耦合度高;适合部署一些小型的项目;

分布式架构

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

例如:把一个商城项目的每个模块都进行拆分成一个项目去开发。

优点:

①降低服务耦合;

②有利于服务升级拓展

服务治理

拆分也会带来一些问题:都是一个单体项目,部署在不同的服务器,调用时会出现远程调用(跨越服务器)的问题。分布式架构的要考虑的问题:

①服务拆分粒度如何?怎么拆,把服务作为独立的模块。

②服务集群地址如何维护?上百个机器的地址怎么维护。

③服务之间如何实现远程调用?跨服务的调用。

④服务健康状态如何感知?服务器的状态,有可能宕机。

微服务

微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:

①单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发;

②面向服务:微服务对外暴露业务接口,用来远程调用;

③自治:团队独立、技术独立、数据独立(每个服务独立的数据库)、部署独立;

④隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题;

例如:一个会员的功能,进行进一步的细化拆分

总结:

(1)单体架构特点

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

(2)分布式架构特点

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

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

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

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

3. 微服务技术对比

微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是SpringCloud和阿里巴巴的Dubbo

微服务技术对比

Dubbo

SpringCloud

SpringCloudAlibaba

注册中心

zookeeper、Redis

Eureka、Consul

Nacos、Eureka

服务远程调用

Dubbo协议

Feign(http协议)

Dubbo、Feign

配置中心

SpringCloudConfig

SpringCloudConfig、Nacos

服务网关

SpringCloudGateway、Zuul

SpringCloudGateway、Zuul

服务监控和保护

dubbo-admin,功能弱

Hystix

Sentinel

企业需求 

①使用SpringCloud技术栈、服务接口采用Restful风格、服务调用采用Feign方式;

②使用SpringCloudAlibaba技术栈、服务接口采用Restful风格、服务调用采用Feign方式;

③使用SpringCloudAlibaba技术栈、服务接口采用Dubbo协议标准、服务调用采用Dubbo方式;

④基于Dubbo老旧技术体系、服务接口采用Dubbo协议标准、服务调用采用Dubbo方式;

4. SpringCloud

(1)SpringCloud是目前国内使用最广泛的微服务框架。官网地址:Spring Cloud。

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

SpringCloud与SpringBoot的版本兼容关系如下:

注:本次学习的版本是 Hoxton.SR10,因此对应的SpringBoot版本是2.3.x版本。 

图书推荐:《巧用ChatGPT快速提高职场晋升力》

本次送书 1 本! 

抽奖方式:利用程序进行抽奖。

参与方式:关注博主(只限粉丝福利哦)、点赞、收藏,评论区随机抽取,最多三条评论!

关键点

ChatGPT赋能职场,一本书掌握AI在职场中的的全面应用

10大创新技术+30多个实战案例+50多种ChatGPT应用策略

有效提高沟通能力、提高工作效率、提升个人品牌、提升创造力、提升管理能力

助你在竞争激烈的职场环境中脱颖而出

卖点

★超实用 通过30多个实战案例和操作技巧,使读者能够快速上手并灵活运用ChatGPT技术及提高职场晋升力。

★巨全面 50多种ChatGPT应用策略,涵盖提高沟通能力、提高工作效率、提升个人品牌、提升创造力、提升领导力和管理能力、促进职业发展全方面。

★真好懂 以通俗易懂的语言解释ChatGPT的原理及应用,零门槛提高职场硬核能力。

★高回报 学习本书,全面提升职场能力,大大提高工作效率,促进职业发展,实现自我价值。

内容简介

        本书从ChatGPT的基本知识、技术原理和应用场景出发,详细探讨了如何运用ChatGPT提升职场竞争力。全书共分为10章,内容包括ChatGPT在职场沟通、工作效率、个人品牌价值、职业发展、创意思维、领导力与管理、学习与自我成长、数据分析、服务与谈判等方面的应用。通过阅读本书,读者可以了解到ChatGPT的强大功能和在各领域的实际应用,从而有效提升职场竞争力。

        本书内容丰富、实用性强,旨在帮助读者在职场中更好地运用ChatGPT技术。适合职场人士、管理者、开发者及对人工智能技术感兴趣的读者阅读。同时,本书也适用于相关培训机构作为教材使用,助力职场发展。

当当网链接:当当图书

京东的链接:京东安全

相关文章:

SpringCloud微服务 【实用篇】| 认识微服务

目录 一:认识微服务 1. 微服务框架介绍 2. 服务架构演变 3. 微服务技术对比 4. SpringCloud 图书推荐:《巧用ChatGPT快速提高职场晋升力》 一:认识微服务 本课程学习于黑马,会通过分层次学习,分为三部分去讲解微…...

Csdn文章编写参考案例

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…...

Jmeter性能测试:高并发分布式性能测试

​一、为什么要进行分布式性能测试 当进行高并发性能测试的时候,受限于Jmeter工具本身和电脑硬件的原因,无法满足我们对大并发性能测试的要求。 基于这种场景下,我们就需要采用分布式的方式来实现我们高并发的性能测试要求。 二、分布式性能…...

2015年亚太杯APMCM数学建模大赛B题城市公共交通服务水平动态评价模型求解全过程文档及程序

2015年亚太杯APMCM数学建模大赛 B题 城市公共交通服务水平动态评价模型 原题再现 城市公共交通服务评价是城市公共交通系统建设和提高公共交通运营效率的重要组成部分。对于公交企业,管理和规划部门,传统公交车站、线路和换乘枢纽的规划数据只是基于主…...

CCF CSP认证历年题目自练 Day40

题目 试题编号: 201412-3 试题名称: 集合竞价 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   某股票交易所请你编写一个程序,根据开盘前客户提交的订单来确定某特定股票的开盘价和开盘成交量…...

闲聊一下写技术博客的一些感想

大家好,我是阿赵。   在我的163博客关闭之后,我就把一部分的博文移到了CSDN这边。不过实际上我有好几年都没有写过博客,所以这个博客的浏览量和粉丝数一直都不高。直到今年2023年的2月底开始,打算总结一下3DsMax的MaxScript的用…...

单片机为什么一直用C语言,不用其他编程语言?

单片机为什么一直用C语言,不用其他编程语言? 51 单片机规模小得拮据,C 的优势几乎看不到。放个类型信息进去都费劲,你还想用虚函数?还想模板展开?程序轻松破 10k。最近很多小伙伴找我,说想要一些…...

利用HTTP2,新型DDoS攻击峰值破纪录

亚马逊、Cloudflare 和谷歌周二联合发布消息称,一种依赖于 HTTP/2 快速重置技术的攻击行为对它们造成了破纪录的分布式拒绝服务 (DDoS) 攻击。 根据披露的信息,该攻击自8月下旬以来便一直存在,所利用的漏洞被跟踪为CVE-2023-44487&#xff0c…...

android鼠标滚轮事件监听方法

Overridepublic boolean onGenericMotionEvent(MotionEvent event) { //The input source is a pointing device associated with a display. //输入源为可显示的指针设备,如:mouse pointing device(鼠标指针),stylus pointing device(尖笔设备)if (0 ! …...

【C语言|关键字】C语言32个关键字详解(4)——其他(typedef、sizeof)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...

Hafnium简介和构建

安全之安全(security)博客目录导读 目录 一、Hafnium简介 二、Hafnium构建 2.1.1 先决条件 2.1.1.1 构建Host 2.1.1.2 工具链 2.1.1.3 依赖 2.1.1.4 获取源码 2.1.2 构建 一、Hafnium简介 可信固件为Armv8-A、Armv9-A和Armv8-M提供了安全软件的参考实现。它为SoC开发人…...

2023年香水行业数据分析:国人用香需求升级,高端香水高速增长

在人口结构变迁的背景下,“Z世代”作为当下我国的消费主力,正在将“悦己”消费推动成为新潮流。具备经济基础的“Z世代”倡导“高颜值”、“个性化”、“精致主义”,这和香水、香氛为代表的“嗅觉经济”的特性充分契合,因此&#…...

这可能是最简单的Page Object库

做过web自动化测试的同学,对Page object设计模式应该不陌生。 Page object库应该根据以下目标开发: Page object应该易于使用 清晰的结构 PageObjects 对于页面对象 PageModules对于页面内容 只写测试,而不是基础。 在可能的情况下防止…...

论文阅读——BERT

ArXiv:https://arxiv.org/abs/1810.04805 github:GitHub - google-research/bert: TensorFlow code and pre-trained models for BERT 一、模型及特点: 1、模型: 深层双向transformer encoder结构 BERT-BASE:(L12, H…...

竞赛 深度学习人体跌倒检测 -yolo 机器视觉 opencv python

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满…...

Springboot创建多数据源

yml文件 spring:datasource:dynamic:# 设置默认的数据源或者数据源组,默认值即为 masterprimary: masterdatasource:# 主库数据源master:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://xxx.xxx.xxx.xxx:3306/test?useUnicodetrue&characterEncodingutf8…...

【Hello Algorithm】滑动窗口内最大值最小值

滑动窗口介绍 滑动窗口是一种我们想象中的数据结构 它是用来解决算法问题的 我们可以想象出一个数组 然后再在这个数组的起始位置想象出两个指针 L 和 R 我们对于这两个指针做出以下规定 L 和 R指针只能往右移动L指针不能走到R指针的右边我们只能看到L指针和R指针中间的数字 …...

HTML,CSS实现鼠标划过头像,头像突出变大(附源码)

话不多说&#xff0c;先上代码 先看原图&#xff1a; 再看 鼠标放上去后的图&#xff1a; 是不是明显感觉到 人物头像突出了一些&#xff0c;而且还增加了阴影部分的效果呢&#xff1f; 直接上代码&#xff01;&#xff01;&#xff01; <!--由于我的 img 标签放的是循环后…...

“爱知道”,你知道吗?

拥抱时代浪潮&#xff0c;加速科技变革。数字经济时代&#xff0c;杭州重点贯彻市委市政府数字经济创新提质“一号发展工程”&#xff0c;加快发展数字经济&#xff0c;推动全市数字经济往高攀升、向新进军、以融提效。基于政府对数字经济新活力的赋能、优化数字社会环节、构建…...

基于SpringBoot+Vue的服装销售系统

基于SpringBootVue的服装销售平台的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 我的订单 登录界面 管理员界面 摘要 基于SpringBoot和Vue的服装销售系统…...

MacBook安装OpenClaw全记录:Phi-3-vision-128k-instruct多模态初体验

MacBook安装OpenClaw全记录&#xff1a;Phi-3-vision-128k-instruct多模态初体验 1. 为什么选择OpenClawPhi-3组合 去年第一次听说OpenClaw时&#xff0c;我就被这个"能直接操作电脑的AI助手"吸引了。作为一个经常需要处理多模态内容的创作者&#xff0c;传统AI工具…...

零基础入门:Qwen3-ASR-1.7B语音识别Docker部署全流程

零基础入门&#xff1a;Qwen3-ASR-1.7B语音识别Docker部署全流程 1. 为什么选择Docker部署语音识别服务 想象一下&#xff0c;你刚学会使用Qwen3-ASR-1.7B这个强大的语音识别模型&#xff0c;在本地电脑上测试效果非常棒。但当你想把它部署到服务器上时&#xff0c;突然发现各…...

Qwen3.5-9B-AWQ-4bit LSTM时间序列预测模型原理与调参详解

Qwen3.5-9B-AWQ-4bit LSTM时间序列预测模型原理与调参详解 1. 引言&#xff1a;当LSTM遇见大语言模型 时间序列预测一直是机器学习领域的经典问题。从股票价格预测到电力负荷分析&#xff0c;传统LSTM模型因其出色的序列建模能力而广受欢迎。但随着大语言模型(LLM)的崛起&…...

FolioReaderKit文本转语音功能:如何实现TTS语音朗读的详细指南

FolioReaderKit文本转语音功能&#xff1a;如何实现TTS语音朗读的详细指南 【免费下载链接】FolioReaderKit &#x1f4da; A Swift ePub reader and parser framework for iOS. 项目地址: https://gitcode.com/gh_mirrors/fo/FolioReaderKit &#x1f4da; FolioReader…...

语音情感识别在心理评估中的应用:Emotion2Vec+镜像实战案例

语音情感识别在心理评估中的应用&#xff1a;Emotion2Vec镜像实战案例 1. 语音情感识别技术概述 语音情感识别&#xff08;Speech Emotion Recognition, SER&#xff09;技术正在改变传统心理评估的方式。这项技术通过分析语音中的声学特征&#xff0c;能够准确识别说话者的情…...

Qwen3-TTS在VSCode中的开发调试技巧:从语音克隆到音色设计

Qwen3-TTS在VSCode中的开发调试技巧&#xff1a;从语音克隆到音色设计 1. 开发环境搭建 1.1 Python虚拟环境配置 在VSCode中开发Qwen3-TTS项目&#xff0c;首先需要配置合适的Python环境。推荐使用conda或venv创建独立的虚拟环境&#xff0c;避免依赖冲突。 # 使用conda创建…...

别再死记硬背了!用Wireshark抓包实战,5分钟搞懂TCP三次握手和HTTP请求全过程

用Wireshark抓包实战&#xff1a;5分钟可视化TCP三次握手与HTTP请求 刚接触计算机网络时&#xff0c;那些抽象的三次握手、滑动窗口、HTTP报文总让人头晕。直到我第一次用Wireshark看到真实的数据包在屏幕上跳动——原来教科书上的每个概念都能在抓包结果中找到对应的"证…...

KL46Z电容触摸驱动库:TSI传感器适配与抗干扰实践

1. TSI传感器驱动库技术解析与工程实践1.1 项目背景与定位TSI&#xff08;Touch Sensing Interface&#xff09;是NXP Kinetis系列MCU内置的电容式触摸感应外设模块&#xff0c;专为低功耗、高抗噪性的人机交互应用设计。tsi_sensor是一个轻量级、可移植的固件库&#xff0c;面…...

【多模态表示与语言模型】3.1 自引用嵌入字符串(SELFIES)

3.1 自引用嵌入字符串&#xff08;SELFIES&#xff09;在分子生成式 AI 领域&#xff0c;表示学习&#xff08;Representation Learning&#xff09;的瓶颈长期以来集中在语法脆弱性问题上。传统 SMILES&#xff08;Simplified Molecular-Input Line-Entry System&#xff09;表…...

保姆级教程:在Quartus Prime 18.0中手把手配置NCO IP核并完成Modelsim仿真

保姆级教程&#xff1a;在Quartus Prime 18.0中手把手配置NCO IP核并完成Modelsim仿真 数字信号处理是FPGA开发中的核心技能之一&#xff0c;而数控振荡器&#xff08;NCO&#xff09;作为生成精确频率信号的关键IP核&#xff0c;在通信系统、雷达信号处理等领域有着广泛应用。…...