【微服务-服务拆分及远程调用】

服务拆分

概念

定义: 在微服务架构中,服务拆分是将一个大型应用程序拆分为多个小型、独立的服务的过程。这种拆分有助于提高应用程序的可伸缩性、可维护性和部署灵活性。
在这里插入图片描述

服务通信

在对一个系统进行服务拆分之后,我们每个服务之间都是隔离的,因为服务之间都是有关联的,所以,我们要进行服务之间的调用,就设计一些通信方式:远程调用,Eureka对服务进行服务注册与发现等。

服务通信——远程调用

等下将通过一个简单案例,来对远程调用进行说明,这里有一个cloud-demo项目,这个项目包含了两个子项目:user-service跟user-service两个服务。

项目导入

在这里插入图片描述

这两个服务之间,order-service调用了user-service服务中的查询用户,这里就涉及到我们两个服务间的通信了。

未远程调用运行情况:
在这里插入图片描述

基于RestTemplate进行远程调用

RestTemplate是Spring框架中的一个类,用于进行基于HTTP的客户端请求和响应操作。它提供了一种简单而灵活的方式来与RESTful风格的服务进行交互。

1.注册RestTemplate

在order-service的启动类中,进行注册。

在这里插入图片描述
2.在orderController进行处理请求

在orderController里面自动装配RestTemplate,然后调用getForObject方法,编写url地址,发送http请求。

在这里插入图片描述
效果展示

通过RestTemplate实现了远程调用,就可以在order服务中请求user服务中的数据。

在这里插入图片描述

远程调用的问题

可以看出,我们这次远程调用时,其实是采用硬编码的能力,这样不利于我们业务的开展,如果我们的服务是一个集群,如何选择端口呢?选择的服务是否可以正常运行呢?等等问题都暴露了出来。

在这里插入图片描述

服务通信-Eureka

Eureka是Netflix开源的一款服务注册与发现组件,用于构建基于微服务架构的应用程序。它提供了服务注册、服务发现和故障恢复的功能,使得微服务之间的通信更加简单和可靠。

在这里插入图片描述

搭建注册中心

1.引入依赖
在这里插入图片描述

编写启动类
在这里插入图片描述

编写配置文件
在这里插入图片描述
效果
在这里插入图片描述

服务注册

导入依赖
在这里插入图片描述

编写配置文件
在这里插入图片描述

在这里插入图片描述
重新启动服务,即可完成注册
在这里插入图片描述

服务发现

重写代码
在这里插入图片描述
实现负载均衡
在这里插入图片描述
测试案例

通过上面操作,我们实现了两个userService集群,1个orderService跟一个eureka服务,然后,在网页进行了发送两次请求。

测试效果

通过上面的测试用例,在第一次请求后,会请求到userService1,第二次会请求到userService2上,实现了负载均衡跟远程调用。

总结

以上就是微服务的简单知识总结,通过上述的理论与实践,也初步了解了服务拆分与远程调用等知识,服务拆分是让一个系统粒子化,提高整个系统的可维护性。服务拆分后,就涉及一个通信问题,这里主要从restTemplate发送http请求跟Eureka两个方式进行阐述。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值