Eureka注册中心

目录

远程调用的问题

Eureka原理

 eureka的作用

总结

搭建EurekaServer

步骤一       

步骤二

步骤三

总结

服务注册

 总结

服务发现

在消费者的服务中实现服务拉取

修改业务层的代码,修改访问路径,用服务名代替ip、端口。

注册中心总结


远程调用的问题

服务消费者该如何获取服务提供者的地址信息?

如果有多个服务提供者,消费者该如何选择?

消费者该如何得知服务提供者的健康状态?

Eureka原理

 eureka的作用

服务消费者该如何获取服务提供者的地址信息?

        服务提供者启动时向eureka提供自己的信息

        eureka保存这些信息

        消费者根据服务名称向eureka拉取服务提供者信息

如果有多个服务提供者,消费者该如何选择?

        服务消费者根据负载均衡算法,从服务列表中挑选一个

消费者该如何得知服务提供者的健康状态?

        服务提供者会每隔30s向EurekaService发送心跳请求,报告健康状态

        eureka会更新记录服务列表信息,心跳不正常会被列表剔除

        消费者就会拉取到最新最有效的信息

总结

在eureka架构中,微服务角色有两类:

        eurekaserver:服务器,注册中心

                记录服务信息

                心跳监控

        errekaclient:客户端

                provider:服务提供者,例如user-service

                        注册自己的信息到eurekaservice

                        每隔30s向eurekaservice发送心跳

                consumer:服务消费者,例如order-service

                        根据服务名称向eurekaservice拉取服务列表

                        基于服务列表做负载均衡,选中一个微服务后发起远程调用

搭建EurekaServer


步骤一       

新建一个maven模块,在pom.xml中加入依赖

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

同时还要确保你的父工程也加入了这个模块。一般来说idea会给你自动加入

    <modules>
        <module>user-service</module>
        <module>order-service</module>
        <module>eureka-server</module>
    </modules>

步骤二

编写启动类,此时你的项目是继承了父工程的依赖,你可以使用springboot的注解

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

步骤三

添加并配置application.xml文件

server:
  port: 10088
spring:
  application:
    name: eurekaserver
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10088/eureka/

ok,步骤完了,此时我们可以通过浏览器输入

        localhost:10088来检验一下

出现这些就说明你注册成功了

总结

        引入eureka-server依赖

        添加@EnableEurekaService注解

        在application.yml中配置eureka地址 

服务注册

在项目中引入以下依赖

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

更新application.yml文件

在所有项目(服务中引入),并不只是一个项目。

项目启动后,我们登录注册中心的网站可以看到注册时服务不止一个了

 总结

order-service虽然是消费者,但是和user-service都是eureka的client端,同样可以实现服务注册;

首先        导入依赖,        然后        修改application.yml文件

服务发现

在消费者的服务中实现服务拉取

服务拉取是基于服务名称获取服务列表,然后对服务列表做负载均衡

修改业务层的代码,修改访问路径,用服务名代替ip、端口。

将之前的localhost:8081修改为userservice

 对RestTemlpate做负载均衡的注解

    @Bean
    @LoadBalanced    //关键
    public RestTemplate restTemplate(){
        return  new RestTemplate();
    }

重新启动服务,依然可以得到对象

注册中心总结

搭建eurekaservice

        引入eureka-service依赖

        添加@EnableEurekaServer

        在application.yml中配置eureka的地址

服务注册

        引入eureka-client依赖

        在application.yml中配置eureka地址

服务发现

        引入eureka-client依赖

        在application.yml中配置eureka地址

        给RestTemplate添加负载均衡注解

        用服务提供者的服务名称远程调用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

零维展开智子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值