Spring Cloud Eureka学习笔记
参考书籍--《Spring Cloud 微服务实战》翟永超
(一)什么是服务治理
服务治理是微服务架构中最为核心和基础的模块,主要分为两部分:服务注册与服务发现。为什么需要服务治理?在微服务系统服务中,我们会通过一些静态配置来完成服务的调用,而每个服务都需要有一个具体的服务清单,开发人员需要实时维护这些清单。在服务不多的时候或许这项工作还可以接受,但当微服务系统相当大的时候,通过人工维护就显得不现实了。所以服务治理应运而生。
服务注册:在服务治理框架中,通常需要构建一个注册中心,每个单元向注册中心登记自己提供的服务,注册中心则负责分类维护这些清单,同时还需要以心跳方式去检测服务是否可用,避免服务故障。
服务发现:有了服务治理框架,服务间调用不再需要通过指定具体的实例地址来实现,而是通过向注册中心咨询服务,并获取所有服务的实例清单,以此来实现服务间的访问。
(二)Netflix Eureka
Spring Cloud Eureka,通过Netfilx Eureka来实现服务的注册与发现,虽然Netfilx Eureka是一个用java编写的框架,但它也支持非java语言构建的微服务,因为Eureka服务端有完备RESTful API。
(三)搭建服务注册中心
(1)搭建一个spring boot工程,在pom.xml中引入必要的依赖
注:spring cloud版本很多,一开是构建的时候使用的是spring boot 2.0.1RELEASE版本,后来出现了不兼容的问题,花了很多时间也没解决,后来用来1.5.x,终于成功了。
(2)启动类上添加@EnableEurekaServer注解
(3)在application.yml中进行相关配置
(4)启动
注册中心就搭建成功啦!其中Instances currently registered with Eureka栏是空的,因为此时还没有注册任何服务。
(四)注册服务提供者
(1)重新添加一个spring boot应用,添加Spring Cloud Eureka模块,pom.xml如下
(2)添加一个Controller处理请求,同时注入DiscoveryClient对象
(3)主类中添加@EnableDiscoveryClient注解
(4)application.yml文件中指明服务名和服务中心地址
(5)最后启动服务注册中心以及服务提供者,可以看到Instances currently registered with Eureka栏多了一个BEIYI-CLIENT