本地开发的Spring Cloud应用或者Dubbo应用托管到SAE时,您可以使用SAE的注册中心,也可以使用MSE托管的注册中心。本文介绍如何搭建MSE的Nacos服务注册中心,并将应用部署在SAE进行托管。
前提条件
- 已创建专有网络,并确保网络可用。具体操作,请参见使用专有网络。
- 执行应用程序前,请确保您Nacos注册中心的访问端口(如8848)已添加至您的安全组。
背景信息
某创业公司现在需要将微服务应用托管至SAE,但期望使用MSE,不使用SAE注册中心。
本文以将Spring Cloud应用托管到SAE中的Demo应用Provider和Conumser为例,指导您如何在MSE上创建Nacos服务注册中心,将服务应用托管至SAE。
如果是集群部署,请参见集群部署说明。
说明 服务注册中心使用优先级:SAE服务注册中心>MSE的Nacos服务注册中心>自建Nacos。使用自建Nacos作为应用服务发现、配置管理等功能,您需要购买相应的资源进行搭建和维护,耗时耗力。使用MSE构建的Nacos集群,您仅需关注Nacos的构建位置、版本、网络和规格,不必关注Nacos的构建和维护,更加聚焦业务本身的实现。
步骤一:购买并构建Nacos引擎
- 进入MSE实例创建页面。
- 未开通MSE集群托管
- 登录MSE产品页。
- 在MSE产品页单击超值资源包。
- 选择您需要创建的MSE实例,例如ZooKeeper、Eureka和Nacos。
进入MSE实例创建及购买页面。
- 已开通MSE集群托管
- 登录MSE管理控制台。
- 在左侧导航栏选择。
- 在实例列表页面,单击创建实例。
- 设置参数信息。
参数说明如下。
参数 |
描述 |
付费模式 |
MSE有预付费(包年包月)和按量付费(按小时)两种模式,如果您的服务注册中心使用时间在一个月以上,建议采用更加优惠的预付费(包年包月)模式。 |
地域和可用区 |
选择您MSE实例所在地域。 |
引擎类型 |
选择Nacos。
|
引擎版本 |
MSE Nacos支持两种引擎版本,1.1.3和1.2.1。推荐使用1.2.1。
说明 目前仅1.2.1版本支持配置中心,1.1.3不包含配置中心功能。
|
引擎规格 |
MSE实例规格有四种规格,1核2G、2核4G、4核8G和8核16G。
请您根据实际情况选择合适的组件规格,关于组件的评估方法,请参见微服务注册配置中心实例能力评估。
|
集群节点数 |
选择集群内的节点数,即一个集群需要多少台上述规格的节点组成。
注意 强烈建议Nacos集群规模最小3个节点,否则无法保障高可用。
|
网络类型 |
网络类型包括专有网络和公网网络两种类型。 |
专有网络 |
指逻辑隔离的私有网络,您可以自定义网络拓扑和IP地址,支持通过专线连接。适合于熟悉网络管理的用户。
说明 如果选择专有网络,则需要选择具体VPC和交换机。
|
公网网络 |
IP地址由阿里云统一分配,配置简便,使用方便,适合对操作易用性要求比较高的场景。
说明 如果选择 公网网络,则需要购买公网流量。具体操作,请参见 配置公网带宽。
|
公网带宽 |
可选。如果您购买的实例需要通过公网访问,请添加公网流量。具体费用,请参见公网费用。
|
- 单击立即购买,在确认订单页面选中MSE服务协议,并依据提示支付。
步骤二:服务注册与发现
Nacos启动后,提供了服务注册发现功能,需要在应用侧指定服务注册中心。在应用程序执行后,系统会依据所设服务注册中心,自动进行服务注册与发现。
注意 执行应用程序前,请确保您Nacos注册中心的访问端口(如8848)已添加至您的安全组。
- 在服务应用侧指定注册中心,并运行Provider和Consumer应用。
打开src\main\resources路径下的application.properties文件,指定Nacos Server的IP地址。
- Provider
修改前:
spring.application.name=service-provider
server.port=18081
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka/
修改后:
spring.application.name=service-provider
server.port=18081
spring.cloud.nacos.discovery.server-addr=192.168.XX.XX:8848 #替换为您购买的Nacos注册中心的地址。
- Consumer
修改前:
spring.application.name=service-consumer
server.port=18082
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka/
修改后:
spring.application.name=service-consumer
server.port=18082
spring.cloud.nacos.discovery.server-addr=192.168.XX.XX:8848 #替换为您购买的Nacos注册中心的地址。
- 服务验证。
- Linux/Unix/Mac系统
curl -X GET 'http://192.168.XX.XX:8848/nacos/v1/ns/instance/list?serviceName=service-provider'
service-provider
:服务名。
192.168.XX.XX:8848
:安装Nacos的主机IP地址和端口号。
返回结果如下,表示服务发现成功。
- Windows系统
在浏览器中输入http://c:18082/echo-rest/{自定义变量}
或http://127.0.0.1:18082/echo-feign/{自定义变量}
。
返回结果如下,表示服务注册、发现成功。
127.0.0.1:18082
为运行Provider和Consumer的主机IP地址和访问端口。
步骤三:应用托管至SAE
将本地服务Provider和Consumer应用程序编译为WAR或者JAR包或者镜像,并部署到SAE。具体操作,请参见应用部署概述。
说明
- 使用MSE的Nacos注册中心时,请确保SAE的网络与Nacos的网络互通。
- 使用MSE的Nacos注册中心时,在部署应用时建议使用镜像方式或者JAR包方式,并配置启动参数
-Dnacos.use.endpoint.parsing.rule=false
和-Dnacos.use.cloud.namespace.parsing=false
。
- 如采用镜像方式,请将
-Dnacos.use.endpoint.parsing.rule=false
和-Dnacos.use.cloud.namespace.parsing=false
配置在镜像文件中。关于Docker镜像制作方法,请参见制作应用容器Docker镜像。
- 如采用JAR包方式,请在控制台启动命令设置区域的options设置文本框输入
-Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false
。
如果应用托管失败,请参见以下文档定位问题: