NameServer 启动步骤三|学习笔记

简介: 快速学习 NameServer 启动步骤三

开发者学堂课程【RocketMQ 知识精讲与项目实战(第三阶段)NameServer 启动步骤三】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/704/detail/12463


NameServer 启动步骤三


步骤三:

在JVM进程关闭之前,先将线程池关闭,及时释放资源

boolean initResult = controller.initilize();

if ( !initResult) {

controller.shutdown( );system.exit( status: -3);

}

在controller初始化完成之后,启动之前需要进行以下操作:

//注册JVM钩子函数代码

JVM退出时,去执行call方法,call方法的作用是资源释放

Runtime.getRuntime().addshutdowHook(new ShutdownHook

Thread(Log,new callable<Void>() {

@override

public void call() throws Exception {

//释放资源

controller.shutdown( );

return null;

}));

在下面代码中将线程池关闭,做出资源释放:

public void shutdown() {

this.remotingserver.shutdown();

this.remotingExecutor.shutdown();

this.scheduledExecutorService.shutdown();

if (this.filewatchservice != null) {

this.filewatchservice. shutdown( );

}

}

NameServer启动流程总结:

image.pngimage.png首先是NameSrvrStartup,它是启动入口,在这里面是用main方法,在main中调用createNameServerController去创建NameServerController。创建NameServerController,首先要创建namesrvconfig,之后再创建nettyserverconfig,然后去填充namesrvconfig和nettyserverconfig配置类,通过这两个配置类创建NameServercontroller对象。之后启动controller,在启动controller时会进行一些初始化。在NameServerStartup中先完成初始化,在真正的启动controller,在启动之前还要在JVM里注册钩子函数,钩子函数的作用是在JVM退出时释放controller资源。

相关文章
|
消息中间件 RocketMQ
这个RocketMQ节点似乎是在正常工作,但是它不能接收或者处理消息
这个RocketMQ节点似乎是在正常工作,但是它不能接收或者处理消息
913 0
|
开发框架 负载均衡 Java
Spring Cloud 介绍及负载均衡Ribbon、服务容错Hystrix 组件使用详解
Spring Cloud 介绍及负载均衡Ribbon、服务容错Hystrix 组件使用详解
429 0
|
机器学习/深度学习 缓存 监控
Pytorch学习笔记(7):优化器、学习率及调整策略、动量
Pytorch学习笔记(7):优化器、学习率及调整策略、动量
1853 0
Pytorch学习笔记(7):优化器、学习率及调整策略、动量
|
存储 NoSQL Java
Redis中的Big Key问题:排查与解决思路
在使用 Redis 的过程中,有一些问题可能会悄无声息地影响我们的系统性能,其中最具代表性的就是 Big Key 问题。
375 0
|
9月前
|
机器学习/深度学习 自然语言处理 算法
《深度解析:全连接层—卷积神经网络中的关键纽带》
全连接层在卷积神经网络(CNN)中起着桥梁作用,将卷积层和池化层提取的局部特征整合为全局特征,实现分类或回归任务。每个神经元与前一层所有神经元相连,通过权重和偏置进行特征转换,并引入激活函数以增强非线性建模能力。尽管参数量大易导致过拟合,但可通过正则化、Dropout和批标准化等技术有效应对,从而提升模型性能。
832 8
|
4月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
609 0
|
4月前
|
存储 负载均衡 Java
SpringCloud框架
本文介绍了微服务架构中常用的技术组件与原理,包括Nacos与Eureka的服务注册与发现机制、Nacos的分级存储模型、OpenFeign的远程调用流程、Ribbon与Spring LoadBalancer的负载均衡策略、Hystrix与Sentinel的限流熔断机制、滑动窗口算法原理,以及Spring Cloud Gateway的路由断言与过滤器功能,全面覆盖微服务核心治理能力。
|
Docker 容器
docker容器查看所有没使用的镜像,并删除
docker容器查看所有没使用的镜像,并删除
1637 0
|
机器学习/深度学习 人工智能 算法
探索机器学习中的过拟合现象及其解决方案
在机器学习领域,过拟合是一个常见且棘手的问题,它发生在模型过于复杂以至于捕捉到训练数据中的噪声而非信号时。本文将深入探讨过拟合的原因、影响以及如何通过技术手段有效缓解这一问题,旨在为读者提供一个全面而实用的指南。
|
Docker 容器
在Docker中,Docker容器有几种状态?
在Docker中,Docker容器有几种状态?