spring cloud+Eureka搭建

eureka的作用:

Eureka Server:注册中心服务端

注册中心服务端主要对外提供了三个功能:

服务注册
服务提供者启动时,会通过 Eureka Client 向 Eureka Server 注册信息,Eureka Server 会存储该服务的信息,Eureka Server 内部有二层缓存机制来维护整个注册表

提供注册表
服务消费者在调用服务时,如果 Eureka Client 没有缓存注册表的话,会从 Eureka Server 获取最新的注册表

同步状态
Eureka Client 通过注册、心跳机制和 Eureka Server 同步当前客户端的状态。

Eureka Client:注册中心客户端
Eureka Client 是一个 Java 客户端,用于简化与 Eureka Server 的交互。Eureka Client 会拉取、更新和缓存 Eureka Server 中的信息。因此当所有的 Eureka Server 节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者,但是当服务有更改的时候会出现信息不一致。

Register: 服务注册
服务的提供者,将自身注册到注册中心,服务提供者也是一个 Eureka Client。当 Eureka Client 向 Eureka Server 注册时,它提供自身的元数据,比如 IP 地址、端口,运行状况指示符 URL,主页等。

Renew: 服务续约
Eureka Client 会每隔 30 秒发送一次心跳来续约。 通过续约来告知 Eureka Server 该 Eureka Client 运行正常,没有出现问题。 默认情况下,如果 Eureka Server 在 90 秒内没有收到 Eureka Client 的续约,Server 端会将实例从其注册表中删除,此时间可配置,一般情况不建议更改。
 

下面介绍EurekaServer的搭建

以下文章中以这三个服务举例:

orderservice(订单服务,端口:8080)

userservice(用户服务,集成了两个端口:8081,8082)

eurekaserver(eureka的服务,端口:10010)

1、创建eureka服务

新建一个独立的服务:

①:引eureka服务端的依赖:注意是服务端:spring-cloud-starter-netflix-eureka-server

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

②:创建yml配置文件,内容:

spring:
  application:
    name: eurekaserver #eureka的服务名称
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10010/eureka   #注册eureka客户端

③:再application启动类中添加 eureka的开关注解:@EnableEurekaServer

eureka的服务就搭建完了。

2、消费者和提供者注册服务(举个以user服务的例子)

①:引入eureka的客户端依赖,注意是客户端:spring-cloud-starter-netflix-eureka-client

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

②:yml添加

spring:
  application:
    name: userservice #user的服务名称
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10010/eureka   #注册eureka客户端

上面这两步就是搭建完服务端和 提供者端的配置

3、调用微服务:(举个以order订单服务调用user用户服务的例子)

//发送http请求,写服务名即可
User user = restTemplate.getForObject("http://userservice/user/" + order.getUserId(), User.class);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值