二、SpringCloud学习 之 服务发现组件Eureka项目创建

1.Eureka简介

  • Eureka是Netflix开发的服务发现框架,SpringCloud将它集成在自己的子项目
    spring-cloud-netflix中,实现SpringCloud的服务发现功能。Eureka包含两个组件:Eureka Server和Eureka Client。
  • Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
  • Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就别一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
  • Eureka Server之间通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。

2.创建Eureka的服务端项目

2.1 这里我使用的是IDEA来创建项目,首先create new project,选择Spring Initializr,这里选择jdk的版本是1.8,然后点击next.
二、SpringCloud学习 之 服务发现组件Eureka项目创建_第1张图片

在next时有时候可能因为网速问题,无法打开创建页面,可以使用Custom,并使用http://start.spring.io尝试,如果还是无法创建可以通过访问https://start.spring.io/在spring官网创建项目并下载.如果还是不行,那只能用梯子或者使用自己引用porm文件的方法来创建项目了.

2.2 下面的选项自行填写,然后next
二、SpringCloud学习 之 服务发现组件Eureka项目创建_第2张图片
2.3 点击Cloud Discovery ,选择Eureka Server,在右上角可以选择spring boot的版本,这里使用最新版,创建项目后他会引用最匹配的SpringCloud的版本,点击next,选择路径,最后finish.
二、SpringCloud学习 之 服务发现组件Eureka项目创建_第3张图片
2.4 下面是项目的目录结构
二、SpringCloud学习 之 服务发现组件Eureka项目创建_第4张图片
2.5 porm中关于SpringCloud的依赖

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Greenwich.RELEASE
                pom
                import
            
        
    

这里定义SpringCloud的版本,以后在引入依赖时就不需要写版本


       org.springframework.cloud
       spring-cloud-starter-netflix-eureka-server

这里在dependencies中引入Eureka的server端依赖.

2.6 在resource中找到application.properties改名为application.yml (这里使用yml文件是个人喜好)

  • 使用以下配置,端口号可以自行更改
server:
  port: 8090 #服务端口
eureka:
  client:
    registerWithEureka: false #是否将自己注册到Eureka服务中,本身就是无需注册
    fetchRegistry: false #是否从Eureka中获取注册信息
    service-url:
      defaultZone: http://127.0.0.1:${server.port}/eureka/

2.7 在项目的启动类上,添加@EnableEurekaServe,最后启动项目,访问http://127.0.0.1:8090/看到以下页面,说明服务端已经创建成功
二、SpringCloud学习 之 服务发现组件Eureka项目创建_第5张图片

3.创建Eureka的客户端项目

3.1 创建步骤与创建服务端类似,在选择项目需要的配置时,选择Cloud Discovery时选择Eureka Discovery,并且springboot的版本需要与server端对应
二、SpringCloud学习 之 服务发现组件Eureka项目创建_第6张图片
3.2 porm文件与服务端类似,只是引入的依赖从server变成了client

		
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        

3.3 将application.properties改名为application.yml,并写入以下配置

server:
  port: 8081 #服务端口(自行选择)
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8090/eureka/ # 这里IP地址和端口号需要填写服务端的地址
 spring:
  application:
    name: blog-client #项目名称

3.4 在启动类上添加@EnableEurekaClient注解,启动项目.

如果无法启动该项目,可以在porm中添加web依赖

		
            org.springframework.boot
            spring-boot-starter-web
        `

3.5 在server端的图形界面上看到自己定义的项目名称,说明客户端创建成功
二、SpringCloud学习 之 服务发现组件Eureka项目创建_第7张图片

4. 保护模式

如果在Eureka Server的首页看到以下这段提示,则说明Eureka已经进入了保护模式:
二、SpringCloud学习 之 服务发现组件Eureka项目创建_第8张图片

  • Eureka Server在运行期间,会统计心跳失败的比例在15分钟之内是否低于85%,如果出现低于的情况(在单机调试的时候很容易满足,实际在生产环境上通常是由于网络不稳定导致),Eureka Server会将当前的实例注册信息保护起来,同时提示这个警告。保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)

你可能感兴趣的:(SpringCloud)