tencent cloud

弹性微服务

动态与公告
公告
产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
产品定价
欠费与停服说明
快速入门
步骤1:获取访问权限
步骤2:创建环境
步骤3:创建应用
步骤4:部署应用
操作指南
环境管理
应用管理
权限管理
查看变更记录
实践教程
Github Actions 在 TEM 中的使用
托管静态网站
弹性微服务应用访问公网(通过 NAT 网关)
弹性微服务应用访问公网(通过 API 网关)
弹性微服务应用运行失败故障排查指南
使用 API 网关快速访问 TEM 应用
Java 应用调优实践教程
Java 8 迁移至 Java 11 实践教程
API 文档
History
Introduction
API Category
Making API Requests
Environment APIs
ModifyIngress
Resource APIs
Application APIs
Service APIs
RollingUpdateApplicationByVersion
Access Policy APIs
Configuration file APIs
Log collecting APIs
Scaling Rule APIs
Application Version APIs
Other APIs
Workload APIs
Data Types
Error Codes
常见问题
弹性微服务配置
联系我们
词汇表
TEM 政策
隐私政策
数据处理和安全协议

服务注册与发现

PDF
聚焦模式
字号
最后更新时间: 2024-01-09 12:40:53

操作场景

本文档主要介绍在弹性微服务控制台中实现 SpringCloud 应用服务注册与发现的具体步骤。

操作步骤

控制台操作

2. 在左侧导航栏,单击应用管理进入应用管理页面,选择您的应用部署地域。
3. 单击新建,进入新建应用页面,填写应用信息并部署。参考 创建并部署应用
4. 对于 Spring Cloud 应用,如果所选择的发布环境中关联了注册中心,在部署时可以选择自动注入注册中心信息

具体配置

如果选择了自动注入注册中心,在用户提交部署时,弹性微服务会自动把注册中心默认参数以 properties 文件形式,保存到环境中名为 tse-config 的 ConfigMap 中,并通过 VolumeMounts 的形式,挂载到应用的 /config/tse-default-spring-cloud-config.properties 目录下。
同时,弹性微服务会为将此目录添加到应用的 SPRING_CONFIG_ADDITIONAL-LOCATION 环境变量中,如果应用中不存在 SPRING_CONFIG_ADDITIONAL-LOCATION,则将会为应用添加此环境变量。
基本配置如下所示:
apiVersion: v1
kind: Deployment
metadata:
name: my-service
spec:
containers:
- name: my-service
image: my-image
env:
- name: SPRING_CONFIG_ADDITIONAL-LOCATION
value: file:/config/tse-default-spring-cloud-config.properties
volumeMounts:
- name: tse-config
mountPath: /config/tse-default-spring-cloud-config.properties
subPath: tse-default-spring-cloud-config.properties
volumes:
- name: tse-config
configMap:
name: tse-config
items:
- key: tse-default-spring-cloud-config.properties
path: tse-default-spring-cloud-config.properties

对于不同的注册中心,弹性微服务会注入不同的参数:
zookeeper
nacos
假设申请的 zookeeper 地址为:10.0.1.30:2181。
apiVersion: v1
data:
tse-default-spring-cloud-config.properties: |
spring.cloud.zookeeper.connectString=10.0.1.30:2181
spring.cloud.zookeeper.discovery.preferIpAddress=true
kind: ConfigMap
metadata:
name: tse-config

假设申请的 nacos 地址为:10.0.120.11:8848。
apiVersion: v1
data:
tse-default-spring-cloud-config.properties: |
spring.cloud.nacos.discovery.server-addr=10.0.120.11:8848
kind: ConfigMap
metadata:
name: tse-config


说明与注意

关于 preferIpAddress

这里所有注入的注册中心参数都加上了 xxx.preferIpAddress=true,因为 Spring Cloud 在获取到本机IP时(弹性微服务中是 Pod IP)会自动再根据 IP 反查域名,如果判断 preferIpAddress 是 false(默认为 false),则通过域名去注册,否则通过 IP 去注册。
在弹性微服务中 Pod IP 映射的是 PodName,也就是如果不设置 preferIpAddress=true,则注册到注册中心的地址为 PodName,其他服务从注册中心拉取的服务实例地址为 PodName,导致通过 PodName 访问实例不通。

关于 Spring boot additional location

弹性微服务自动添加的环境变量 SPRING_CONFIG_ADDITIONAL-LOCATION 为 Spring boot 应用提供在应用外定制化 config 的能力,但此参数只在 Spring boot 2.0 版本之后生效。
如果您使用的是 Spring boot 1.x 版本,请将挂载目录 /config/tse-default-spring-cloud-config.properties 自行添加到 SPRING_CONFIG_LOCATION 环境变量中。
您也可以直接添加 JVM 启动参数进行设置,具体设置如下:
zookeeper
nacos
# 假设申请的 zookeeper 地址为:10.0.1.30:2181
-Dspring.cloud.zookeeper.connectString=10.0.1.30:2181
-Dspring.cloud.zookeeper.discovery.preferIpAddress=true
# 假设申请的nacos地址为:10.0.120.11:8848
-Dspring.cloud.nacos.discovery.server-addr=10.0.120.11:8848


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