准备工作:环境搭建

由于 Spring Cloud LoadBalancer 是一个客户端负载均衡组件,在学习它之前,我们需要准备一下环境,提供注册中心和用户服务。环境如下:

  • 注册中心:使用 Eureka 实现注册中心

  • 用户服务:简单实现一个用户服务,模拟一些数据,暴露对用户信息的 CRUD 操作的 Restful 风格接口。

环境结构如下图:

准备工作:环境搭建

项目结构图

环境的项目结构如下:

准备工作:环境搭建

其中:

  • eureka_server:提供注册中心功能

  • user_service:用户服务

点击下载(springcloud_loadbalancer_demo.zip)项目代码,后续将基于该项目学习 Spring Cloud LoadBalancer 相关知识。

如果你成功下载项目代码后,可以通过两种方式部署服务,分别如下:

方式一:通过 IDEA 启动

直接使用 IDEA 启动注册中心,如下图:

(1)启动 EurekaServer 服务,不需要做任何配置:

准备工作:环境搭建

(2)启动用户服务(UserService),设置 JVM 参数 -DnodeName=node1 -Dserver.port=7001,如下图:

准备工作:环境搭建

(3)启动用户服务(UserService),设置 JVM 参数 -DnodeName=node2 -Dserver.port=7002,如下图:

准备工作:环境搭建

(4)启动用户服务(UserService),设置 JVM 参数 -DnodeName=node3 -Dserver.port=7003,如下图:

准备工作:环境搭建

所有服务启动后,如下图:

准备工作:环境搭建

方式二:通过 Docker 部署

解压上面下载的项目代码,你会发现 eureka_server 和 user_service 目录下均存在 README.MD 和 Dockerfile 文件,其中:

  • Dockerfile 文件用来快速构建 Docker 镜像

  • README.MD 文件提供了构建镜像和创建容器的帮助信息

注意:在执行下面操作前,请确保你已经成功安装了 Docker 服务。

构建 eureaka_server 服务

请按照如下步骤执行命令:

  • 第一步:创建名为 my-network 的自定义桥接网络,后续 user-servcie 也将加入到该网络,方便两者通信

docker network create springcloud_network
  • 第二步:构建镜像

sudo docker build -t eureka_server .
  • 第三步:创建容器,启动注册中心服务:

sudo docker run -d -p 8077:8077 --network springcloud_network --name eureka-server eureka_server:latest

构建 user-service 服务

注意:如果还没有构建 eureka_server,请先构建 eureka_server。

请按照如下步骤执行命令:

  • 第一步:构建镜像

sudo docker build -t user_service .
  • 第二步:根据上面构建的镜像创建容器,启动多三个用户服务

# 服务1
sudo docker run -d -p 7001:7001 --network springcloud-network \
  -e JAVA_OPTS="-DnodeName=node1 -Dserver.port=7001" \
  -e SPRING_PROFILES_ACTIVE=docker \
  --name user-service1 user_service:latest && sudo docker logs -f user-service1

# 服务2
sudo docker run -d -p 7002:7002 --network springcloud-network \
  -e JAVA_OPTS="-DnodeName=node2 -Dserver.port=7002" \
  -e SPRING_PROFILES_ACTIVE=docker \
  --name user-service2 user_service:latest && sudo docker logs -f user-service2

# 服务3
sudo docker run -d -p 7003:7003 --network springcloud-network \
  -e JAVA_OPTS="-DnodeName=node3 -Dserver.port=7003" \
  -e SPRING_PROFILES_ACTIVE=docker \
  --name user-service3 user_service:latest && sudo docker logs -f user-service3

成功执行完成上面所有步骤后,服务状态如下图:

准备工作:环境搭建

验证环境

打开浏览器访问 http://localhost:8077/ 地址,进入注册中心,如下图:

image.png

从上图可以看出,USER-SERVICE 服务有三个实例,分别通过如下地址查看服务中的用户信息:

访问 7001 端口输出的数据如下图:

准备工作:环境搭建

注意:输出数据最前面的 [node1] 是通过环境变量动态提供,以方便区分数据来自于那个服务,观察负载均衡效果。

  

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号