当前位置: 首页 > news >正文

比较好的手机网站网页网站公司如何做备份

比较好的手机网站,网页网站公司如何做备份,惠州附近公司做网站建设多少钱,南阳网站建设xihewh当一台机器下线时,面临很多问题:如何将其从注册中心下线?如何清理释放资源?客户端拉取服务列表时也使用了本地缓存,如何及时更新本地缓存? 服务端机器的优雅下线需要使用ShutdownHook,这相当于添…

        当一台机器下线时,面临很多问题:如何将其从注册中心下线?如何清理释放资源?客户端拉取服务列表时也使用了本地缓存,如何及时更新本地缓存?

        服务端机器的优雅下线需要使用ShutdownHook,这相当于添加了一个关闭钩子,这个钩子是一个线程,它在JVM关闭时(即程序结束时)被调用,清理资源,优雅下机。

   public void clearAll() {log.info("addShutdownHook for clearAll");// 添加了一个关闭钩子,这个钩子是一个线程,它在JVM关闭时(即程序结束时)被调用,清理资源,优雅下机Runtime.getRuntime().addShutdownHook(new Thread(() -> {try {InetSocketAddress inetSocketAddress = new InetSocketAddress(InetAddress.getLocalHost().getHostAddress(), NettyRpcServer.PORT);CuratorUtils.clearRegistry(CuratorUtils.getZkClient(), inetSocketAddress);} catch (UnknownHostException ignored) {}// 操作完整、优雅,便于释放连接资源,便于自定义清理逻辑ThreadPoolFactoryUtil.shutDownAllThreadPool();}));}

          在钩子线程中需要编写从注册中心当中删除节点的逻辑,如下所示:

  // RPC Server端 本机所注册服务的缓存private static final Set<String> REGISTERED_PATH_SET = ConcurrentHashMap.newKeySet();public static void clearRegistry(CuratorFramework zkClient, InetSocketAddress inetSocketAddress) {REGISTERED_PATH_SET.stream().parallel().forEach(p -> {try {// 是本机在ZK注册的节点if (p.endsWith(inetSocketAddress.toString())) {// 根据路径名删除节点zkClient.delete().forPath(p);}} catch (Exception e) {log.error("clear registry for path [{}] fail", p);}});log.info("All registered services on the server are cleared:[{}]", REGISTERED_PATH_SET.toString());}

           在注册中心ZK当中删除节点之后,需要释放线程池资源:

  public static void shutDownAllThreadPool() {log.info("call shutDownAllThreadPool method");THREAD_POOLS.entrySet().parallelStream().forEach(entry -> {ExecutorService executorService = entry.getValue();// 停止接收新的任务,但已提交的任务会继续执行executorService.shutdown();log.info("shut down thread pool [{}] [{}]", entry.getKey(), executorService.isTerminated());try {// 等待线程池中的任务在指定的时间内完成。如果在指定时间内线程池未能终止,会抛出 InterruptedExceptionexecutorService.awaitTermination(10, TimeUnit.SECONDS);} catch (InterruptedException e) {log.error("Thread pool never terminated");// 指定时间内线程池未能终止,立即停止所有正在执行的任务executorService.shutdownNow();}});}

            自定义关闭线程池的逻辑可以更加优雅的实现线程池资源的释放。可以达到停止接受新的任务,继续在一定等待时间范围内执行已提交的任务,超出等待时间在强制终止线程池。

 

          

http://www.yayakq.cn/news/785111/

相关文章:

  • 在线做汉字头像的网站网站的项目建设周期
  • 织梦者网站模板网站源码制作步骤
  • 网站备案邮寄资料中铁建设集团有限公司中南分公司
  • 专门做旅游的视频网站常州网站制作
  • 柳州市住房和城乡建设局网站怎么优化
  • 商城网站免费模板教育模板网站建设
  • 如何制作免费永久网站阿里云的wordpress如何设置
  • 在新西兰做兼职的网站dede网站禁止ip访问
  • 网站设计需从哪些方面考虑泗县网站建设与推广培训
  • 南京企业自助建站系统设计制作小车二教案
  • 网站建设的请示wordpress创建表格
  • 域名 和网站有什么区别吗北京企业建站系统费用
  • 做期货的一般看什么网站太原网站定制
  • 网站建设主要工作由哪些河南建一个网站大概要多少钱
  • 芜湖哪家公司做网站不错自己怎么建设一个网站
  • 做相册视频的网站重庆市建设工程安全网站
  • 官方网站建设账务处理济南好的网站建设公司排名
  • 诺盾网站建设做网站那种语言好
  • 郴州做网站潍坊网站制作保定公司电话
  • 网页设计与制作代做百度关键词排名优化
  • 南京网站开发招聘做一个自己的网站要多少钱
  • 哪个做网站比较好化妆品网站建设网站
  • 功能型网站建设需要多少钱网站建设的费用计什么科目
  • 怎么制作二维码并自己编辑内容seo基础教程
  • 视频网站代言人英德市建设局网站
  • 儿童教育类网站模板下载wordpress 多重
  • 网站免费建站众享星球网站建设服务杭州
  • ps制作个性字网站seo能从搜索引擎中获得更多的
  • 网站 配色方案做网站需要提供什么
  • 查询建设用地规划许可证在哪个网站学会wordpress后万能