SpringCloud 学习之 Eureka

先谈谈学了之后自己的理解

Eureka是微服务最基础的组件,是一个注册中心,用于服务注册与服务发现。那么什么是服务注册,什么又是服务发现呢?

服务注册

Eureka是一个注册中心,每个服务都会向Eureka登记自己的服务,包括主机地址端口号版本号通讯协议等信息,Eureka通过心跳机制检测服务状态,自动去除故障服务。

服务发现

通过Eureka,服务间的调用不再需要通过地址来访问,只需要通过服务名来调用,服务调用方通过服务名从注册中心获取可用服务实例列表,通过指定负载均衡策略取出一个服务实例调用,没错Eureka还有负载均衡的作用= =真叼…

来搭建Eureka Server

直接打开idea

new->project->spring initializr->选择CloudDiscovery->Eureka Server

然后等依赖载完就好了,这边用Greenwich.M1版本,话说cloud跟boot的版本对应我也是看的一脸懵逼,不过他自己选的总不会错

接下来修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
server:
port: 8761

eureka:
client:
service-url:
default-zone: http://localhost:8761/eureka/ # 注册中心地址
register-with-eureka: false # 设置为false就不会去找注册中心注册了
fetch-registry: false # 设置为false就不会去找可注册的中心了

spring:
application:
name: eureka

当然别忘了在启动类上加上@EnableEurekaServer声明他是一个Eureka Server哦~

接下来启动就好了

启动之后访问http://localhost:8761就能看到Eureka的界面了

来搭建一个客户端

一样打开idea然后用spring initializer创建工程,不过这次选择Eureka Discovery

创建完后一样,修改配置文件

1
2
3
4
5
6
7
8
9
eureka:
client:
service-url:
default-zone: http://localhost:8761/eureka/
instance:
hostname: eureka-client
spring:
application:
name: eureka-client

emmmmm,好像跟server的配置没啥区别

在启动类上加上@EnableEurekaClient启动~

如果你跟我一样用Greenwich.M1这个版本,我想你大概率会跟我一样…启动报错!

如果报错的话大概是新版本移除了spring-boot-web-starter这个依赖,加上就好了,如果加上还是报错请自己百度了~

OK,启动之后,刷新一下Eureka的那个页面,会看到应用注册上去了,这样就好了。

Eureka的高可用

据说真实环境不能只部署一台Eureka,那么多台Eureka怎么配置呢?很简单,举个栗子~
假如你有两个Eureka服务(Eureka1和Eureka2),那只需要Eureka1和Eureka2相互注册就行了,那个default-zone,1填2,2填1,然后需要注册的服务填俩就行了
假如你有三个,一样的道理,反正相互注册就对了~