一. Eureka 架构

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

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

二. 实战——基于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应用
一. Eureka 架构 —— 第一个简单Eureka应用
2.添加配置文件application.properties ( eureka服务器必须设置下图两行为false,来说明是eureka服务器而不是eureka客户端 )

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

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

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应用
    一. Eureka 架构 —— 第一个简单Eureka应用
    一. Eureka 架构 —— 第一个简单Eureka应用
    一. Eureka 架构 —— 第一个简单Eureka应用
  2. 添加配置文件application.properties
    将应用名称配置为“first-service-provider”,该服务将会被注册到端口为8761 的Ereka 服务器, 也就是前面所构建的服务器,使用eureka.instance.hostname 来配置该服务实例的主机名
    一. Eureka 架构 —— 第一个简单Eureka应用
  3. 启动类:
    一. Eureka 架构 —— 第一个简单Eureka应用
  4. 运行:刷新http://localhost:8761/ ,结果如下:
    一. Eureka 架构 —— 第一个简单Eureka应用
4)编写服务调用者 (该module名为first-eureka-service-invoker)
  1. 步骤:创建该module步骤和创建服务提供者一样

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

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

  4. 编写一个服务:
    一. Eureka 架构 —— 第一个简单Eureka应用

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

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

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

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

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

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

相关文章:

  • 2021-10-27
  • 2022-02-15
  • 2021-06-16
  • 2021-04-04
  • 2022-12-23
  • 2022-12-23
  • 2021-09-13
猜你喜欢
  • 2021-12-12
  • 2021-04-01
  • 2021-09-06
  • 2021-12-24
  • 2021-07-14
  • 2021-11-29
  • 2021-05-09
相关资源
相似解决方案