SpringCloud基础
- 1. 微服务的远程调用
- 2. Eureka注册中心
- 1. 搭建Eureka服务注册中心
1. 微服务的远程调用
服务提供者:一次业务中被其它服务调用的一方;
服务消费者:一次业务中调用其它服务的一方;
2. Eureka注册中心
- 记录所有服务的信息,比如服务名,服务端口号;所有服务每过30秒发送一次请求到eureka注册中心,如果服务不在发送请求到eureka,该服务则会被eureka从服务列表中移除。
- 消费者可以根据对应的服务名直接调用相关服务;如有一个user服务注册在eureka中,其它服务调用该服务时,只需要通过@feign填写对应的服务名称;
- 如果存在多个服务提供者,消费者会通过负载均衡算法,从服务列表中挑选一个;
1. 搭建Eureka服务注册中心
- 创建一个普通的maven项目
- 在pom.xml文件中增加如下依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<!--具体的eureka服务器-->
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
- 在resource目录下创建一个application.yml文件(目前普遍使用yml格式,当然也可以使用propoties格式的配置文件)
#服务端口号
server:
port: 9999
# 服务名称
spring:
application:
name: newname # eureka的服务名称
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:9999/eureka
register-with-eureka: true
fetch-registry: false
instance:
prefer-ip-address: true
ip-address: 127.0.0.1
第三步中有些点需要注意:1. port端口号,要与defaultZone中的端口号一致,否则会报错
Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://127.0.0.1:9999/eureka/},
;
2. register-with-eureka:这个配置是用来表示eureka是否需要自身注册到自己的注册中心上面去;
- 需要在springBoot的启动类中增加注解@EnableEurekaServer;作为一个服务端的eureka,必要的一个主服务;
- 其它注册到该注册中心的,需要引入依赖,注册中心客户端依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
- 如果没有引入feign,那么在此之前,可以通过RestTemplate方式,通过注册中心,调用其它服务,服务名称可以登录注册中心控制台查看。我这边注册中心注册的端口是9999,所以可以直接打开
http://localhost:9999/
;
- 客户端注册配置;
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:9999/eureka
按照如上流程便可以创建一个简单的eurake服务。