Nacos+OpenFeign服务注册和调用学习心得

主题

Nacos:一个服务管理和配置管理平台

OpenFeign:一个声明式web客户端(只有方法声明,无需方法实现)。支持SpringMVC注解。

非声明式客户端:调用者需要设置请求头,请求体,处理响应和错误等,例如下图

资源

nacos:Nacos 快速开始

openfeign:https://springdoc.cn/spring-cloud-openfeign

博客资源:https://b11et3un53m.feishu.cn/wiki/R4Sdwvo8Si4kilkSKfscgQX0niB?from=from_copylink

目标

  • 通过nacos注册服务

  • 利用openfeign拉取服务,实现简洁的远程调用

内容

  • 场景介绍
    例如一个点评系统有用户服务,支付服务,订单服务共三个服务

  • 它们的配置

  • 解读

    三个服务有三个不同的配置,分别是端口号和数据库。为了使系统具有高可用和分布式的特点,三个服务分别部署到不同的服务器;这时不同的服务在物理上处于分离状态。
    当用户服务调用->支付服务再调用->订单服务生成订单,不同服务之间调用就无法像单机系统那样通过本地调用

  • 虽然各个服务在物理上是隔离的,但是在网络上仍是相通,关键是通过配置。各个服务通过http请求实现网络访问。

配置服务,实现远程调用

  1. 使用nacos注册服务
    配置nacos地址,通过docker安装运行,(192.168.107.3)为我的虚拟机地址。

    nacos作为一个服务,类似rabbitmq,seata有自己的交互界面

  2. 基于openfeign实现远程调用


这里注解的值用了服务名而不是具体的url,如果直接写url属于硬编码,当url发生变更时需要重启服务;

体会

  • 学习 Nacos 让我意识到在微服务架构中,服务注册与发现是实现服务间通信的关键机制。Nacos 提供了一种简单而高效的方式来管理服务的注册和发现过程。

  • openFeign搭配nacos,使得编写web客户端更加简介,实现跨服务远程调用。


Nacos+OpenFeign服务注册和调用学习心得
http://localhost:8090//archives/openfeign-nacoswei-fu-wu-zhu-ce-he-diao-yong-xue-xi-xin-de
作者
LinWJ
发布于
2024年08月25日
许可协议