SpringCloud知识点分析之项目实战2

承接SpringCloud知识点分析之项目实战1,该章节主要是将springCloud中各个维度的组件应用到项目之中。

一、组件Eureka

   1.Eureka服务注册与发现

      1.介绍

         Netflix在设计Eureka时遵守的就是AP原则,Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个

         基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来

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

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

     2.原理

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

        司,所有的微服务就相当要入驻物业公司管理的产业园,需要在物业公司中注册缴费才能入,如下图:Eureka

        Server是物业公司,Service Provier是入驻的公司,Service Consumer是入驻公司中的员工。

     SpringCloud知识点分析之项目实战2_第1张图片

     SpringCloud知识点分析之项目实战2_第2张图片

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

     Eureka Server:提供服务注册服务,各个节点启动之后,会在EurekaServer中进行注册,这样 Eureka Server中的

                             服务注册表将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。

     Eureka Client:是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(

                            round-robin)负载算法的负载均衡器。在应用启动之后,将会向Eureka Server发送心跳(默认周期)

                            为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会

                           从服务注册表中把这个服务节点移除(默认90秒)。

   3.三大角色

                      EurekaServer提供服务注册和发现

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

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

2.步骤构建

  1.创建服务注册中心

     新建服务注册中心子工程Module:microservicecloud-eureka-7001

     pom.xml

                   需要引入cloud的一个新的技术组件基本由两步:

                                  第一步:在pom中新增一个相关的maven坐标,例如如下

                                                 SpringCloud知识点分析之项目实战2_第3张图片

     创建application.yml

     创建启动类

     测试

   2.将已有的部门微服务注册进eureka服务中心

      ①修改microservicecloud-provider-dept-8001

                pom.xml

                application.yml

                启动类

 

二、创建

1.创建服务注册中心

  1. 新建Module:microservicecloud-eureka-7001(同其他模块)

   2.pom.xml


  4.0.0
  
    com.atguigu.springcloud
    microservicecloud
    0.0.1-SNAPSHOT
  
  microservicecloud-eureka-7001
  
   
          
          
	            org.springframework.cloud
	            spring.cloud-starter-eureka-server
          
          
          
               org.springframework
               springloaded
          
          
               org.springframework.boot
               spring-boot-devtools
          
  
  

    3.application.yml

       在src/main/source下新建application.yml

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/   #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址

    4.启动类

       在com.atguigu.springcloud下新建EurekaServer7001_app

       在启动类上面,标注的启动该新组件技术的相关注解标签@enableEurekaServer

package com.atguigu.springcloud;

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

@SpringBootApplication
@EnableEurekaServer  //EurekaServer服务端启动类,接受其他微服务注册进来
public class EurekaServer7001_app {
	public static void main(String[] args) {
		SpringApplication.run(EurekaServer7001_app.class, args);
		
	}
	
}

    5.测试

      SpringCloud知识点分析之项目实战2_第4张图片、服务注册

2.服务注册

    1.修改微服务消费者

        在微服务消费工程中的pom.xml中加入以下依赖信息:



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

 
      org.springframework.cloud
      spring-cloud-starter-config

        application.yml中增加一下信息:

eureka:   #前方无空格
  client: #客户端注册进eureka服务列表内
    service-url:
      defalutZone: http//localhost://7001/eureka          #该注册地址已经在服务注册中心Module的yml文件中提供了

        在启动类中加上@EnableEurekaClient,表示本服务会自动注册进eureka服务中

        SpringCloud知识点分析之项目实战2_第5张图片

    2.测试

       

        

 

     

你可能感兴趣的:(开源与类库)