使用 Eureka 作为服务注册中心(服务器)

认识 Eureka

什么是 Eureka

  • Eureka 是在 AWS 上定位服务的 REST 服务,发布在 Netflix OSS 套件中

Netflix OSS 地址

  • https://netflix.github.io

Spring 对 Netflix 套件的支持

  • Spring Cloud Netflix

在本地启动一个简单的 Eureka 服务

Spring Cloud 提供的 Starter

  • spring-cloud-dependencies

  • spring-cloud-starter-netflix-eureka-starter

在类上声明 提供Eureka服务

  • @EnableEurekaServer

注意事项

  • 默认监听端口8761
  • Eureka 自己不要注册到 Eureka 了

将服务注册到 Eureka Server

Starter

  • 引入 spring-cloud-starter-netflix-eureka-client

声明

  • @EnableDiscoveryClient
  • @EnableEurekaClient

一些配置项

  • eureka.client.service-url.default-zone
    配置eureka的地址
  • eureka.client.instance.prefer-ip-address=true
    优先使用ip地址注册

如果不配 会使用默认的配置 默认使用8461端口

关于 Bootstrap 属性

Bootstrap 属性

  • 启动引导阶段加载的属性

  • 可以是 bootstrap.properties 格式 也可以是 bootstrap.yml 格式

  • spring.cloud.bootstrap.name=bootstrap 一般不修改文件名

常用配置

  • spring.application.name=应用名 会被注册到服务的注册中心上

  • 配置中心相关

例子

eureka-waiter-service:
只有一个类 EurekaServerApplication

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

	public static void main(String[] args) {
		SpringApplication.run(EurekaServerApplication.class, args);
	}

}

application.properties

server.port=8761
#端口号
eureka.client.register-with-eureka=false
#关闭eureka自己的注册 (默认true) 指示该实例是否注册到eureka注册中心,
#                       设置false, 表示是eureka服务中心
eureka.client.fetch-registry=false
#不去获取注册里面相关的内容 注册中心的职责是维护服务实例,不需要去检索服务,所里这里设置为false

pom文件


	<properties>
		<java.version>1.8</java.version>
		<spring-cloud.version>Greenwich.SR1</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-server</artifactId>
		</dependency>

		<!-- 引入 eureka服务器 依赖 -->
		<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>
	<!-- 引入 springcloud 的相关全部依赖  -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>



eureka-waiter-service
目录:
在这里插入图片描述

在 WaiterServiceApplication 上 加入@EnableDiscoveryClient 显示声明 它是一个DiscoveryClient

application.properties

spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
info.app.author=long
info.app.encoding=@project.build.sourceEncoding@
server.port=0
#自己随机一个端口

bootstrap.properties

spring.application.name=waiter-service  
#声明应用名

pom文件

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

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-cache</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>

		<dependency>
			<groupId>io.micrometer</groupId>
			<artifactId>micrometer-registry-prometheus</artifactId>
		</dependency>

		<dependency>
			<groupId>org.joda</groupId>
			<artifactId>joda-money</artifactId>
			<version>1.0.1</version>
		</dependency>
		<dependency>
			<groupId>org.jadira.usertype</groupId>
			<artifactId>usertype.core</artifactId>
			<version>6.0.1.GA</version>
		</dependency>
		<!-- 增加Jackson的Hibernate类型支持 -->
		<dependency>
			<groupId>com.fasterxml.jackson.datatype</groupId>
			<artifactId>jackson-datatype-hibernate5</artifactId>
			<version>2.9.8</version>
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
		</dependency>

		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</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>
	<!-- 增加 spring-cloud 依赖支持 -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

结果分析

运行程序 eureka-waiter-service
在这里插入图片描述
没有 客户端注册

运行 eureka-waiter-service 并刷新页面
在这里插入图片描述
点击 DESKTOP-MVGV7CO:waiter-service-test:0 我们可以看到一些具体信息
在这里插入图片描述

点击 Last 1000 since startup 我们可以看到注册的具体信息
在这里插入图片描述

在一般的生产环境中,我们一般不使用 Eureka ,而是使用其他的。所以,在生产环境中,不建议使用它

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值