当前位置: 首页 > 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);

 

http://www.lryc.cn/news/66135.html

相关文章:

  • 均摊时间复杂度
  • 夏驰和徐策的解决数学问题思路——反证法
  • 面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers
  • 虹科方案|使用 HK-TRUENAS支持媒体和娱乐工作流程-1
  • DDR5内存彻底白菜价,国外大厂却整出了比着火更离谱的骚操作
  • Linux网络——Shell编程之函数
  • GQCNN+PointNetGPD思路和问题--chatGPT
  • Mysql索引(2):索引结构
  • Spring框架介绍和应用实践
  • IO 流学习总结
  • PowerToys——免费、强大、高效的微软官方效率提升工具集,办公学习宝藏软件
  • 【C++】 类基础汇总(类封装,构造、析构函数...)
  • BM61-矩阵最长递增路径
  • selenium——unittest框架
  • matlab频谱分析详解
  • 用layui写用户登录页面遇到的问题
  • NMOS双向转换电路实测以及上升沿尖峰处理
  • 【数据结构】选择排序(详细)
  • 什么是企业内容管理?
  • 机器学习:分类、回归、决策树
  • java常见的异常,下一篇写如何正确处理异常
  • C#开发的OpenRA游戏之网络协议打包和解包
  • K8S通过Ansible安装集群
  • ChatGPT辩证观点:“人才不是一个企业的核心竞争力,对人才的管理能力才是一个企业的核心竞争力”
  • windows11 永久关闭windows defender的方法
  • 继承的基本知识
  • 【Frida-实战】EA游戏平台的文件监控(PsExec.exe提权)
  • 可视化和回归分析星巴克咖啡在中国的定价建议
  • 热门影片怎么买票比较便宜,低价买电影票的方法,纯攻略!
  • Python通过SWIG调用C++时出现的ImportError问题解析