Spring Cloud 零基础实战(三):注册中心 Eureka 的搭建

1、开发 Eureka Server

1.1、创建项目

1)通过欢迎界面的入口创建项目

通过欢迎界面的入口创建项目

2)通过 IDEA 的主菜单创建项目
File -> New -> Project
通过 IDEA 的主菜单创建项目

选择 Spring Initializr 模式创建项目

填写项目信息

通过依赖引入 Eureka Server 组件

如果引用的依赖包本地仓库没有,就会从远程仓库下载,所以在建立项目时,确保网络通畅。

1.2、修改代码及配置文件

项目创建完成后,源码结构如下图所示:

eureka 项目 src 源码构成

下面进行文件修改
1)修改 EurekaApplication 文件
其实修改很少,只是增加@EnableEurekaServer 注解而已
增加@EnableEurekaServer 注解

注意:系统会自动提示导入包,如果不提示那么需要手动导入“import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
”,不然系统会报错依赖问题。
当出现依赖错误时,添加上图的import

2)删除 application.properties,新建 application.yml 文件
内容如下,主要是配置了 服务名称,服务端口,eureka 的注册服务 URL。

spring:
  application:
    name: eureka

server:
  port: 8000

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8000/eureka/
配置文件 application.yml 的内容

1.3、运行

右击 EurekaApplication -> Run 'EurekaApplication ' 即可启动

鼠标右击 EurekaApplication

运行 EurekaApplication 程序

在浏览器中输入 http://localhost:8000 即可进入 Eureka 控制台,我们可以看到服务的基本信息,以及可以看到已经注册的服务。Eureka Server 已经把它自己也注册到当前的注册中心了。
Eureka 控制台

如果不想让 eureka server 注册到自己的注册中心,只需要在配置文件 application.yml 中加上 register-with-eureka: false 即可。

spring:
  application:
    name: eureka

server:
  port: 8000

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8000/eureka/
    register-with-eureka: false
通过配置,避免 Eureka Server 本身注册到注册中心

注意:yml的缩进是比较严格的,请核对,下图箭头所指的两行的缩进需要对齐,否者可能会引起配置不生效。


注意 yml 文件的格式

重新编译后,Eureka Server 就没有注册到注册中心了


Eureka Server 没有注册到注册中心

至此,Eureka Server 就完成了。够简单的吧?

1.4、用 IDEA 自带的 Maven 给 Eureka 打包

1.4.1、配置

Run -> Edit Configuration


程序运行配置

点击“+”号,选择 Maven


配置 Maven 工程

输入一个名字,如:MyEurekaServer,命令行填入:clean package,点击OK,完成配置!

1.4.2、显示 Maven 工程界面

主菜单:View -> Tool Windows Maven Projects


显示 Maven 工程界面

包编译模式运行

成功生成 Jar 包

1.4.3、运行 jar 包

实例中生产的 jar 包文件为:C:\MyIdeaProjects\eureka\target\eureka-0.0.1-SNAPSHOT.jar
Windows键+R 运行:cmd
在windows命令行里输入:java -jar C:\MyIdeaProjects\eureka\target\eureka-0.0.1-SNAPSHOT.jar,该窗口会保持运行,直到终止退出为止。
使用浏览器访问 http://127.0.0.1:8000,能正常进入 Eureka Server 控制台。说明 jar 导出、运行正常!

2、开发 Eureka Client

2.1、创建项目

步骤和创建 Eureka Server 项目类似,新建 Spring Initializr,填写项目信息


填写项目信息

选择Eureka Discovery依赖,client用

选择 Web 依赖

后面一直Next、Finish

2.2、修改代码及配置文件

1)修改 EurekaApplication 文件
增加 @EnableDiscoveryClient 注解
2)删除 application.properties,新建 application.yml 文件

spring:
  application:
    name: eureka-client

server:
  port: 18000

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8000/eureka/

2.3、运行

右击 EurekaClientApplication -> Run 'EurekaClientApplication ' 即可启动
在浏览器中输入 http://localhost:8000 即可进入 Eureka 控制台

Eureka Client 成功在 Eureka Server 注册

2.4、打包

参看:1.4、用 IDEA 自带的 Maven 给 Eureka 打包

3、注册到 Eureka 服务器的微服务之间的调用

Eureka 服务器存在的目的就是可以让注册到 Eureka 的微服务之间可以方便地调用,同时采用 ribbon 可以实现微服务集群模式下的负载均衡。建立两个微服务,一个是服务提供者(Provider),一个是服务消费者(Consumer ),Consumer 调用 Provider 的服务。

3.1、服务提供者(Provider)的开发

1)新建工程
点击菜单:FIle -> New -> Project

新建工程

2)选择创建的项目类型
选择建立 Spring Initializr 项目,下一步
填写项目信息

3)选择依赖
选择 Web、Eureka Discovery、Ribbon三个依赖,如下图
选择依赖

注:如果 Provider 仅仅是提供服务,并不会调用其他服务的话,那么 Ribbon 依赖可以不加,但考虑到微服务一般都会调用其它服务,为了一致性,所有的微服务都加上了 Ribbon 依赖。
4)修改配置文件
将 application.properties 文件改名为 application.yml ,
application.properties 改名

application.yml 文件内容为:

spring:
  application:
    name: provider

server:
  port: 8010

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8000/eureka/

5)、创建和编写 ProviderController 控制器
在包 com.tanbushi.provider 里新建控制器类:ProviderController

创建控制器类

编辑类文件
类文件最简三步式:ABC

6)、测试运行
运行后,检测是否正常
A、查看 Eureka 控制台
浏览器访问 http://127.0.0.1:8000/,可以看到微服务 Provider 成功注册!
B、测试微服务 Provider
浏览器访问 http://127.0.0.1:8010/get_name
测试微服务 Provider

返回正常!

3.2、服务消费者(Consumer)的开发

1)、创建 consumer 项目

创建消费者 consumer

依赖选择和 provider 相同,也是三个
选择依赖

2)修改配置文件 application.yml

spring:
  application:
    name: consumer

server:
  port: 8020

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8000/eureka/

3)、修改 Consumer 默认的Application 函数

修改 ConsumerApplication 函数三步式 ABC

4)、编写 ConsumerController 代码
编写 ConsumerController 控制器代码

从上图可以看到,此处比 ProviderController 控制器多了两处,第一个是 RestTemplate 的注入(@Autowired),第二处是增加了一句Consumer 代用 Provider 的演示代码。
5)、测试运行
运行后,检测是否正常
A、查看 Eureka 控制台
浏览器访问 http://127.0.0.1:8000/,可以看到微服务 Consumer 成功注册!
B、测试微服务 Consumer
浏览器访问 http://127.0.0.1:8010/get_name
测试 Consumer

测试成功!


上一篇:Spring Cloud 零基础实战(二):JDK、IDEA、Maven的安装和配置
下一篇:Spring Cloud 零基础实战(四):最简单的多模块应用框架搭建
所属文集:Spring Cloud 零基础实战


你可能感兴趣的:(Spring Cloud 零基础实战(三):注册中心 Eureka 的搭建)