SpringCloud--服务治理Eureka

你未必出类拔萃,但一定与众不同

SpringCloud--服务治理Eureka

服务治理中心是微服务(分布式)架构中最基础和最核心的功能组件,主要负责对各个服务实例进行管理,包含服务注册和服务发现

搭建Eureka服务治理中心

1.创建springboot项目,这里就不做详细演示

直接创建一个模块
在这里插入图片描述

2.在pom.xml引入依赖

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

3.创建启动类

@SpringBootApplication
@EnableEurekaServer   //服务端的启动类  可以接受别人注册
public class EurekaServer_7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer_7001.class,args);
    }
}

@EnableEurekaServer

代表SpringBoot应用启动以后,Eureka服务器同步启动。以Appication形式运行。如果启动失败有可能是JDK版本太高,SpringCloud的Netflix组件是依赖于JDK8之前的版本开发的。

此时启动Eureka时,会不停出现异常,例如以下异常,这是因为Eureka服务治理中心会把自己作为微服务去寻找注册自己的治理中心

为了避免这种情况需要进行额外的配置,停止注册自己,进行下一步骤

在这里插入图片描述

4.application.yml的创建和编写

spring:
  application:
    name: eureka-server
server:
  port: 7001

#Eureka配置
eureka:
  instance:
    hostname: localhost #Eureka服务端的实例名称
  client:
    register-with-eureka: false  #是否像eureka注册中心注册自己
    fetch-registry: false  #fetch-registry表示如果为false 则表示自己为注册中心
    service-url:   #监控页面
      defaultZone: http://localhost:7002/eureka/,http://127.0.0.1:7003/eureka/
      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

有了以上配置进行运行就不会出现异常 如下图成功启动

在这里插入图片描述

对application.yml的某些参数进行解读

  • spring.application.name:配置的是此微服务应用的名称
  • eureka.client.register-with-eureka:取消当前微服务注册自己,寻找其他微服务进行注册。
  • eureka.client.fetch-registry:取消服务获取功能,false表示自己为注册中心
  • eureka.client.service-url.defaultZone:需要注册微服务,通过这个属性来配置服务治理中心的注册地址,其实就是配置一些属性来获取其他注册中心。

5.运行微服务应用

使用localhost:7001进行访问

在这里插入图片描述

此时配置注册中心成功

搭建服务发现

需要往服务治理中心注册我们自己的服务实例

因此我这里创建一个模块进行服务的注册

1.创建一个SpringBoot模块项目

这是我的 我在里面还有一些业务代码

在这里插入图片描述

2.pom.xml 这是我自己的 用者自取

<!--        EUREKA-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
<!--        ACTUATOR完善监控信息-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>com.wyyy</groupId>
            <artifactId>springcloud-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

3.修改SpringBootAppication

@SpringBootApplication
@EnableEurekaClient  //启动之后自动注册到服务端
public class SpringCloudProviderUser {
    public static void main(String[] args) {
        SpringApplication.run(SpringCloudProviderUser.class,args);
    }
}

4.修改appication.yml或者是创建编写

server:
  port: 8081


spring:
  application:
    name: springcloud-provider-user


#Eureka 的配置 服务注册到哪里
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7002/eureka,http://127.0.0.1:7003/eureka,http://localhost:7001/eureka
  instance:
    instance-id: springcloud-provider-user


#info配置
info:
  app.name: test-springcloud
  company.name: wyyyy
  • eureka.client.service-url.defaultZone:根据这个url往其中注册实例

  • eureka.instance.instance-id:则是往服务中心注册时的名字(后面可以根据这个进行rcp调用)

  • info.app.name:则是此微服务的简介

  • info.company.name:则是当前微服务的一些信息

5.运行SpringCloudProviderUser

会发现此时注册中心已经可以注册进来当前微服务的实例了

在这里插入图片描述

个人博客** 欢迎访问

posted @ 2021-06-07 11:10  万里江海阔  阅读(99)  评论(0)    收藏  举报