spring boot      1.5.9.RELEASE

spring cloud    Dalston.SR1

(1)接触了spring cloud 框架 ,首先要知道Eureka是什么。

    Eureka是spring cloud框架的 注册服务中心  ,可以有多个注册服务中心存在, 多个注册中心通过相互注册来同步服务注册信息。

(2)有什么用处?

    是为了分布式运算做配合工作,让不同的服务器可以相互通信,以微服务的方式各自处理专门的业务,其实就是http的访问,向指定服务器传入参数,让其把处理结果返回过来,但是因为服务提供者的访问路径不稳定,即ip等因素不稳定,可能会变化,却又不想让服务消费者改变调用代码,因此引入一个中间层 eureka ,统一管理所有服务的访问接口,这样消费者只需要向注册中心获取服务列表,知道服务名字【名字一般不会变】,那么就不需要关心ip是否变化,动态注入参数即可。

    不仅是分布式 计算用到 服务清单 ,集群 也可以用到 ,用于做负载均衡 ,提高处理效率。

(3)功能本质是什么?

    原本不使用 服务注册中心,其实也是可以在Java 访问http 请求的 ,但是前提需要知道每个服务 的 ip地址/域名 ,还需要请求路径 和参数格式,蛋疼的是 ,ip地址/域名容易改动,当需要调用非常多的服务时候,还得手动修改,很麻烦,且容易出错,

所以才用 eureka 服务注册中心来统一管理 ip地址/域名 ,使用其他东西来替代 ,于是选择了 application name  应用名 ,每个spring boot 工程都有一个应用名 ,一般不会随意改动 ,访问路径和参数格式一般也不会改动 ,因此,这样可以让服务消费端调用

服务提供者的接口代码稳定起来 ,即便服务提供者ip/域名有变化 ,消费者也不需要改动代码,该吃吃该喝喝 , 只需要提供者改动注册列表信息即可,因此,本质还是 http请求。

    

2.心得

(1)spring cloud 框架分 3类角色  :服务消费者  、 服务提供者  、注册中心 。

Spring cloud 框架 --- Eureka 心得

 

 

(2)服务提供者提供服务,向消费者暴露http请求接口【服务提供者也可以是服务消费者】,需要向服务注册中心注册信息 ,即在服务列表添加这个提供者服务的ip等信息;

(3)服务消费者则向服务注册中心获取服务列表 ,通过注册列表知道服务名字,即可获取并调用服务提供者的接口,这样就不需要知道服务提供者的具体ip信息了,ip信息由服务注册中心统一管理,因此,服务消费者只需要知道eureka 服务中心ip地址或者域名即可获取服务列表信息后使用服务接口。

(4)服务提供者需要知道 eureka 服务中心ip地址或者域名 ,向最少一个eureka 服务中心注册信息 ,可以多个同时注册。

注册中心可以互相注册,也可以不注册,但是为了保持服务列表的同步性,也就是CAP定理的 AP高可用性,服务注册中心一般是设置相互注册,

因此需要知道每个注册中心的ip地址/域名,

(5)spring cloud 引入了 eureka 的好处就是不再需要关注提供者的ip信息了 ,因为提供者的ip信息容易变动 ,现在提供者的信息由服务注册中心统一管理,ip信息不容易变动,因此只需要关注注册中心的ip即可  ,因为 注册中心相互注册信息同步,只要有一个没有坏,都不影响服务使用,

3.目录结构

使用maven多模块 ,在一个maven项目了添加多个maven子项目,使用spring boot 框架,

Spring cloud 框架 --- Eureka 心得

 

 

 4.eureka 注册中心配置

新建3个工程,

microservicecloud-eureka-7001 、
microservicecloud-eureka-7002 、
microservicecloud-eureka-7003

 配置基本一样,

Spring cloud 框架 --- Eureka 心得

 

 

 pom.xml文件导入依赖

<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">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.atguigu.springcloud</groupId>
        <artifactId>microservicecloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <artifactId>microservicecloud-eureka-7001</artifactId>

    <dependencies>
        <!--eureka-server服务端 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
        <!-- 修改后立即生效,热部署 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>

</project>
View Code

相关文章:

  • 2022-12-23
  • 2021-06-28
  • 2021-11-14
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2021-09-23
  • 2022-12-23
猜你喜欢
  • 2021-06-25
  • 2022-12-23
  • 2021-09-19
  • 2021-11-25
  • 2021-07-07
  • 2021-09-04
相关资源
相似解决方案