疯狂SpringCloud微服务架构实战 (Eureka -- 服务注册中心)

一、Eureka介绍

Eureka 提供了基于 REST 的服务,在集群中主要用于服务管理。Eureka提供了基于Java语言的客户端组件,客户端组件实现了负载均衡的功能,为业务组件的集群部署创造了条件。使用该框架,可以将业务组件注册到 Eureka 容器中,这些组件可以进行集群部署,Eureka 主要负责维护这些服务的列表,并自动检查它们的状态。

二、Eureka 架构

一个简单的 Eureka 集群,需要一个 Eureka 服务器、若干个服务提供者;可以将业务组件注册到 Eureka 服务器中,其他客户端组件可以从 Eureka 服务器获取,并且进行远程调用。

Eureka 架构图

       例如以上的 Eureka 架构图中有两个服务器,服务器支持集群部署,每个服务器也可以作为对方服务器的客户端进行相互注册与复制。图中的三个 Eureka 客户端,其中的两个用于发布服务,另一个用于调用服务;不管是服务器还是客户端,都可以部署多个实例,这样一来,就很容易构建高可用的服务集群。

三、服务器端

       对于注册到服务器端的服务注解,Eureka 服务器并没有提供后台的存储,这些注册的服务实例被保存到内存的注册中心,它们通过心跳来保持其最新状态,这些操作都可以在内存中完成。客户端存在着相同的机制,同样在内存中保存了注册表信息,这样的机制提升了 Eureka 组件的性能,每次服务的请求都不必经过服务器端的注册中心。

四、服务提供者

       作为 Eureka 客户端存在的服务提供者,主要进行以下工作:

              第一,向服务器注册服务;

              第二,发送心跳给服务器;

              第三,从服务器端获取注册列表;

       当客户端注册到服务器时,它将会提供一些关于自己的信息给服务器端,例如自己的主机、端口号、健康检测连接等。

五、服务调用者

       对于发布到 Eureka 服务器的服务,服务调用者可对其进行服务查找与调用,服务调用者也是作为客户端存在的,但其职责主要是发现与调用服务。在实际情况中,有可能出现本身既是服务提供者、又是服务消费者的情况,例如在传统的企业应用三层架构中,服务层会调用数据访问层的接口进行数据操作,它本身也会提供服务给控制层使用。

六、实践案例

1. 创建Maven项目:crazyspringcloud-firsteureka-server,作为 Eureka 服务注册中心:

    (1)  pom.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         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>

    <groupId>com.sztxtech.creazyspringcloud</groupId>
    <artifactId>crazyspringcloud-firsteureka-server</artifactId>
    <version>1.0-SNAPSHOT</version>

    <name>crazyspringcloud-firsteureka-server</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

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

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值