微服务体系,有效解决项目庞大、互相依赖的问题。目前SpringCloud体系有强大的一整套针对微服务的解决方案。本文中,重点对微服务体系中的服务发现注册中心进行详细说明。本篇中的注册中心,采用Netflix 公司的Eureka。
本系列教程列表:
【微服务】之一:从零开始,轻松搞定SpringCloud微服务系列--开山篇(spring boot 小demo)
【微服务】之二:从零开始,轻松搞定SpringCloud微服务系列--注册中心(一)
Netflix Eureka:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。他包含很多功能,本文重点讲解它的服务注册中心。
官方解释:
Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers. We call this service, the Eureka Server. Eureka also comes with a Java-based client component,the Eureka Client, which makes interactions with the service much easier. The client also has a built-in load balancer that does basic round-robin load balancing.
Eureka支持服务动态扩容、缩容、失效剔除。
Eureka提供了完整的Service Registry和Service Discovery实现,与现有Spring Cloud完美融合。
注册中心服务原理由上图可以看出,蓝色部分为注册中心,黄色部分为一个生产者、消费者。所有应用都被同一个注册中心纳入管理。通常有Register(服务注册)、Renew(服务续约)、Cancel(服务下线)等操作。
环境清单JDK: 1.8
Maven:3.x+
IDE:idea
为了后续博文的开展,我们约定所有子系统都放置在一个父类项目下,采用Idea的模块开发机制,对所有子系统进行统一仓库管理,方便交流学习。
创建父类项目使用idea创建一个maven项目(创建之前设置好maven、jdk版本)。
然后在pom.xml文件中加入以下超级父类依赖。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent>