springcloud之Eureka

原创
2018/06/08 14:32
阅读数 4

首先讲一下Eureka服务注册中心。对于Eureka,你可以把他理解为dubbo中的zokkeeper。用于监听其他服务的,并且springcloud帮我们封装好了很多东西,使用起来还是非常方便的。讲点概念性的东西,以及Eureka的介绍:一个系统架构中,任何单点的服务都不可能保证不会中断,因此需要eureka去做客户端的发现模式,保证其中一个节点中断后,其他的节点能保证提供服务,实现高可用 Eureka Server会提供服务注册服务,各个服务节点启动后,会在Eureka Server中进行注册,这样Eureka Server中就有了所有服务节点的信, 并且Eureka有监控页面,可以在页面中直观的看到所有注册的服务的情况。同时Eureka有心跳机制,当某个节点服务在规定时间内没有发送心跳信号时,Eureka会从服务注册表中把这个服务节点移除。Eureka还提供了客户端缓存的机制,即使所有的Eureka Server都挂掉,客户端仍可以利用缓存中的信息调用服务节点的服务。 Eureka通过心跳检测、健康检查、客户端缓存等机制,保证了系统具有高可用和灵活性。

讲了概念性的东西,接下来实战一下,首先自己创建一个springboot项目,命名Eureka,接下来做一些pom文件的配置,我的版本用的是1.5.8的版本

<parent>

                   <groupId>org.springframework.boot</groupId>

                   <artifactId>spring-boot-starter-parent</artifactId>

                   <version>1.5.8.RELEASE</version>

                   <relativePath/>

         </parent>

 

         <properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <java.version>1.8</java.version>

        <spring-cloud.version>Dalston.SR4</spring-cloud.version><!-- 统一版本管理 -->

</properties>

接下来引入统一多模块的依赖版本

<dependencyManagement>

        <dependencies>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-dependencies</artifactId>

                <version>${spring-cloud.version}</version>

                <type>pom</type>

                <scope>import</scope>

            </dependency>

        </dependencies>

</dependencyManagement>

 

然后就是一些常规的依赖config,eureka,eureka-server;包括maven仓库别忘记了。

这里顺便提一下,对于Eureka来说,实现负载均衡一般是配合ribbon搭配使用的,那么ribbon的依赖,Eureka已经帮我继承在spring-cloud-starter-eureka中了,只需要用@LoadBalanced 注解来实现,这个后面讲。

做好所有依赖以后,在Application启动项中添加@EnableEurekaServer注解,作用是表明应用为eureka服务,有可以联合多个服务作为集群,对外提供服务注册以及发现功能。

接下来在application.yml中做一些基本配置,这里我直接贴下,没什么比较重要的东西

spring:

  application:

    name: spring-cloud-demo-service

     

server:

  port: 8000

eureka:

  client:

    register-with-eureka: true    #是否在注册中心注册自己

    fetch-registry: false           #是否检索服务

    serviceUrl:

      defaultZone: http://127.0.0.1:8000/eureka/

  instance:

prefer-ip-address: true

 

 

恭喜你,已经配置完成了,接下来启动项目,登录http://127.0.0.1:8000,如果顺利进入页面,那么久OK了

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部