手把手教你搭建SpringCloud项目(六)Eureka实现服务发现

本文是一系列关于SpringCloud项目搭建的教程,涵盖了从基础的Eureka服务注册中心到Consul、Ribbon、OpenFeign、Hystrix、Gateway、Config、Bus和Stream等多个组件的集成和实践,旨在手把手教会读者如何构建和管理微服务。通过服务发现组件,实现了微服务间的动态寻址和故障处理,简化了分布式系统中的通信问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是微服务?一看就会系列!

一、手把手教你搭建SpringCloud项目(一)图文详解,傻瓜式操作

二、手把手教你搭建SpringCloud项目(二)生产者与消费者

三、手把手教你搭建SpringCloud项目(三)集成Eureka服务注册中心

四、手把手教你搭建SpringCloud项目(四)Eureka集群版搭建

五、手把手教你搭建SpringCloud项目(五)生产者集群版搭建

六、手把手教你搭建SpringCloud项目(六)Eureka实现服务发现

七、手把手教你搭建SpringCloud项目(七)集成Consul服务注册中心

八、手把手教你搭建SpringCloud项目(八)集成Ribbon负载均衡器

九、手把手教你搭建SpringCloud项目(九)集成OpenFeign服务接口调用

十、手把手教你搭建SpringCloud项目(十)集成Hystrix之服务降级

十一、手把手教你搭建SpringCloud项目(十一)集成Hystrix之服务熔断

十二、手把手教你搭建SpringCloud项目(十二 )集成Hystrix之图形化Dashboard实时监控

十三、手把手教你搭建SpringCloud项目(十三 )集成Gateway新一代网关

十四、手把手教你搭建SpringCloud项目(十四 )集成Config分布式配置中心

十五、手把手教你搭建SpringCloud项目(十五)集成Bus消息总线

十六、手把手教你搭建SpringCloud项目(十六)集成Stream消息驱动

十七、手把手教你搭建SpringCloud项目(十七)集成Sleuth分布式链路跟踪

继续更新中,欢迎点赞关注!

一、服务发现简介

   各个微服务在启动时,将自己的网络地址等信息注册到服务发现组件上(eureka,zookeeper,Consul),服务发现组件会存储这些信息。服务消费者会从服务发现组件查询服务提供者的网络地址,然后根据该地址调用服务提供者的接口。各个微服务与服务发现组件使用一定的机制来维持心跳,服务发现组件若发现有服务没有提供心跳,那么服务发现组件会将该服务剔除。微服务网络地址发生变更(例如实例增减或者IP端口发生变化等),会重新注册到服务发现组件上,使用这种方式,可以避免因网络变化导致服务之间的通讯停止,服务消费者也无须人工的修改网络地址。简单的说就是对于注册到Eureka中的微服务,可以通过服务发现来获得该服务的信息。

二、服务发现的代码实例

我们需要在cloud-provide-payment提供者服务中的Controller中修改,如下图:

//注入服务发现的注解
@Autowired
private DiscoveryClient discoveryClient;
 
 //获取服务信息
GetMapping("/payment/discovery")
public  Object discovery(){
   List<String> services = discoveryClient.getServices();
        for (String s : services){
            log.info("********注册到eureka中的服务中有:"+services);
        }
    List <ServiceInstance> instances = discoveryClient.getInstances("MCROSERVICE-PAYMENT");
        for (ServiceInstance s: instances) {
            log.info("当前服务的实例有"+s.getServiceId()+"\t"+s.getHost()+"\t"+s.getPort()+"\t"+s.getUri());
        }
    return this.discoveryClient;
}

在启动类上加上注解@EnableDiscoveryClient,如下图:

@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class PayMentMain {
    public static void main(String[] args) {
        SpringApplication.run(PayMentMain.class,args);
    }
}

然后启动该服务,访问http://localhost:8001/payment/discovery获取当前注册中心的服务信息,如下图:

可以看到客户端和服务端都有如下两个服务:mcroservice-order和mcroservice-payment
在这里插入图片描述

我们将信息通过日志打印到了控制台上,现在看一下控制台打印的信息,如下图:
在这里插入图片描述

我们可以看到当前注册中心有mcroservice-order和mcroservice-payment这两个服务。还可以看到mcroservice-payment服务下的实例的ip和端口还有uri。这个可以获取很多的服务信息。大家可以自己看一下,根据自己的需要获取。如下图:

在这里插入图片描述

是不是so easy?
在这里插入图片描述

下一篇文章学习Consul的服务注册与发现,持续关注、点赞。我们持续更新中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhaoshuangjian

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

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

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

打赏作者

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

抵扣说明:

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

余额充值