有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

操作场景

您在生产环境上已经使用了自建的 Eureka 集群,希望将其上已运行的服务迁移至腾讯云的 TSE 注册中心。TSE 提供 PolarisMesh (北极星)完全兼容 Eureka 注册中心。在功能完全对齐的基础上,TSE 北极星在性能上相比开源 Eureka 有突破性提升。
本文将通过一个 Demo 应用,通过 spring-cloud-eureka-client 接入TSE PolarisMesh 的全流程操作演示,帮助您快速了解如何实现 Eureka 迁移。

前提条件

已创建 PolarisMesh 北极星网格,请参见 创建 PolarisMesh 治理中心
下载 Github 的 demo 源码 到本地并解压。
本地编译构建打包机器环境已安装了Java JDK、Maven,并且能够访问 Maven 中央库。
根据您自身的业务,已准备好业务部署的资源,选择虚拟机部署容器化部署其中一种方式即可:
虚拟机部署已创建 CVM 虚拟机,请参见 创建 CVM 虚拟机
容器化部署已创建 TKE 容器集群,请参见 创建 TKE 集群

操作步骤

1. 登录 TSE 控制台
2. 北极星网格下的 polarismesh 页面,单击页面左上方下拉列表,选择目标地域。
3. 单击目标引擎的“ID”,进入实例信息页面。
4. 查看访问地址,eureka-client 应用访问使用 eureka 端口(8761):



5. 修改 demo 中的注册中心地址
在下载到本地的 Demo 源码目录 下,分别找到 eureka/eureka-java/consumer/src/main/resources/application.ymleureka/eureka-java/provider/src/main/resources/application.yml两个文件。
添加微服务引擎北极星网格地址到项目配置文件中(以eureka/eureka-java/consumer/src/main/resources/application.yml为例)。
eureka:
client:
serviceUrl:
defaultZone: http://10.0.0.133:8761/eureka/
6. 打包 Demo 源码成 jar 包
6.1 eureka-java 源码根目录下,打开 cmd 命令,执行 mvn clean package 命令,对项目进行打包编译。
6.2 编译成功后,生成如下表所示的2个 Jar 包。
软件包所在目录
软件包名称
说明
\\eureka-java\\provider\\target
eureka-provider-${version}-SNAPSHOT.jar
服务生产者
\\eureka-java\\consumer\\target
eureka-consumer-${version}-SNAPSHOT.jar
服务消费者
7. 部署 provider 和 consumer 微服务应用,虚拟机部署方式、容器化部署或者本地运行,根据您业务实际的部署方式选择一种即可。
7.1 虚拟机部署方式部署 provider 和 consumer 微服务应用。
上传 Jar 包至 CVM 实例。
执行启动命令进行启动:
nohup java -jar [jar包名称] &
7.2 容器化部署方式部署 provider 和 consumer 微服务应用。
编写 dockerfile 生成镜像,参考:
FROM java:8
ADD ./eureka-provider-${VERSION}.jar /root/app.jar
ENTRYPOINT ["java","-jar","/root/app.jar"]
通过 TKE 部署并运行镜像。
8. 确认服务注册结果。
8.1 进入前面提到的微北极星网格实例页面。
选择服务管理 > 服务列表,查看微服务 EUREKA-CONSUMER-SERVICE 和 EUREKA-PROVIDER-SERVICE 的实例数量:
若实例数量值不为0,则表示已经成功接入微服务引擎。
若实例数量为0,或者找不到具体服务的服务名,则表示微服务应用接入微服务引擎失败。


8.2 调用 consumer 的 HTTP 接口。执行 http 调用,其中${app.port}替换为 consumer 的监听端口(默认为20002),${add.address}则替换为 consumer 暴露的地址。
curl -L -X GET 'http://${add.address}:${app.port}/echo?value=hello_world''
预期返回值:echo: hello_world