Spring Cloud服务发现与调用

embedded/2024/12/22 19:14:54/

在Spring Cloud中,服务发现与调用是通过Eureka和RestTemplate或Feign等工具实现的。以下是如何设置和使用这些工具进行服务发现与调用的步骤:

1. 服务注册与发现

设置Eureka Server
  • 创建一个Spring Boot项目,添加Eureka Server依赖,并配置为Eureka服务注册中心。
  • 参考之前的步骤,确保Eureka Server在http://localhost:8761上运行。
设置Eureka Client
  • 创建多个Spring Boot项目作为服务提供者和消费者。
  • 在每个项目中添加Eureka Client依赖,并配置application.yml以注册到Eureka Server。
spring:application:name: service-provider  # 或 service-consumereureka:client:service-url:defaultZone: http://localhost:8761/eureka/

2. 服务调用

使用RestTemplate
  1. 配置RestTemplate

    • 在服务消费者项目中,创建一个@Bean来配置RestTemplate
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.client.RestTemplate;@Configuration
    public class AppConfig {@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}
    }
  2. 调用服务

    • 使用RestTemplate调用其他服务,通过服务名称进行调用。
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;@RestController
    public class ConsumerController {@Autowiredprivate RestTemplate restTemplate;@GetMapping("/consume")public String consume() {String serviceUrl = "http://service-provider/endpoint";return restTemplate.getForObject(serviceUrl, String.class);}
    }
使用Feign
  1. 添加Feign依赖

    • 在服务消费者项目的pom.xml中添加Feign依赖。
    <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
  2. 启用Feign

    • 在主应用程序类上添加@EnableFeignClients注解。
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication
    @EnableFeignClients
    public class ServiceConsumerApplication {public static void main(String[] args) {SpringApplication.run(ServiceConsumerApplication.class, args);}
    }
  3. 定义Feign客户端

    • 创建一个接口,使用@FeignClient注解指定服务名称。
    import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.web.bind.annotation.GetMapping;@FeignClient(name = "service-provider")
    public interface ServiceProviderClient {@GetMapping("/endpoint")String getEndpointData();
    }
  4. 使用Feign客户端

    • 在控制器中注入Feign客户端并调用服务。
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;@RestController
    public class ConsumerController {@Autowiredprivate ServiceProviderClient serviceProviderClient;@GetMapping("/consume")public String consume() {return serviceProviderClient.getEndpointData();}
    }

通过这些步骤,您可以在Spring Cloud中实现服务的注册、发现和调用。RestTemplate和Feign都提供了简便的方法来调用其他服务,选择哪种方式取决于您的具体需求和偏好。


http://www.ppmy.cn/embedded/147890.html

相关文章

ElasticSearch 自动补全

1、前言 当用户在搜索框输入字符时&#xff0c;我们应该提示出与该字符有关的搜索项&#xff0c;根据用户输入的字母&#xff0c;提示完整词条的功能&#xff0c;就是自动补全。 2、安装拼音分词器 Github地址&#xff1a;https://github.com/infinilabs/analysis-pinyin 插件…

第一次面试到第一份offer的经历分享

更多大厂面试经验的视频经验分享看主页 目录: 话不多说&#xff0c;进入正题 从去年九月份开始面试 到现在第一份offer中间经历了大概5个月的时间 我会将我面试过的公司跟一些比较经典的问题分享出来 公司&#xff1a; 1.360 2.奇安信: 3.安询 4.安腾信息技术公司 5.深思科技…

JS字符串方法汇总

String.anchor //创建一个带有名称的 <a> 元素字符串 //已弃用 let str test str.anchor(name) //<a name"name">test</a>String.at let str 1234567 str.at(0) //1 str.at(1) //2 str.at(-1) //7 str.at(-2) //6String.big //已弃用 let …

React+Vite项目框架

基于React Vite 搭建的项目框架&#xff0c;使用ESLint 用于代码检查 、Prettier 用于代码格式化、Husky 用于 Git 钩子、lint-staged 用于暂存文件的检查、commitlint 用于提交信息规范等&#xff0c;实现了路由配置、状态管理、样式响应式设计、亮/暗主题切换等功能。 做这…

QT修改运行窗口的图标

首先&#xff0c;在.pro下添加两行&#xff1a; Debug:DESTDIR $$PWD Release:DESTDIR $$PWD 指定目标文件的路径 指定生成的debug和release文件夹路径在当前项目下 上面是为了防止爆奇怪的错 右键项目添加新文件 选择QT-》QT Resource File 起个名&#xff0c;然后下一步…

Linux系统安装部署Tomcat

1、进入Tomcat官网&#xff0c;官网地址&#xff1a;https://tomcat.apache.org/ 2、点击左侧Download下的Archives按钮 3、选择需要下载的版本 下载地址&#xff1a;https://archive.apache.org/dist/tomcat/ 4、点击自己需要下载的版本&#xff0c;我这里下载的是9.0.6 5、…

AI图像生成利器:Stable Diffusion 3.5本地运行与远程出图操作流程

文章目录 前言1. 本地部署ComfyUI2. 下载 Stable Diffusion3.5 模型3. 演示文生图4. 公网使用Stable Diffusion 3.5 大模型4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 本篇文章将介绍如何在Windows系统电脑本地部署Stable Diffusion 3.5&#xff0c;并利用cpolar…

基于Python3编写的Golang程序多平台交叉编译自动化脚本

import argparse import os import shutil import sys from shutil import copy2from loguru import loggerclass GoBuild:"""一个用于构建跨平台执行文件的类。初始化函数&#xff0c;设置构建的主文件、生成的执行文件名称以及目标平台。:param f: 需要构建的…