SpringCloud微服务全家桶-第6篇,Eureka服务注册与发现

SpringCloud微服务全家桶-第6篇,Eureka服务注册与发现

dubbo的注册中心是zookeeper,那么springcloud的注册中心是Eureka.

Eureka这个词是为了纪念阿基米德而来的,寓意大概就是发现的意思。

Eureka是什么

官网的解释:

Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定

位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常

重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改

服务调用的配置文件了。功能类似于dubbo的注册中心,比如Zookeeper。

说白了就是一张表,别人可以来这里登记,然后要用他的人就先来找找。

Eureka包含两个组件:Eureka Server和Eureka Client

Eureka Server提供服务注册服务

各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到

EurekaClient是一个Java客户端

用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)

Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper)。

Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器,它是服务注册中心。

SpringCloud微服务全家桶-第6篇,Eureka服务注册与发现

官网就是这张图

Eureka的三大角色

Eureka Server 提供服务注册和发现

Service Provider服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到

Service Consumer服务消费方从Eureka获取注册服务列表,从而能够消费服务

结合我们现在已有的工程模块看看:

总父工程 microservicecloud

通用模块api microservicecloud-api

服务提供者Provider microservicecloud-provider-dept-8001

服务消费者Consumer microservicecloud-consumer-dept-80

2.搭建服务注册中心

新建项目microservicecloud-eureka-7001 eureka服务注册中心Module

pom文件如下:

<project>

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelversion>4.0.0/<modelversion>

<parent>

<groupid>com.spring.springcloud/<groupid>

<artifactid>microservicecloud/<artifactid>

<version>1.0-SNAPSHOT/<version>

<artifactid>microservicecloud-eureka-7001/<artifactid>

<dependencies>

<dependency>

<groupid>org.springframework.cloud/<groupid>

<artifactid>spring-cloud-starter-eureka-server/<artifactid>

<dependency>

<groupid>org.springframework/<groupid>

<artifactid>springloaded/<artifactid>

<dependency>

<groupid>org.springframework.boot/<groupid>

<artifactid>spring-boot-devtools/<artifactid>

/<project>

SpringCloud微服务全家桶-第6篇,Eureka服务注册与发现

搭建完后回到父工程pom文件看看:

SpringCloud微服务全家桶-第6篇,Eureka服务注册与发现

3.新建application文件

server:
port: 7001
eureka:
instance:
hostname: localhost #eureka服务端的实例名称,就是给他起了个名字

client:
register-with-eureka: false #false表示不向注册中心注册自己。

fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务

service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

#给他一个url,设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址。

配置完后在主目录下新建启动类:

SpringCloud微服务全家桶-第6篇,Eureka服务注册与发现

package com.spring.springcloud;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication

@EnableEurekaServer

//代表eureka的服务端,接收其他服务注册进来

public class EurekaServer7001_App {

public static void main(String[] args) {

SpringApplication.run(EurekaServer7001_App.class,args);

}

}

单独启动项目:访问localhost:7001/

SpringCloud微服务全家桶-第6篇,Eureka服务注册与发现

可以看到现在还没有服务注册进来。


分享到:


相關文章: