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

【SpringCloud】初始微服务

目录

一、单体架构

1、概念

2、优点

3、缺点

二、分布式架构

1、概念

2、优点

3、缺点

三、微服务

1、概念

2、优点

3、缺点

四、微服务技术对比

五、SpringCloud

六、服务拆分

1、注意事项

2、服务远程调用


一、单体架构

1、概念

业务的所有功能都集中到一个项目中进行开发,打成一个包进行部署

2、优点

这种开发方式架构简单,且部署成本低,容易快速上手

3、缺点

所有的功能都集中在一个项目里,代码的耦合度较高

二、分布式架构

1、概念

根据业务功能对系统进行拆分,每个业务模块作为一个独立的项目进行开发,这样的一个项目称为一个服务

2、优点

代码的耦合度低,有利于服务的升级与扩展

3、缺点

架构复杂,难度较大,且需要考虑的问题也有很多,比如服务的拆分粒度如何?服务集群的地址如何维护?服务之间如何实现远程调用?服务的健康状态如何感知等

三、微服务

1、概念

微服务是一种良好的架构设计的分布式架构方案。他的主要特点是:1.单一职责,微服务的拆分粒度更小,每一个服务都对应唯一的业务功能,避免重复开发。2.面向服务,微服务对外暴露业务接口。3.自治,团队独立、技术独立、数据独立、部署独立,每个业务都有自己的数据库,每一个业务都有自己的技术栈。4.隔离性强:服务的调用做好隔离、容错、降级,避免出现级联问题

2、优点

拆分粒度更小、服务更独立、耦合度更低

3、缺点

架构更复杂、运维监控部署的难点更高

四、微服务技术对比

国内主流的微服务框架主要有SpringCloud与Dubbo

DubboSpringCloudSpringCloudAlibaba
注册中心zookeeper、RedisEureka、ConsulEureka、Nacos
远程调用Dubbo协议Feign(HTTP协议)Dubbo、Feign
配置中心SpringCloudConfigSpringCloudConfig、Nacos
服务网关SpringCloudGateway、ZuulSpringCloudGateway、Zuul
监控保护dubbo-admin(功能弱)HystrixSentinel

五、SpringCloud

SpringCloud是国内目前使用最广泛的微服务框架,它集成了各种微服务功能组件,基于SpringBoot实现了组件的自动装配,提供了良好的开箱即用的体验

六、服务拆分

1、注意事项

在进行服务拆分时,我们需要注意不同的服务,不要开发相同的业务。微服务数据独立,不能访问其他服务的数据库。微服务可以将自己的业务暴露为接口,供其他服务调用

2、服务远程调用

远程调用的实现基于RestTemplate这个类来发起http请求去获取其他服务的数据,首先我们需要在配置类里注入这个对象rh


@Configuration
public class RestConfig {@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}
}

然后我们可以在需要调用的地方装配该对象,调用其getForObject(url,类对象)来获取其他服务的数据

User user = restTemplate.getForObject("http://127.0.0.1:8081/user/getUser",User.class);

 

相关文章:

【SpringCloud】初始微服务

目录 一、单体架构 1、概念 2、优点 3、缺点 二、分布式架构 1、概念 2、优点 3、缺点 三、微服务 1、概念 2、优点 3、缺点 四、微服务技术对比 五、SpringCloud 六、服务拆分 1、注意事项 2、服务远程调用 一、单体架构 1、概念 业务的所有功能都集中到一个…...

均摊时间复杂度

均摊时间复杂度,它对应的分析方法,摊还分析(或者叫平摊分析) 均摊时间复杂度应用的场景比它更加特殊、更加有限 // array表示一个长度为n的数组// 代码中的array.length就等于nint[] array new int[n];int count 0;void insert…...

夏驰和徐策的解决数学问题思路——反证法

反证法是一种证明方法,它的基本思路是通过假设某个结论不成立,然后构造出一个矛盾的情况来推导出原先假设的结论是成立的。 具体来说,反证法一般包含以下步骤: 1. 假设所要证明的命题不成立。 2. 通过这个假设,构造…...

面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers

