当前位置: 首页 > article >正文

微服务实战 原生态实现服务的发现与调用_如何发现应用的服务调用问题

总结


相关推荐

上一篇 Eureka注册中心及集群搭建

前言

上一章中,我们介绍了Eureka注册中心及集群的搭建,这一节将介绍服务的发现和调用。注意,这个时候我们只有注册中心,并没有引入其他的组件,所以需要使用SpringCloud原生态的服务发现和调用的方式实现,循序渐进的带你走入微服务的世界。

上篇文章我们已经创建好了注册中心,这次我们需要创建一个服务提供者(provider)和一个服务消费者(consumer)两个项目。


一、服务提供者

  • 新建Maven项目provider
  • 引入项目依赖
    <parent>
        <groupId>com.cxy965</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../parent/pom.xml</relativePath>
    </parent>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>
  • 新建配置文件application.yml
server:
  port: 8002
spring:
  application:
    name: provider

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8001/eureka/
    fetch-registry: true
  • 创建启动类和服务接口,为了简便,暂时将服务接口放在了启动类,实际项目中,最好还是要放在controller中。
/**
 * @Author:公众号:程序员965
 * @create 2022-06-06
 **/
@EnableEurekaClient
@SpringBootApplication
@RestController
public class ProviderApplication {

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

    @GetMapping("/hello")
    public String hello(String name) {
       return "Hello "+name;
    }
}
  • 启动验证一下,可以正常返回。


二、服务消费者

  • 参考provider项目创建consumer项目
  • 修改配置文件中的端口和应用名称为8003、consumer
  • 创建启动类和服务消费代码
/**
 * @Author:公众号:程序员965
 * @create 2022-06-06
 **/
@EnableEurekaClient
@SpringBootApplication
@RestController
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }

    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }

    @Autowired
    DiscoveryClient discoveryClient;
    @Autowired
    RestTemplate restTemplate;

    @GetMapping("/hello")

http://www.kler.cn/a/527928.html

相关文章:

  • “harmony”整合不同平台的单细胞数据之旅
  • Flutter_学习记录_Tab的简单Demo~真的很简单
  • jmap命令详解
  • 服务器虚拟化技术详解与实战:架构、部署与优化
  • 5.3.2 软件设计原则
  • 【16届蓝桥杯寒假刷题营】第2期DAY4
  • 从 UTC 日期时间字符串获取 Unix 时间戳:C 和 C++ 中的挑战与解决方案
  • P1158
  • 19 压测和常用的接口优化方案
  • Python从0到100(八十六):神经网络-ShuffleNet通道混合轻量级网络的深入介绍
  • 【4Day创客实践入门教程】Day3 实战演练——桌面迷你番茄钟
  • 1/31每日
  • 事务02之锁机制
  • Linux中部署Yolov5详解
  • 嵌入式知识点总结 Linux驱动 (八)-Linux设备驱动
  • H. Mad City
  • 深度学习编译器的演进:从计算图到跨硬件部署的自动化之路
  • 《大数据时代“快刀”:Flink实时数据处理框架优势全解析》
  • 翻译: Dario Amodei 关于DeepSeek与出口管制一
  • (二)QT——按钮小程序
  • 本地运行大模型效果及配置展示
  • 牛客周赛 Round 77
  • Java 16进制 10进制 2进制数 相互的转换
  • 数据分析系列--⑦RapidMiner模型评价(基于泰坦尼克号案例含数据集)
  • 通过.yml文件创建环境
  • 反射、枚举以及lambda表达式