一. Eureka 架构 —— 第一个简单Eureka应用

一. Eureka 架构

1) 一个简单的Eureka 集群,需要有一个Eureka 服务器、若干个服务提供者。我们可以将业务组件注册到Eureka 服务器中,其他客户端组件可以向服务器获取服务并且进行远程调用。

一. Eureka 架构 —— 第一个简单Eureka应用_第1张图片

二. 实战——基于idea的一个简单的Eureka 集群

1)创建一个空的maven项目(无需选骨架,假设该项目名为spring-cloud)

步骤:File——New Project——Maven——Next——填写GroupId, ArtifactId——Next。

2)构建Eureka服务器 (跟创建springboot项目差不多,该module名为first-eureka-server)

1.步骤:右键spring cloud——New Module——Spring Initializr——Next——填写Group,Artifact——Next——Dependencies选择Spring Cloud Discovery (然后勾选Eureka Server)——Next——填写Module name——finish.

一. Eureka 架构 —— 第一个简单Eureka应用_第2张图片
一. Eureka 架构 —— 第一个简单Eureka应用_第3张图片
2.添加配置文件application.properties ( eureka服务器必须设置下图两行为false,来说明是eureka服务器而不是eureka客户端 )

一. Eureka 架构 —— 第一个简单Eureka应用_第4张图片
3.编写启动类:(注意启动类注解是:@EnableEurekaServer)
一. Eureka 架构 —— 第一个简单Eureka应用_第5张图片
4.成功启动后,打开浏览器,输入:http://localhost:8761 。(因为还没有erueka客户端注册,所以下图红圈处为No instances available)
一. Eureka 架构 —— 第一个简单Eureka应用_第6张图片
5.pom.xml,像这种创建方式,idea会自动将对应版本添加进来,这就省去了去查找相应版本,如果想换其他版本请查看:https://spring.io/projects/spring-cloud
其中:spring-cloud-starter-netflix-eureka-server,会自动引入spring-boot-starter-web,因此只需要加入该依赖,我们的项目就具有Web 容器的功能 。

一. Eureka 架构 —— 第一个简单Eureka应用_第7张图片

3)编写服务提供者 (该module名为first-eureka-service-provider)
  1. 步骤:右键spring cloud——New Module——Spring Initializr——Next——填写Group,Artifact——Next——Dependencies选择Spring Cloud Discovery (然后勾选Eureka Discovery Client),选择Web(勾选Spring Web)——Next——填写Module name——finish.
    值得注意的是,创建该Module是要添加Spring Web依赖,如下:
    一. Eureka 架构 —— 第一个简单Eureka应用_第8张图片
    一. Eureka 架构 —— 第一个简单Eureka应用_第9张图片
    一. Eureka 架构 —— 第一个简单Eureka应用_第10张图片
    一. Eureka 架构 —— 第一个简单Eureka应用_第11张图片
  2. 添加配置文件application.properties
    将应用名称配置为“first-service-provider”,该服务将会被注册到端口为8761 的Ereka 服务器, 也就是前面所构建的服务器,使用eureka.instance.hostname 来配置该服务实例的主机名
    一. Eureka 架构 —— 第一个简单Eureka应用_第12张图片
  3. 启动类:
    一. Eureka 架构 —— 第一个简单Eureka应用_第13张图片
  4. 运行:刷新http://localhost:8761/ ,结果如下:
    一. Eureka 架构 —— 第一个简单Eureka应用_第14张图片
4)编写服务调用者 (该module名为first-eureka-service-invoker)
  1. 步骤:创建该module步骤和创建服务提供者一样

  2. 添加配置文件application.properties ,端口设置为8762
    一. Eureka 架构 —— 第一个简单Eureka应用_第15张图片

  3. 启动类
    @EnableDiscoveryClient 注解来修改启动类,该注解使得服务调用者,有能力去Eureka 中发现服务,需要注意的是@EnableEurekaClient 注解已经包含@EnableDiscoveryClient的功能,也就是说,一个Eureka 客户端,本身就具有发现服务的能力。
    一. Eureka 架构 —— 第一个简单Eureka应用_第16张图片

  4. 编写一个服务:
    一. Eureka 架构 —— 第一个简单Eureka应用_第17张图片

  5. 运行:刷新http://localhost:8761/ ,结果如下:
    访问:http://localhost:8762/hi?message=springcloud
    一. Eureka 架构 —— 第一个简单Eureka应用_第18张图片

5)以上三个项目结构图:

一. Eureka 架构 —— 第一个简单Eureka应用_第19张图片

6) IDEA开发SpringBoot或者Spring项目如何启动多个实例

上面的服务调用者first-eureka-service-invoker项目已经启动,通过修改该项目配置文件中的端口号,就可以再启动一个实例:比如该端口为:server.port=8763
这样很方便测试Spring Cloud的负载均衡功能。
新版本idea中修改如下:勾选上 allow parallel run
旧版本是 single Instance Only 需要把这个选项取消(新的勾上,旧的取消)

一. Eureka 架构 —— 第一个简单Eureka应用_第20张图片
一. Eureka 架构 —— 第一个简单Eureka应用_第21张图片

你可能感兴趣的:(spring,cloud)