该栏目讲叙微服务概念、注册中心、负载均衡、配置中心、服务熔断、服务消费等知识
简介
- :Eureka 是一个服务治理组件,它主要包括服务注册和服务发现,同时还提供负载均衡、故障转移等能力
相关角色
1、服务注册中心
- :通过 Register、Get、Renew 等接口提供服务的注册与发现
2、服务消费者
- :向服务注册中心请求已经登记的服务列表,获取服务的主机、端口等信息,从而实现对具体服务的调用
3、服务提供者
- :将服务所在主机、端口、版本号、通信协议等信息(服务实例)注册到服务注册中心
案例
版本依赖
:包括父工程、eureka 服务端、eureka 客户端
<!--父工程依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
///
<!--eureka server依赖-->
<parent>
<groupId>com.mall</groupId>
<artifactId>父工程</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<dependencies>
<!--eureka服务器依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!--web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
///
<!--eureka client依赖-->
<parent>
<groupId>com.mall</groupId>
<artifactId>父工程</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<dependencies>
<!--eureka客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
eureka 服务器配置
server:
port: 8761
spring:
application:
name: eureka-server
# 配置单节点eureka信息
#eureka:
# instance:
# hostname: eureka01 #主机名
# prefer-ip-address: true # 启用IP地址注册
# ip-address: ${spring.cloud.client.ip-address}:${server.port} # 格式
# client:
# register-with-eureka: false # 是否将自己注册到注册中心,默认true
# fetch-registry: false # 是否从注册中心获取服务注册列表,默认true
# service-url: # 注册中心对外暴露的注册地址
# defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
# 配置集群eureka
eureka:
instance:
hostname: eureka01 #主机名
prefer-ip-address: true # 启用IP地址注册
ip-address: ${spring.cloud.client.ip-address}:${server.port} # ip格式
client:
service-url: # 指向其他eureka
defaultZone: http://localhost:8762/eureka/
eureka 客户端配置
server:
port: 7777
spring:
application:
name: product-service
eureka:
instance:
prefer-ip-address: true #启用IP地址注册
instance-id: ${spring.cloud.client.ip-address}:${server.port} #ip:port
client:
registry-fetch-interval-seconds: 10 # 表示客户端间隔多久向服务端摘取注册信息,默认30秒
service-url: # 设置服务注册中心
default-zone: http://localhost:8761/eureka/,http://localhost:8762/eureka/