Spring Cloud常用组件——服务发现 Eureka

1 篇文章 0 订阅
1 篇文章 0 订阅

简介

其实Spring Cloud Netflix提供了许多优秀的功能,包括服务发现(Eureka),断路器(Hystrix),智能路由(Zuul)和客户端负载平衡(Ribbon)。但是今天我们这里主要介绍服务发现(Eureka)。

服务发现?

由于应用的分解,微服务的引入,服务提供者越来越多,业务系统与服务系统之间的调用,都需要有效管理。在微服务分布式体系下服务发现必将以核心组件而存在的。

服务发现有三个角色:服务提供者、服务消费者和服务注册中心。

  • 服务提供者:不解释。
  • 服务消费者:不解释。
  • 服务注册中心:联系服务提供者和服务消费者的桥梁。服务提供者将自己提供的服务地址注册到服务注册中心,服务消费者从服务中介那里查找自己想要的服务的地址,然后享受这个服务。服务注册中心提个多个服务,每个服务对应多个服务提供者。
    服务发现

实战

Eureka客户端

Eureka实例都可以登记为客户端,其他客户端也可以通过spring管理bean发现已注册的实例。

客户端向Eureka注册时,它会提供有关其自身的元数据,例如主机,端口,运行状况指示器URL,主页和其他详细信息。Eureka从属于服务的每个实例接收心跳消息。如果心跳在可配置的时间表上进行故障转移,则通常会将实例从注册表中删除。

示例一个最小的Eureka客户应用程序:

@SpringBootApplication
@RestController
@EnableEurekaClient
public class Application {

    @RequestMapping("/")
    public String home() {
        return "Hello world";
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }

}

pom.xml配置:

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

application.yml配置:

eureka:
  client:
    serviceUrl:
      defaultZone: http://xxxxx/eureka

Eureka服务端

这里的Eureka服务端功能相当于前面所说的服务注册中心,可以高可用分部署部署。

Eureka最小化服务端示例:

@SpringBootApplication
@EnableEurekaServer
public class Application {

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }

}

pom.xml配置:

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

application.yml配置:

server:
  port: 8761

eureka:
  instance:
    prefer-ip-address: true
  client:
    fetch-registry: false
    register-with-eureka: false
    serviceUrl:
      defaultZone: http://xxxx:8761/eureka/
  server:  #配置属性,但由于 Eureka 自我保护模式以及心跳周期长的原因,经常会遇到 Eureka Server 不剔除已关停的节点的问题
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 5000

SpringBoot2.0以上配置密码登录

<!--加入服务认证(密码),需要引入security-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

其他组件介绍:
Spring Cloud常用组件——服务发现 Eureka
Spring Cloud常用组件——配置中心 Config
Spring Cloud常用组件——网关 Gateway
Spring Cloud常用组件——安全 Security

参考:
https://spring.io/projects/spring-cloud
https://spring.io/projects/spring-cloud-netflix
https://docs.spring.io/spring-cloud-netflix/docs/2.2.5.RELEASE/reference/html/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值