SpringCloud(一) —— eureka服务中心

1. 版本兼容问题

使用SpringCloud时,需要注意SpringBoot和Cloud的版本兼容问题
SpringCloud(一) —— eureka服务中心_第1张图片
如果出现启动错误需要先确认是否版本出现了问题

2. SpringCloud架构

在搭建eureka服务中心前,先简单说明一下eureka在SpringCloud中的定位以及SpringCloud中的各个组件。

SpringCloud(一) —— eureka服务中心_第2张图片
服务中心又称注册中心,管理各种服务功能包括服务的注册、发现、熔断、负载、降级等,比如dubbo admin后台的各种功能,实际上可以说他和dubbo+zookeeper架构中的zookeeper。

那么服务中心的作用呢?简单的来说是管理服务之间的相互调用。

  • 以下部分摘自 纯洁的微笑 的个人博客

正常调用项目A请求项目B
SpringCloud(一) —— eureka服务中心_第3张图片

有了服务中心之后,任何一个服务都不能直接去掉用,都需要通过服务中心来调用
SpringCloud(一) —— eureka服务中心_第4张图片

项目A调用项目B,项目B在调用项目C
SpringCloud(一) —— eureka服务中心_第5张图片
这时候调用的步骤就会为两步:第一步,项目A首先从服务中心请求项目B服务器,然后项目B在从服务中心请求项目C服务。

上面的项目只是两三个相互之间的简单调用,但是如果项目超过20个30个呢,在15年底的时候我司分布式的项目就达到了二十几个,画一张图来描述几十个项目之间的相互调用关系全是线条,任何其中的一个项目改动,就会牵连好几个项目跟着重启,巨麻烦而且容易出错。通过服务中心来获取服务你不需要关注你调用的项目IP地址,由几台服务器组成,每次直接去服务中心获取可以使用的服务去调用既可。

由于各种服务都注册到了服务中心,就有了去做很多高级功能条件。比如几台服务提供相同服务来做均衡负载;监控服务器调用成功率来做熔断,移除服务列表中的故障点;监控服务调用时间来对不同的服务器设置不同的权重等等。

  • end

3. eureka服务中心搭建

  • 创建一个springboot的maven-root,因为目前只搭建注册中心所以不需要别的依赖
    pom文件如下


    4.0.0

    
        ofm-eureka-server
    

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.5.RELEASE
        
    
    com.sakura
    basice
    0.0.1-SNAPSHOT
    basice
    pom
    basice-root

    
        1.8
        
        Finchley.RELEASE
    

    
     
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            org.springframework.boot
            spring-boot-starter
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



  • 新增model enreka-server 导入eureka-server的包
    pom文件如下


    4.0.0

    
        com.sakura
        basice
        0.0.1-SNAPSHOT
        
    

    com.sakura
    ofm-eureka-server
    0.0.1-SNAPSHOT
    war
    ofm-eureka-server
    eureka-server

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


    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

    
        
            spring-milestones
            Spring Milestones
            https://repo.spring.io/milestone
        
    



  • 配置eureka-server
    在application.yml中对eureka-server配置
server:
  port: 10000 #启动端口
eureka:
  instance:
    hostname: 192.168.16.96 #设置当前实例(服务)的主机地址
  client:
    #不向服务中心注册自己 来表明自己是一个eureka server.
    fetch-registry: false
    register-with-eureka: false
  server:
    #关闭服务中心保护模式
    enable-self-preservation: false
    #续期时间,即扫描失效服务的间隔时间(毫秒)
    eviction-interval-timer-in-ms: 1000

spring:
  application:
    name: eureka-y14 #应用名

#①:关于主机地址和应用名,一个应用名可能有多个主机,作为横向部署,通过应用名来确定是哪个服务,通过主机名来确定具体部署地址
  • 在启动文件中设置eureka启动
package com.sakura.server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer //添加该注解声明Eureka启动
public class OfmEurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(OfmEurekaServerApplication.class, args);
    }

}

而后启动项目 访问在yml文件中的配置地址 localhost:10000(因为没有设置context-path 所以不需要加上工程名)

如图所示即表示搭建成功
SpringCloud(一) —— eureka服务中心_第6张图片

你可能感兴趣的:(SpringCloud)