Spring Cloud中服务注册与发现使用的是Spring Cloud Eureka
一.什么是Spring Cloud Eureka
- 是基于Netflix Eureka做了二次封装
- 两个组件构成
- Eureka Server注册中心:供服务注册的服务器,服务注册的中心。
- Eureka Client服务注册:用来简化与服务器的交互,作为轮训负载均衡器,并提供服务的故障切换支持
- 系统中的其他微服务使用Eureka客户端,连接Eureka Server,并维持心跳连接,这样就能检测系统中各个微服务是否正常运行。
二.注册中心Eureka Server的使用
- Eureka Server为注册中心,用于服务的注册与发现,记录所有应用的信息和状态,应用叫什么名字,在哪台服务器上,目前是不是正常工作等。
- 在微服务架构时,我们通常将一个应用称之为一个服务。
1.创建项目
-
使用IDEA创建SpringCloud Eureka项目(选择Cloud Discovery -> Eureka Server)
-
创建项目的版本
- SpringBoot 2.0.0.M3
- SpringCloud Finchley.M2
- 项目的版本对应可以到spring.io官网上查看
2.启动项目
-
在启动类上添加注解
@EnableEurekaServer
,注解标识该项目由注册中心的功能 -
正常启动项目
-
访问localhost:8080查看浏览器图形化展示
- System Status表示注册中心的系统状态
- DS Replicas表示注册中心Server端有多少应用
- Instances currently registered with Eureka表示要注册要注册中心的应用
- General Info表示系统信息
- 其中registered-replicas默认使用的是8761端口
-
运行项目可能会报错,因为
@EnableEurekaServer
注解内部还有@EnableEurekaClient
,故该应用即是server端也是client端,两个端同时开启,当server端没有完成时,注册client就会报错。但server和client采用心跳的方式进行连接,故当server完成时,client就可以被注册。 -
还有一种报错的原因可能是由于server和client启动在同一个端口和地址上,故需要在application.yml中添加如下代码
eureka: client: server-url: #java应用都是8080端口,不好管理,故此处设为8761端口 defaultZone:http://localhost:8761/eureka/ register-with-eureka:false #由于eureka本身就是注册中心,则可以 #如果没添加下述代码,则注册的应用则为UnKnow spring: application: name:eureka #修改当前项目的端口 server: port:8761
三.服务注册Eureka Client的使用
1.创建项目
未完待续…
2.启动项目
未完待续…