SpringCloud之业务差分后如何调用 - Nacos方案

需求描述

当我们把一个单体的业务拆分之后,我们需要业务直接调用,就可以通过Nacos实现远程调用。

nacos与eureka对比

1、nacos与eureka的共同点

都支持服务注册和服务拉取
都支持服务提供者心跳的方式做健康检测

2、nacos与eureka的区别

nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式(一般情况下都使用临时实例,主动检测消费的服务器资源较大,服务器压力大)
临时实例心跳不正常会被剔除,非临时实例则不会被剔除
nacos支持服务列表变更的消息推送模式,服务列表更新及时
nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;eureka采用AP方式

下载Nacos

github地址:https://github.com/alibaba/nacos/releases?page=3 下载1.4.2的版本即可
nacos官方文档:https://nacos.io/zh-cn/docs/quick-start.html
下载Nacos之后切换到目录
在这里插入图片描述
通过命令启动nacos

startup.cmd -m standalone

在这里插入图片描述
访问Nacos启动后的地址,暂时还没有可用的服务
在这里插入图片描述

添加依赖

在上一章中我们在父工程已经加入了Alibaba的依赖,所以我们只需要给两个子工程添加就可以了。分别在user-service和orders-service的pom.xml中添加即可。

		<!-- nacos 客户端 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

配置Nacos

我们Nacos的环境搭建完成之后,需要在子工程中去配置好Nacos的注册
在这里插入图片描述
application.yml 配置

server:
  port: 8080
  http:
    encoding:
      charset: UTF-8

spring:
  application:
    name: user-service
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/spring-cloud-user?useUnicode=true&useSSL=false&characterEncoding=utf8
    username: root
    password: root
  cloud:
    nacos:
      server-addr: localhost:8848

启动服务看看是不是在Nacos中注册了服务
运行user-service可以看到nacos服务已经注册了
在这里插入图片描述
此时刷新我们的Nacos控制台也可以看到新注册的服务,这样我们的服务就注册成功了
在这里插入图片描述

调用远程服务

服务注册完成之后我们需要进行远程服务调用,这里我们就要介绍“feign”了,它可以轻松的实现远程服务调用,不需要我们通过复杂的http请求进行服务调用,学习成本几乎为零。

我们上一节已经完成了user-service和orders-service的编写,我们现在需要从orders-service中调用user-service获取用户信息,所以我们要在orders-service模块中添加Feifn依赖

Feign依赖添加

		<!-- Feign-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

编写远程调用代码
在这里插入图片描述
最后我们在Controller中去调用这个Client
在这里插入图片描述
最后我们把这两个服务启动,访问orders-service去获取订单详情,可以看到获取到了User的信息
在这里插入图片描述

  • 14
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值