当前位置:   article > 正文

Eureka的使用_eureka页面怎么看

eureka页面怎么看

通篇总共涉及三个项目 , 其中第一个项目 , eureka-server这个项目相当于之前我们做dubbo+zookeeper的项目的dubbo-admin和zookeeper , 这个项目就是相当于我们之前下载zookeeper的那个服务在命令行中跑的 , 他就是提供注册中心的一个服务
第二个项目就是我们的提供者 , 提供者需要将项目注册到注册中心 , 我们这里的提供者就是springcloud-provider-dept-8001这个项目

首先我们先来配置一个Eureka的服务端

配置相对来说很简单 , 让我们看看是怎么简单的


首先我们需要导入一个叫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>springcloud</artifactId>
        <groupId>com.starcpdk</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud-eureka-7001</artifactId>

    <!--导包-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
    </dependencies>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

下面我们来写配置文件

server:
  port: 7001

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

最后我们只要在启动类上增加一个注解@EnableEurekaServer就可以了

package com.starcpdk.springcloud;

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

// 启动之后访问  http://localhost:7001/
@SpringBootApplication
@EnableEurekaServer // EnableEurekaServer表示是一个服务端的启动类 , 可以接受别人注册进来
public class EurekaServer_7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer_7001.class , args);
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

接着我们来访问一下eureka的界面 , 在浏览器中访问项目就可以了, 我这个项目配置的端口是7001 , 因此我们只要访问http://localhost:7001/就可以了

在这里插入图片描述

我们来看一下如何注册一个项目到上面做的eureka的服务中

首先我们 需要现在项目中增加以下依赖

<!--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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

然后我们需要在项目中的yaml配置文件中增加如下的配置

# Eureka 的配置 , 服务注册到哪里
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/
  instance:
    instance-id: springcloud-provider-dept8001   # 修改eureka上面的默认描述信息!

# info配置
info:
  app.name: yyf-springcloud
  company.name: blog.starcpdk.com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

最后我们需要在启动类中增加如下注解@EnableEurekaClient

package com.starcpdk.springcloud;

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

// 启动类
@SpringBootApplication
@EnableEurekaClient // 自动在服务启动后自动注册到Eureka中
public class DeptProvider_8001 {
    public static void main(String[] args) {
        SpringApplication.run(DeptProvider_8001.class , args);
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

然后我们需要先把提供注册中心的服务eureka-server的项目EurekaServer_7001启动 , 用这个项目提供eureka的注册中心

接着我们启动提供者的这个项目DeptProvider_8001

这样我们访问注册中心也就是访问localhost:7001的话就会看到提供这注册到了注册中心
在这里插入图片描述

下面我们来在controller中增加一个方法 , 这个方法用来获取被注册的服务的信息

// 注册进来的微服务 , 获取一些消息
    @GetMapping("/dept/discovery")
    public Object discovery(){
        // 获取为服务列表的清单
        List<String> services = client.getServices();
        System.out.println("discovery=>services:" + services);
        // 得到一个具体的为服务信息
        List<ServiceInstance> instances = client.getInstances("SPRINGCLOUD-PROVIDER-DEPT");
        for (ServiceInstance instance : instances) {
            System.out.println(instance.getHost());
        }
        return this.client;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

光有上面的还不行 , 我们需要在启动类上增加一个注解@EnableDiscoveryClient // 服务发现

package com.starcpdk.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

// 启动类
@SpringBootApplication
@EnableEurekaClient // 自动在服务启动后自动注册到Eureka中
@EnableDiscoveryClient // 服务发现
public class DeptProvider_8001 {
    public static void main(String[] args) {
        SpringApplication.run(DeptProvider_8001.class , args);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

下面我们来搭建一个集群

我们将提供Eureka注册的服务项目建三个 springcloud-eureka-7001 springcloud-eureka-7002 springcloud-eureka-7003

server:
  port: 7002

# Eureka 配置
eureka:
  instance:
    hostname: eureka7002.com  # 服务端的实例名称
  client:
    register-with-eureka: false  #  表示是否向eureka注册中心注册自己
    fetch-registry: false  # 表示如果为false  则表示自己为注册中心
    service-url:  # 监控页面~
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在每个项目中 的yaml配置文件下面添加defaultZone属性的值
在7002中添加7001和7003 , 在7001中添加7002和7003 , 以此类推 , 添加另外两个项目

在服务提供者也就是需要注册到注册中心的那个项目的配置文件修改如下

server:
  port: 8001

# mybatis配置
mybatis:
  type-aliases-package: com.starcpdk.springcloud.pojo
  config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath:mybatis/mapper/*.xml

# spring 的配置
spring:
  application:
    name: com.starcpdk.springcloud-provider-dept
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource  # 数据源
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
    username: root
    password: root

# Eureka 的配置 , 服务注册到哪里
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  instance:
    instance-id: com.starcpdk.springcloud-provider-dept8001   # 修改eureka上面的默认描述信息!

# info配置
info:
  app.name: yyf-com.starcpdk.springcloud
  company.name: blog.starcpdk.com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

我们需要将配置文件中的defaultZone这个属性 , 把提供注册者的三个项目的项目地址全部写到里面

CAP原则

C:强一致性
A:可用性
P:分区容错性

zookeeper 网络故障后会整个注册服务瘫痪 , Eureka可以很好的应对网络故障导致的部分节点失去联系的情况

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/955911
推荐阅读
相关标签
  

闽ICP备14008679号