首先,咱们来解释下什么是Eureka?web
Eureka:基于REST服务的分布式中间件,主要用于服务管理。服务直接的调用并非经过Eureka,只是维护一些服务的列表。spring
对比上面的图,咱们举一个详细的例子来讲明下,咱们能够将Eureka服务器看做是咱们如今的电商平台(好比京东),Eureka客户端的服务提供者看做是供应商(这里咱们选择华为),Eureka客户端服务器
的服务调用者就是咱们的用户了。好,理解了上面的架构图,让咱们一块来实现一个李白(服务调用者)在京东(Eureka服务器)购买华为(Eurake客户端的服务提供者)手机的小案例。架构
首先,咱们建立3个简单的maven项目app
建立好以后,咱们首先来搭建京东这个Eureka服务器,在pom.xml中加入Eureka的依赖,以下负载均衡
<dependencyManagement>框架
<dependencies>maven
<dependency>分布式
<groupId>org.springframework.cloud</groupId>测试
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
再编写一个启动类
@SpringBootApplication
@EnableEurekaServer
public class StartUp {
public static void main(String[] args) {
new SpringApplicationBuilder(StartUp.class).web(true).run(args);
}
}
这时候,咱们启动发现报错,这是由于,京东这个项目也注册到Eureka服务端,服务端默认端口8761,所以咱们须要设置一些Eureka的配置
此时咱们再启动项目,就会发现启动正常了,咱们访问,localhost:8761查看Eureka
好,到这一步,Eureka到服务器咱们已经搭建好了,下面咱们将华为注册到京东上去,操做eureka-huawei项目,一样,咱们首先在pom.xml中加入依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
编写启动类
咱们提供一个手机购买的方法
建立application.yml文件,将咱们华为项目注册进入京东(Eureka服务器)
这时候咱们再启动华为项目,再次访问localhost:8761,这时候咱们就会发现华为这个Eureka服务提供商被咱们注册进来了
测试咱们的手机功能:localhost:8000/phone/1
最后,咱们来操做咱们的eureka-customer项目,一样先添加依赖,这里咱们多引入了一个ribbon框架,由于如今大部分服务器都是负载均衡,咱们使用多时候不须要知道具体是由哪一个服务器提供,
启动类同huawei项目相同,这里再也不重复
yml文件只是改下名称,一样注册到咱们Eureka服务器
这里咱们用restTemplate来调用服务,编写一个配置类,提供RestTemplate
最后,咱们再编写controller,写一个购买手机服务,用来购买咱们华为提供的商品
好,如今咱们再启动customer项目,查看localhost:8761
这时,咱们的李白也注册了一个京东帐户了,接下来,他就能够买产品了,咱们调用http://localhost:9000/buyPhone/3,发现他成功的购买了华为的商品
到此一个简单的Eureka项目已经编写完毕