面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers 1. 指南(原文: Guidelines)1-1. 提示的指南(原文: Guidelines for Prompting)1-2. 配置1-3. 提示语原则(原文: Prompting Principles)原则 1: 写出清晰而具体的指示(原文: Write clear and spe…...

虹科方案|使用 HK-TRUENAS支持媒体和娱乐工作流程-1

一、摘要 开发和交付能够随时随地触及受众的媒体内容变得越来越重要和复杂。 在当今高度互联、娱乐驱动的世界中,媒体和娱乐 (M&E) 公司需要保持竞争力才能取得成功。 这些组织需要制作各种不同格式的信息和娱乐内容,以便在移动设备、台式机、工作站…...

DDR5内存彻底白菜价,国外大厂却整出了比着火更离谱的骚操作

今年的 PC 硬件市场,似乎出现了明显两极分化现象。 一边是 N、A 两家新显卡价格高高在上,摆明了不坑穷人。 另一边固态硬盘、内存条又在疯狂互卷不断杀价。 四五百元的 2TB SSD,二百元的 16G 内存条早已见怪不怪。 要说面世多年的 PCIe 3.0…...

Linux网络——Shell编程之函数

Linux网络——Shell编程之函数 一、概述二、定义函数的格式1.格式一2.格式二 三、函数的查看和删除1.查看 declare2.删除 declare 四、函数的返回值1.return 返回值2.echo 返回值 五、函数的参数传入与变量范围1.函数的传参2.函数变量的作用范围 六、函数的应用1.阶乘2.递归目录…...

GQCNN+PointNetGPD思路和问题--chatGPT

有很多算法是通过神经网络来预测机械臂抓手的抓取位置,其中一些算法需要点云数据作为输入,例如: PointNetGPD:PointNetGPD是一个端到端的基于点云的抓取姿态检测算法。它使用了一个PointNet架构来处理点云输入,并输出每…...

Mysql索引(2):索引结构

1 概述 MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构,主要包含以下几种: 索引结构描述BTree索最常见的索引类型,大部分引擎都支持 B 树索引 Hash索引 底层数据结构是用哈希表实现的, 只有精确匹配索引列的…...

Spring框架介绍和应用实践

Spring是一个开源的Java企业应用开发框架,它通过依赖注入和面向切面编程等技术实现了轻量级、松散耦合、可测试和可扩展的应用开发。本文将介绍Spring框架的基本原理和核心功能,以及在实际项目中如何使用Spring框架进行应用开发。 Spring框架基本原理 …...

IO 流学习总结

一:IO 流的概述 1. 什么是 IO 流? 存储和读取数据的解决方法 I:input O:output 流:像水流一样传输数据 2. IO 流的作用? 用于读写数据(本地文件,网络) 3. IO 流按…...

PowerToys——免费、强大、高效的微软官方效率提升工具集,办公学习宝藏软件

名人说:博观而约取,厚积而薄发。——宋苏轼 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、简单介绍1、PowToys是什么?2、它的功能有哪些?二、下载安装三、功能示例1、始终置顶2、唤醒3、颜色选取器(取色)4、FancyZones(窗口布局)5、File Locksmith6、…...

【C++】 类基础汇总(类封装,构造、析构函数...)

目录 前言 正文 类封装 为什么要进行类封装 概念 访问修饰符 构造函数 概念 特点 析构函数 概念 特点 再谈面向过程与面向对象 面向过程 代码举例 面向对象 代码举例 结语 下期预告 前言 在学习过【C语言进阶C】 C基础--让你丝滑的从C语言进阶到C 之后&am…...

BM61-矩阵最长递增路径

题目 给定一个 n 行 m 列矩阵 matrix ,矩阵内所有数均为非负整数。 你需要在矩阵中找到一条最长路径,使这条路径上的元素是递增的。并输出这条最长路径的长度。 这个路径必须满足以下条件: 对于每个单元格,你可以往上&#xff…...

selenium——unittest框架

目录 一、unittest框架基本介绍二、unittest框架解析三、unittest框架使用方法1.测试固件2.测试套件3.用例的执行顺序4.忽略测试用例中的方法5.unittest断言6.HTML报告生成 一、unittest框架基本介绍 在进行selenium IDE脚本录制导出的脚本中,我们发现其中多了很多…...

matlab频谱分析详解

频谱分析是一种用于分析信号频率特征的方法,常用于信号处理、音乐分析、谐波产生等领域。MATLAB是一种功能强大的数字信号处理软件,提供了许多用于频谱分析的函数和工具箱。 本文将介绍如何使用MATLAB进行频谱分析,包括信号预处理、选择合适…...

用layui写用户登录页面遇到的问题

用layui写用户登录页面遇到的问题 1.在layui-row下面的layui-col-md还是换行 原因:link标签和script标签中的type属性没写,导致应该是script或者这个css没有识别出来 解决办法:link标签里面加上type为text/css, script标签中加上type为 2…...

NMOS双向转换电路实测以及上升沿尖峰处理

NMOS双向转换电路实测以及上升沿尖峰处理 NMOS双向转换电路 &#x1f527;采用的是5V供电的STC8H单片机输出PWM波形&#xff0c;经过上面的电平转换电路测量低压端的波形。 ✨在做3.3V <>5V 电平转换电路方案验证时&#xff0c;输入5V PWM波形和输出波形的波形上升沿有尖…...

【数据结构】选择排序(详细)

选择排序 1. 直接选择排序2. 堆排序2.1 堆2.2 堆的实现&#xff08;以大根堆为例&#xff09;2.3 堆排序 3. 堆排序&#xff08;topK问题&#xff09; 1. 直接选择排序 思想 以排升序为例。以a[i]为最大值&#xff08;或最小值&#xff09;&#xff0c;从a[i1]到a[n-1-i]比较选…...

什么是企业内容管理?

为什么出现企业内容管理&#xff1f; 在数字经济的宏观背景下&#xff0c;企业建立了各种应用系统以满足企业各业务的管理需求&#xff0c;这些系统每天都在产生大量的数据和信息资源&#xff0c;但在企业实践中存在很多数据或资源无法被应用系统获取、处理和共享。 比如发票…...

用AirSim和Habitat手把手教你搭建第一个无人机VLN仿真环境(避坑指南)

从零搭建无人机视觉语言导航仿真环境&#xff1a;AirSim与Habitat实战指南 第一次接触无人机视觉语言导航&#xff08;VLN&#xff09;时&#xff0c;我被这个交叉领域深深吸引——它完美融合了计算机视觉、自然语言处理和机器人控制三大技术方向。但当我真正开始动手实践时&am…...

四场景下的两阶段鲁棒优化模型构建与实施——列与约束生成算法及其数据处理机制探究

两阶段鲁棒优化模型 多场景 采用matlab编程两阶段鲁棒优化程序&#xff0c;考虑四个场景&#xff0c;模型采用列与约束生成&#xff08;CCG&#xff09;算法进行求解&#xff0c;场景分布的概率置信区间由 1-范数和∞-范数约束&#xff0c;程序含拉丁超立方抽样kmeans数据处理程…...

全贴合工艺中Cover Lens Mura不良的关键影响因素与优化策略

1. 全贴合工艺中的Mura现象解析 第一次看到全贴合屏幕上出现发黄或发白的斑块时&#xff0c;我还以为是产品运输途中受了撞击。后来在产线蹲守三个月才发现&#xff0c;这些被称为"Mura"的光学缺陷&#xff0c;其实是贴合工艺中的隐形杀手。Mura这个词源自日语"…...

CSS 语音参考

CSS 语音参考 概述 CSS(层叠样式表)是网页设计中的核心组成部分,它允许开发者控制网页元素的样式,包括颜色、布局、字体等。在网页设计中,有时我们需要为特定的元素添加语音提示,以便于视觉障碍者或需要语音辅助的用户使用。本文将详细探讨CSS中语音参考的实现方法,包…...

如何从零搭建Cubli_Mini:开源自平衡机器人完整制作指南

如何从零搭建Cubli_Mini&#xff1a;开源自平衡机器人完整制作指南 【免费下载链接】Cubli_Mini 项目地址: https://gitcode.com/gh_mirrors/cu/Cubli_Mini Cubli_Mini是一款令人惊叹的开源自平衡立方体机器人项目&#xff0c;它通过三个正交安装的飞轮实现姿态控制&am…...

工程师快速解决TVA检测系统常见故障的实操技巧

TVA系统在汽车零部件焊接点检测中需长期连续运行&#xff0c;适配高节拍生产场景&#xff0c;作为负责系统运维的工程师&#xff0c;快速排查与解决常见故障&#xff0c;是保障系统稳定运行的核心职责。在实际运维过程中&#xff0c;不少工程师因对故障原因判断不准确、排查方法…...

如何通过智能字体处理实现前端优化:Fontmin实用指南

如何通过智能字体处理实现前端优化&#xff1a;Fontmin实用指南 【免费下载链接】fontmin Minify font seamlessly 项目地址: https://gitcode.com/gh_mirrors/fo/fontmin 问题引入&#xff1a;未优化字体的性能陷阱 在现代前端开发中&#xff0c;字体文件往往成为性能…...

ai协作开发:在快马平台上对比claude code与多模型生成代码的异同

最近在做一个天气查询小工具时&#xff0c;我尝试了用InsCode(快马)平台的AI辅助开发功能&#xff0c;发现不同AI模型生成的代码确实各有特色。这里分享一下我的实践过程和对比观察。 项目需求分析 这个天气小部件需要实现三个核心功能&#xff1a;城市输入、API数据获取和结果…...

5分钟掌握B站视频下载的终极解决方案

5分钟掌握B站视频下载的终极解决方案 【免费下载链接】BiliDownloader BiliDownloader是一款界面精简&#xff0c;操作简单且高速下载的b站下载器 项目地址: https://gitcode.com/gh_mirrors/bi/BiliDownloader 还在为无法保存喜欢的B站视频而烦恼吗&#xff1f;BiliDow…...

如何快速解决API开发痛点:5个技巧让Insomnia成为你的跨平台测试神器

如何快速解决API开发痛点&#xff1a;5个技巧让Insomnia成为你的跨平台测试神器 【免费下载链接】insomnia The open-source, cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC. With Cloud, Local and Git storage. 项目地址: https://gitcode.com/g…...