SpringCloud学习之整合eureka

一:eureka简介

  1.eureka遵守cap原则里的AP原则,即高可用和分区容错性

    CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得

  2.eureka的地位

    Eureka 模块来实现服务注册和发现,Eureka Server作为服务的注册中心,其他微服务通过Eureka client 连接到 Eureka Server并维持心跳连接

  3. eureka的角色

    3.1 eureka server提供服务注册和发现

    3.2 Service Provider 服务提供方将自身服务注册进入eureka,从而使consumer能够通过eureka找到

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

二: 整合eureka

  前提: 基于 https://www.cnblogs.com/zhanyifan/p/10693869.html 的基础环境进行整合eureka

  1. 创建maven module ---- microservicecloud-eureka-7001

    1.1 修改pom

      注意: 这里的eureka server端采用 spring-cloud-starter-eureka-server 而非 spring-cloud-starter-netflix-eureka-server,本人采用spring-cloud-starter-netflix-eureka-server 进行eureka server进行注册时候,client 端无法注册进eureka

<?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">
    <parent>
        <artifactId>microservicecloud</artifactId>
        <groupId>com.ligong.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>microservicecloud-eureka</artifactId>
    <dependencies>
        <!--eureka-server服务端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>org.springframework.cloud</groupId>-->
            <!--<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>-->
        <!--</dependency>-->
        <!--热部署-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
            <version>1.2.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <version>2.1.4.RELEASE</version>
        </dependency>
    </dependencies>
</project>

   1.2 修改application.yml

server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com #eureka 服务端的实例名称 这里进行了主机映射,为了是方便后面的eureka集群配置
  client:
    register-with-eureka: false # false表示不向注册中心注册自己
    fetch-registry: false #false 表示自己端就是注册中心,我的职责是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址

    1.3 添加SpringBoot 主启动类  

@SpringBootApplication
@EnableEurekaServer
public class EurekaService7001App {
    public static void main(String[] args) {
        SpringApplication.run(EurekaService7001App.class,args);
    }
}

    1.4 启动EurekaService7001App, 并访问eureka7001.com:7001

    

    如果能看到此页面,说明eureka搭建成功,这里我已经搭建完毕了eureka集群,已经微服务的注册,所以能看到的信息会多些,刚做到这步的时候 installces currently registered with eureka下应该为No application available

  2.修改provider module

    2.1 修改pom

      新增以下依赖,注意不是spring-cloud-starter-eureka-server 是 spring-cloud-starter-eureka 没有-server

 <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-eureka</artifactId>
    <version>1.4.6.RELEASE</version>
 </dependency>
 <dependency>
   <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
 </dependency>

    2.2 修改application.yml

    新增以下内容

eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/

    2.3 在主启动类上添加@EnableEurekaClient 注解

@SpringBootApplication
@EnableEurekaClient
public class DeptProvider8080App {
    public static void main(String[] args) {
        SpringApplication.run(DeptProvider8080App.class,args);
    }
}

    2.4 测试

      2.4.1 先启动eureka,

      2.4.2 再启动provider微服务

      

      如果在eureka的进程中出现这句话,说明服务注册成功。

      你也可以到eureka7001.com:7001上查看,会出现

      

       说明服务注册成功,至此,eureka的整合基本完成

    

原文地址:https://www.cnblogs.com/zhanyifan/p/10699687.html

时间: 2024-10-10 01:16:46

SpringCloud学习之整合eureka的相关文章

springcloud学习03-spring cloud eureka(下)

7.配置服务提供者(生产者) 7.1.配置resources/application.yml. 值eureka.client.service-url(或serviceUrl).defaultZone是配置将服务注册到那个注册中心,server.port是自己服务占用的端口,spring.application.name是服务在注册中心的名字,需要是唯一的,见7.2下图: eureka: client: serviceUrl: defaultZone: http://localhost:8888/

SpringCloud学习笔记(1)——Eureka

