每天一点小长进

本文介绍了微服务中服务提供者与消费者的定义,并详细阐述了如何使用RestTemplate进行远程调用。同时,讲解了Eureka注册中心的工作原理,包括服务的注册、心跳机制以及客户端配置。通过Eureka,可以便捷地获取服务提供者的IP地址并进行调用,实现服务间的通信。在实际应用中,Eureka提供了服务发现和负载均衡的能力,简化了微服务架构中的交互流程。

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

微服务

1.服务的调用者与被调用这各为服务的消费者和服务的提供者

一个微服务项目既可以为服务的提供者也可以为服务的消费这,要看其在某一个业务中所扮演的角色

1.1消费者远程调用提供者

可以使用RestTemplate来发送远程调用请求,这个对象与任何代码无关,不管是java还是其他类型的语言都是可以使用Http地址来请求某个服务的

->1引导类中注入Bean对象

    @Bean
    @LoadBalanced  //负载均衡  一般提供者为集群时可以使用,也可以使用组件ribbon
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

->2注入Bean对象发送请求

        String url = "提供者的ip地址";
        User user = restTemplate.getForObject(url, User.class);  //发送get请求 post:postForObject

2.Eureka注册中心

2.1Eureka如何获取服务的提供者IP地址并且检验某服务的健康?

当服务的提供者启动时,会通过yml文件中配置的eureka地址访问eureka并注册IP,eureka每30秒会向提供者索要Ip(心跳机制),若获取到提供者的注册地址后会继续心跳,若获取不到提供者IP,eureka则会将该提供者剔除

2.2Eureka如何使用

eureka的使用基本上都是分三步走

->1导入相关依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

注意我们需要的是eureka服务端的依赖

->2配置yml核心配置文件

server:
  port: 10086       #eureka的端口号
spring:
  application:
    name: eureka-server   #该为服务的名称
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka/    #eureka的注册地址

注意:

我们在配置eureka服务端的时候也是需要配置eureka的注册地址的,因为eureka在也相当于一个微服务,并且也是为了之后防止单点故障做集群使用的,eureka的服务端也是客户端,相当于有点"雌雄同体"的意思

->3启动类开启Eureka服务端注解

@EnableEurekaServer

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

2.3配置Eureka客户端

配置Eureka客户端也是比较的简单大致分两步走

->1.在对应的客户端引入Eureka客户端依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

->2.配置对应的yml文件

server:
  port: 8080
spring:
  application:
    name: 服务的名称  #比较重要之后发送远程调用
eureka:
  client:
    service-url:
      defaultZone: 自己配置的Eureka服务端地址

2.4通过Eureka注册中心来发送远程调用

当我们配置好Eureka客户端服务端后启动Spring,可以看到对应的资源的名称以及ip地址

 因为windows的原因可能ip地址显示的为主机名称,但是不会影响我们的调用

直接通过对应提供者服务名称访问即刻实现远程调用,若对方为集群的话也可以添加ribbon组件或者负载均衡

        String url = "http://user-service/user/" + order.getUserId();
        User user = restTemplate.getForObject(url, User.class);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值