上节讲了Spring Cloud项目的搭建,这节一起来看看Spring Cloud微服务的发布与调用。本节后面还会演示Eureka的集群。
内容1:什么是Eureka? (概念是摘抄《疯狂Spring Cloud 微服务架构与实战》一书,感谢这本书作者)
Spring Cloud 集成了Netflix OSS的多个项目,不得不说Spring对第三方、优秀的项目真是无缝集成。 Netflix在Spring Cloud中的代号叫: spring-cloud-netflix. 这个里面包含多个子模块,这些子模块对Netflix下面的框架进行了封装,很方便我们使用。这节所演示的Eureka就是Netflix下面很重要的一个框架。
- Eureka 提供基于REST的服务,在集群中主要用于服务管理
- Eureka 提供基于java语言的客户端组件,客户端组件实现了负载均衡的功能
- 可以将业务组件(service provider, service invoker…)注册到Eureka容器中,这些组件可进行集群部署,Eureka主要维护这些服务的列表,并自动检查他们的状态。
一旦微服务注册到Eureka中,我们就可以通过非常简单的方式调用了(http://{server-name}/xxxx),并且可以通过Feign客户端来优雅地实现远程service调用。
内容2:一个简单的通过Eureka发布与调用微服务demo
废话不多说,开干!
创建Eureka Server:
- 创建一个Spring Cloud项目,叫eureka-server, 目录结构如图所示(我演示的项目是通过maven构建的,你也可以选择gradle):
2)在pom.xml中加入以下依赖:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<ar