文档中心>微服务引擎 TSE>实践教程>Spring Cloud 实践教程>接入>Spring Cloud 应用接入 ZooKeeper-TKE 部署场景

Spring Cloud 应用接入 ZooKeeper-TKE 部署场景

最近更新时间:2023-08-29 14:58:42

我的收藏

操作场景

本文以一对 Demo 示例(包含一个 provider 应用和一个 consumer 应用)介绍如何将通过 TKE 部署的 Spring Cloud 应用接入微服务引擎托管的 ZooKeeper 注册中心,并实现简单的服务访问。帮助您快速了解如何使用 TSE ZooKeeper 注册中心。

前提条件

已创建 TSE ZooKeeper 注册中心,请参见 引擎管理
本地编译构建打包机器环境已安装了 Java JDK、Maven,并且能够访问 Maven 中央库。

操作步骤

1. 创建 TKE 容器集群。 登录 TKE 控制台,新建一个标准集群,容器集群所在的私有网络 VPC 需要与已创建好的 ZooKeeper 引擎所在的私有网络保持一致。具体操作参见 快速创建一个标准集群
2. 获取 ZooKeeper 注册中心实例访问 IP。 登录 TSE 控制台,单击已创建好的 ZooKeeper 引擎实例的“ID”,进入基本信息页面,在访问管理页签可以获取 ZooKeeper 注册中心实例访问 IP。



3. 下载 Github 的 Demo 源码 到本地并解压。
4. 打包 Demo 源码成 jar 包。 在tse-simple-demo-main源码根目录下,打开终端窗口,执行 mvn clean package 命令,对项目进行打包编译。编译成功后,可以在如下目录看到生成如下表所示的2个 ZooKeeper Jar 包。
软件包所在目录
软件包名称
说明
\\tse-simple-demo-main\\tse-zookeeper-provider-demo\\target
tse-zookeeper-provider-demo-1.0-SNAPSHOT.jar
服务生产者
\\tse-simple-demo-main\\tse-zookeeper-consumer-demo\\target
tse-zookeeper-consumer-demo-1.0-SNAPSHOT.jar
服务消费者
5. 制作 provider 和 consumer 应用容器镜像并上传至镜像仓库。
5.1 编写 dockerfile 并生成镜像,dockerfile 内容参见:
FROM openjdk:8

ADD ./[jar包名称.jar] /root/app.jar

ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar /root/app.jar"]
5.2 参见 镜像仓库快速入门 上传 Spring Cloud 应用镜像至 TKE 镜像仓库
6. 在 TKE 容器集群中创建工作负载并选择对应镜像文件
6.1 登录 TKE 控制台,找到已创建好的 TKE 容器集群,单击集群 ID,进入集群的工作负载 > Deployment页面,创建工作负载并选择对应镜像文件,详细操作参见 Deployment 管理
镜像:选择已上传的 Spring Cloud 应用镜像。
镜像版本:选择已上传的 Spring Cloud 应用镜像版本。
环境变量:新增环境变量 JAVA_OPTS 并指定为 -Dspring.cloud.zookeeper.connect-string=[TSE Zookeeper注册中心实例访问IP:2181]


6.2 Deployment 信息填写完成后,单击创建 Deployment,出现如下页面时,代表 Deployment 创建成功。


7. 验证服务注册成功。 登录 TSE 控制台,在左侧导航栏选择 zookeeper,单击目标实例的 ID,进入基本信息页面。在页面上方选择服务管理页签,若出现以下页面,则证明服务注册成功。


8. 验证服务调用。 登录 Consumer 服务所在的 Pod,执行 curl 命令调用 Consumer 接口访问 Provider 服务。


curl localhost:19001/ping/test
访问结果如下:



注意事项

Spring Cloud 应用接入 Zookeeper 注册中心,配置文件格式需如下所示:
spring:
cloud:
zookeeper:
connect-string: [zookeeper注册中心IP:2181]
discovery:
register: true
enabled: true
prefer-ip-address: true