Spring Cloud Spring Cloud为开发者快速构建通用的分布式系统(例如:配置管理.服务发现.断路器.智能路由.微代理.控制总线.一次性的Token.全局锁.领导者选举.分布式会话.集群状态)提供工具. 这里用的是最新版本Edgware 操作步骤 1.新建一个工程作为Eureka Server 创建完成后的pom.xml文件是这样的 接下来,运行一个Eureka Server 所以,最终这个工程看起来是这样的 启动以后,在浏览器中输入http://localhost:8761/就

springcloud学习03-spring cloud eureka

对eureka一个大概介绍:https://blog.csdn.net/u010623927/article/details/88762525 这里面有个我做dubbo是的一个理解的错误:服务注册中不直接提供服务, 正确的解释是:当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中取,完成一次调用. 所以说,服务注册中心记录的是服务提供者的服务地址以及服务状态等相关信息,这票博客中讲解的服务注册中心用了集群的方式,这

SpringCloud学习心得—1.2—Eureka注册中心的密码认证、高可用的设置

SpringCloud学习心得—1.2—Eureka注册中心的密码认证.高可用的设置 这是相关代码 链接 Eureka开启密码配置 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> 向properties添加密码与用户名 spr

SpringCloud学习心得—1.3—Eureka与REST API

SpringCloud学习心得—1.3—Eureka与REST API Eureka的REST API接口 API的基本访问 Eureka REST APIEureka 作为注册中心,其本质是存储了每个客户端的注册信息,Ribbon 在转发的时候会获取注册中心的服务列表,然后根据对应的路由规则来选择一个服务给 Feign 来进行调用. 如果我们不是Spring Cloud 技术选型,也想用 Eureka,可以吗?完全可以. 如果不是 Spring Cloud 技术栈,推荐用 Zookeeper,

SpringCloud学习之Ribbon

一.负载均衡与Ribbon 负载均衡,在集群中是很常见的一个“名词”,顾名思义是根据一定的算法将请求分摊至对应的服务节点上,常见的算法有如下几种: 轮询法:所有请求被依次分发到每台应用服务器上,每台服务器需要处理的请求数目都相同,适合所有服务器硬件都相同的场景 随机法:请求被随机分配到各个应用服务器,在许多场合下,这种方案都很简单实用. 源地址哈希(Hash)法:将请求来源的IP地址进行Hash计算,得到对应的服务器,这样来自同一个IP的请求总在同一个服务器上处理 加权法:根据应用服务器配置的情

SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理

前言 在上篇中介绍了SpringCloud Zuul路由网关的基本使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由网关的过滤器Filter以及异常处理的教程. SpringCloud Zuul Filter 介绍 过滤器概述 Zuul的中心是一系列过滤器,能够在HTTP请求和响应的路由过程中执行一系列操作. 以下是Zuul过滤器的主要特征: 类型:通常在应用过滤器时在路由流程中定义阶段(尽管它可以是任何自定义字

SpringCloud学习系列之三----- 断路器Hystrix和断路器监控Dashboar

前言 本篇主要介绍的是SpringCloud中的断路器(Hystrix)和断路器指标看板(Dashboard)的相关使用知识. SpringCloud Hystrix Hystrix 介绍 Netflix创建了一个名为Hystrix的库,它实现了断路器模式.主要的目的是为了解决服务雪崩效应的一个组件,是保护服务高可用的最后一道防线. 开发准备 开发环境 JDK:1.8 SpringBoot:2.1.1.RELEASE SpringCloud:Finchley 注:不一定非要用上述的版本,可以根据

springcloud微服务实战:Eureka+Zuul+Ribbon+Hystrix+SpringConfig

原文地址:http://blog.csdn.net/yp090416/article/details/78017552 springcloud微服务实战:Eureka+Zuul+Ribbon+Hystrix+SpringConfig 相信现在已经有很多小伙伴已经或者准备使用springcloud微服务了,接下来为大家搭建一个微服务框架,后期可以自己进行扩展.会提供一个小案例: 服务提供者和服务消费者 ,消费者会调用提供者的服务,新建的项目都是用springboot,附源码下载. coding仓库