(六) Nacos Server处理注册请求
文章目录
- InstanceController.register()
-
- 1.获取到请求中指定属性的值
- 2.通过请求参数组装出instance
- 3.将instance写入到注册表
-
- 3.1 创建一个空的service临时的实例
-
- 3.1.1 重写计算校验和
- 3.1.2 将service写入到注册表
-
- 3.1.2.1 将service写入注册表
- 3.1.2.2 初始化service内部健康检测任务
-
- 3.1.2.2.1 定时清除过期instance任务
- 3.1.2.2.2 cluster的健康检测任务
- 3.1.3 持久实例到其他Nacos Server
- 3.2 将instance写入到service
- 4.总结
InstanceController.register()

InstanceController#register(): 处理Nacos Client的注册请求。
@CanDistro
@PostMapping
@Secured(parser = NamingResourceParser.class, action = ActionTypes.WRITE)
public String register(HttpServletRequest request) throws Exception {
// 从请求中获取指定属性的值
final String namespaceId = WebUtils
.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
// 从请求中获取指定属性的值
final String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
// 检测serviceName名称是否合法
checkServiceNameFormat(serviceName);
// 通过请求参数组装出instance
final Instance instance = parseInstance(request);
// 将instance写入到注册表
serviceManager.registerInstance(namespaceId, serviceName, instance);
return "ok";
}