SpringCloud + SpringBoot +Nacos 整合 OpenFeign 的对接使用 【三】

总测试项目再次下载

OpenFeign简介

Feign是一个声明式的Web Service客户端。它的出现使开发Web Service客户端变得很简单。使用Feign只需要创建一个接口加上对应的注解,比如:FeignClient注解。Feign有可插拔的注解,包括Feign注解和JAX-RS注解。
Feign也支持编码器和解码器,Spring Cloud Open Feign对Feign进行增强支持Spring MVC注解,可以像Spring Web一样使用HttpMessageConverters等。
Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访问HTTP请求。

openFeign的功能

1.可插拔的注解支持,包括Feign注解和JAX-RS注解。
2.支持可插拔的HTTP编码器和解码器(Gson,Jackson,Sax,JAXB,JAX-RS,SOAP)。
3.支持Hystrix和它的Fallback。
4.支持Ribbon的负载均衡。
5.支持HTTP请求和响应的压缩。
6.灵活的配置:基于 name 粒度进行配置
7.支持多种客户端:JDK URLConnection、apache httpclient、okhttp,ribbon)
8.支持日志
9.支持错误重试
10.url支持占位符
11.可以不依赖注册中心独立运行

原文链接:https://blog.csdn.net/qq_43565087/article/details/106207867

创建项目

在Nacos项目下继续创建一个Springboot项目名为nacos-feign,创建时添加OpenFeign的依赖,如图:

nacos-fegin的pom.xml文件如下:

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>

添加项目配置文件
在resourse目录下,添加application.yml配置

server:
  port: 10003

spring:
  application:
    name: nacos-feign
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.230.136:8848
#服务挂掉, 开启熔断处理
feign:
  hystrix:
    enabled: true

启动类设置

package com.jq;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class NacosFeignApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosFeignApplication.class, args);
    }

}

创建控制层测试:

package com.jq.controller;


import com.jq.config.RemoteClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("feign")
public class FeignClientsController {

    @Autowired
    private RemoteClient remoteClient;

    @GetMapping("/feign")
    public String test() {
        return remoteClient.helloNacos();
    }


}

创建FeignClient接口

package com.jq.config;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

@FeignClient(name = "server",fallback = RemoteHystrix.class)//指定降级的服务
//创建RemoteClient接口,来定义OpenFeign要调用的远程服务接口。
// 同时通过@FeginClient注解指定被调用方的服务名,通过fallback属性指定RemoteHystrix类,来进行远程调用的熔断和降级处理。
public interface RemoteClient {

    //降级的方法
    @GetMapping("/hell/helloNacos")
    String helloNacos();

}

指定RemoteHystrix类,来进行远程调用的熔断和降级处理。

package com.jq.config;

import org.springframework.stereotype.Component;

@Component
public class RemoteHystrix implements RemoteClient{

    public String helloNacos() {
        return "请求超时了?????";
    }

}

在这里插入图片描述

浏览器访问 http://localhost:10003/feign/feign, 可以看到返回结果与RestTemplate结果无异,但对于编码和操作方式都更加优雅。

访问nacos-feign的接口 hhttp://localhost:10003/feign/feign, 可以通过OpenFeign远程调用server的接口,返回结果:
在这里插入图片描述
调用者:
在这里插入图片描述
提供者:
在这里插入图片描述
服务降级:

关闭提供者:
在这里插入图片描述
访问测试:下图为成功
在这里插入图片描述

总结
OpenFegin整合Ribbon和Hystrix,为微服务中远程调用提供了一种更优雅的调用方式,它支持负载均衡和容错熔断机制。

原文 https://blog.csdn.net/qq_33619378/article/details/95353326?spm=1001.2014.3001.5501

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SpringCloud是一个开源的微服务框架,旨在简化构建分布式系统的复杂性。它提供了一组工具和组件,使开发者能够快速构建和部署分布式应用程序。 SpringBoot是一个用于快速开发Java应用程序的框架,它简化了配置和部署过程。通过使用自动配置和准备的开发环境,SpringBoot可以让开发者专注于应用程序的业务逻辑而不是繁琐的配置。 Nacos是一个分布式的服务发现和配置管理平台。它可以帮助开发者轻松地实现微服务架构中的服务注册、发现和配置管理。Nacos提供了强大的服务发现和注册功能,支持动态配置管理,并具有容错和高可用性的特性。 结合起来,SpringCloudSpringBootNacos可以实现快速构建和部署分布式系统的目的。SpringCloud提供了一组工具和组件,使得开发者能够轻松实现服务注册和发现、路由和负载均衡等功能。而SpringBoot简化了开发过程,通过自动配置和准备的开发环境,开发者可以快速搭建和开发应用程序。Nacos则提供了服务注册、发现和配置管理功能,使得开发者可以更方便地进行服务治理。 总之,SpringCloudSpringBootNacos是三个非常重要的框架和平台,它们的结合可以帮助开发者更快速、更方便地构建和部署分布式系统。通过使用这些工具和组件,开发者可以专注于业务逻辑的开发和实现,而无需过多关注系统的复杂性和细节。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jq1223

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值