前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringCloud入门系列之Eureka注册中心

SpringCloud入门系列之Eureka注册中心

作者头像
AI码真香
发布2022-09-13 17:32:43
2620
发布2022-09-13 17:32:43
举报
文章被收录于专栏:AI码真香
Eureka注册中心
一、Eureka注册中心
1.1、pom.xml中添加依赖
代码语言:javascript
复制
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.codesofun</groupId>
    <artifactId>eureka-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-server</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
1.2、application.properties中添加配置
代码语言:javascript
复制
#eureka默认端口号
server.port=8761
#实例名称,provider-service 是eureka底层服务,本身不具备任何业务功能,它是给注册中心提供服务的
eureka.instance.appname=provider-service
#主机名:域名
eureka.instance.hostname=localhost
#客户端默认连接的区域url
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
#是否向eureka中进行注册
eureka.client.register-with-eureka=false
#当前启动的微服务是否自动向注册中心获取其它微服务的注册地址
eureka.client.fetch-registry=false
1.3、启动类上添加注解@EnableEurekaServer
代码语言:javascript
复制
package com.codesofun.eurekaserver;

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

@SpringBootApplication
@EnableEurekaServer //开启eureka服务
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}
二、Eureka客户端(服务消费者)
2.1、pom.xml中添加依赖
代码语言:javascript
复制
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.codesofun</groupId>
    <artifactId>eureka-client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-client</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
2.2、application.properties中添加配置
代码语言:javascript
复制
#服务端口号
server.port=8081
#(应用名称)微服务名称,唯一
spring.application.name=order-service
#eureka客户端服务注册中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
2.3、启动类上添加注解@EnableEurekaClient
代码语言:javascript
复制
package com.codesofun.eurekaclient;

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

@SpringBootApplication
@EnableEurekaClient //开启eureka客户端服务
public class EurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }
}
三、Eureka名词概念
3.1、Eureka组成

Eureka Register Service(注册中心服务端)、Provider Service(服务提供者,客户端)、Consumer Service(服务消费者,客户端)

3.2、Eureka相关名词解释

Register

  • 服务注册, 向Eureka Service进行注册登记服务

Renew

  • 服务续约,30秒/次心跳包健康检查.90秒未收到,剔除服务

Fetch Registries

  • 获取服务注册列表,获取其他微服务地址

Cancel

  • 服务下线, 某个微服务通知注册中心暂停服务

Eviction

  • 服务剔除,90秒未续约,从服务注册表进行剔除

备注:

Eureka自我保护机制:Eureka在运行期去统计心跳失败率在15分钟之内是否低于 85%,若低于,则会将这些实例保护起来,让这些实例不会被剔除。建议如果非网络波动问题,可关闭自我保护机制。只需注册中心服务端添加配置eureka.server.enable-self-preservation=false

四、Eureka高可用配置
4.1、Eureka高可用方案
4.2、配置高可用

跟单机Eureka Server差不多,只是Eureka Server端配置中eureka.client.service-url.defaultZone注册地址需要分别指向另外的Eureka Server 注册地址(这里url中需要使用域名才可以)。这里启用不同端口的配置文件代表不同的Eureka Server服务注册中心。如下:

application-8761.properties

代码语言:javascript
复制
server.port=8761
eureka.instance.appname=provider-service
eureka.instance.hostname=server1
#指向另一个eureka server注册地址
eureka.client.service-url.defaultZone=http://server2:8762/eureka/,http://server3:8763/eureka/
eureka.client.fetch-registry=false
eureka.server.enable-self-preservation=false

application-8762.properties

代码语言:javascript
复制
server.port=8762
eureka.instance.appname=provider-service
eureka.instance.hostname=server2
#指向另一个eureka server注册地址
eureka.client.service-url.defaultZone=http://server1:8761/eureka/,http://server3:8763/eureka/
eureka.client.fetch-registry=false
eureka.server.enable-self-preservation=false

application-8763.properties

代码语言:javascript
复制
server.port=8763
eureka.instance.appname=provider-service
eureka.instance.hostname=server3
#指向另一个eureka server注册地址
eureka.client.service-url.defaultZone=http://server1:8761/eureka/,http://server2:8762/eureka/
eureka.client.fetch-registry=false
eureka.server.enable-self-preservation=false

Eureka Client客户端(微服务)中,配置eureka.client.service-url.defaultZone指向所有的Eureka Server注册地址即可完成Eureka高可用的配置

代码语言:javascript
复制
#服务端口号
server.port=8081
#(应用名称)微服务名称,唯一
spring.application.name=order-service
#eureka客户端服务注册中心地址,高可用,多个注册地址之间使用,
eureka.client.service-url.defaultZone=http://server1:8761/eureka/,http://server2:8761/eureka/,http://server3:8763/eureka/
4.3、微服务指标监控

Actuator监控组件

  • 自动为微服务创建一系列的用于监控的端点
  • 在SpringBoot自带,SpringCloud进行扩展
  • pom.xml依赖spring-boot-starter-actuator

可配置端点:

代码语言:javascript
复制
# * 开启所有端点  shutdown端点-- POST请求
management.endpoints.web.exposure.include=health,info,env,beans,shutdown
#显示完整的应用健康数据
management.endpoint.health.show-details=always
#允许可以重启端点,慎用
management.endpoint.shutdown.enabled=true

详细代码见仓库:https://gitee.com/xmlvhy/springcloud-learn 参考链接:https://www.itlaoqi.com/

本文作者: AI码真香

本文标题: SpringCloud入门系列之Eureka注册中心

本文网址: https://www.xmlvhy.com/article/88.html

版权说明: 自由转载-非商用-非衍生-保持署名 署名-非商业性使用4.0 国际 (CC BY-NC 4.0)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Eureka注册中心
    • 一、Eureka注册中心
      • 1.1、pom.xml中添加依赖
      • 1.2、application.properties中添加配置
      • 1.3、启动类上添加注解@EnableEurekaServer
    • 二、Eureka客户端(服务消费者)
      • 2.1、pom.xml中添加依赖
      • 2.2、application.properties中添加配置
      • 2.3、启动类上添加注解@EnableEurekaClient
    • 三、Eureka名词概念
      • 3.1、Eureka组成
      • 3.2、Eureka相关名词解释
    • 四、Eureka高可用配置
      • 4.1、Eureka高可用方案
      • 4.2、配置高可用
      • 4.3、微服务指标监控
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档