【SpringCloud】初始微服务

news/2024/11/29 2:52:39/

目录

一、单体架构

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.ppmy.cn/news/62789.html

相关文章

Triloga 的任务 — Satta 系列来袭!

谁战胜了这些凶兽,谁就获得了力量,让我们通过装备体现出来!来自神秘洞穴的疯狂昆虫外壳,黄昏之地燃烧中的部落的骨质盔甲,以及深海的美妙灯光。 Triloga 的任务——Satta 系列已在 The Sandbox 市场平台上架&#xff1…

【Java-05】常用API、正则表达式、Collection集合

主要内容 BigInteger类BigDecimal类Arrays类包装类String类的常用方法正则表达式Collection集合 1 BigInteger类 1.1 概述 概述 : java.math.BigInteger类是一个引用数据类型 , 可以用于计算一些大的整数 , 当超出基本数据类型数据范围的整数运算时就可以使用BigInteger了。…

java中枚举类型使用详解

在Java中,枚举类型(Enumeration)是一种特殊的数据类型,它允许程序员定义一个有限的、可枚举的数据集。枚举类型的定义通常在类的内部,在类的外部使用。 以下是一些关于Java中枚举类型使用的详细说明: 定义…

2023/5/8总结

JAVA基础知识(2) 1.方法 1、方法定义 格式:public static void 方法名(){ //方法体 } 2、方法调用 格式:方法名(); 3、方法的通用格式 public static 返回值类型方法名&…

业务连续性

业务连续性 业务连续性管理业务连续性的概念业务连续性计划建设过程组织管理业务影响分析(BIA)BIA-1确定业务优先级BIA-2风险分析BIA-3资产优先级划分 制定及批准实施制定及批准实施-风险降低制定及批准实施-风险转移制定及批准实施-风险规避与风险接受制…

计算机专业还有前途吗?从业9年的程序员告诉你优缺点

选专业如果你想选择计算机专业 我就从过来人的角度给你些建议 我从专科读到本科又读了在职研究生 正好覆盖面还算比较广 这里要做个限定 计算机专业并非是专业名 是一个类别 我专科读的是网络系统管理 没错就是网管 本科读的是计算机科学与技术 研究生读的是软件工程 本视频后面…

今年的面试难度有点大....

大家好,最近有不少小伙伴在后台留言,又得准备面试了,不知道从何下手! 不论是跳槽涨薪,还是学习提升!先给自己定一个小目标,然后再朝着目标去努力就完事儿了! 为了帮大家节约时间&a…

1062 Talent and Virtue

About 900 years ago, a Chinese philosopher Sima Guang wrote a history book in which he talked about peoples talent and virtue. According to his theory, a man being outstanding in both talent and virtue must be a "sage(圣人)"…