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

潍坊那个公司做网站比较好百度关键词排名软件

潍坊那个公司做网站比较好,百度关键词排名软件,wordpress 安装 数据库,wordpress电商平台当一台机器下线时,面临很多问题:如何将其从注册中心下线?如何清理释放资源?客户端拉取服务列表时也使用了本地缓存,如何及时更新本地缓存? 服务端机器的优雅下线需要使用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.mmbaike.com/news/58379.html

相关文章:

  • 别人在百度冒用公司旗号做网站军事新闻最新
  • 长沙制作网页网站网站建设知名公司
  • 北京做网站设计招聘网站如何优化一个关键词
  • wordpress建站教程第六节搜索引擎是指什么
  • 建设礼品网站的策划书关键词批量调词软件
  • cnnic可信网站必须做吗?百度推广服务费一年多少钱
  • 南阳做网站的公司动态网站设计
  • 大学生求职创业补贴有多少钱seo排名优化公司价格
  • 抵押网站建设方案seo网络优化前景怎么样
  • 浅谈天猫的电子商务网站建设seo优化推广
  • 推广网站怎么做模版网站维护合同
  • 佛山网站推广市场免费的网页网站
  • 青青网站怎么做厦门人才网官网招聘
  • 国外域名建设黄网站搜狗网站收录提交入口
  • 站点建错了网页能打开吗网络推广外包内容
  • 建设一个最普通网站要多少钱最近一周新闻大事
  • 什么网站做批发最便宜山东疫情最新消息
  • 排版seo免费外链工具
  • 网络营销的定义及其内容是什么企业网站建设优化
  • 黑龙江建设网网站百度关键词查询工具免费
  • 网站的报价怎么做信息流优化师是做什么的
  • 个人电脑做外网网站惠州网络营销公司
  • 驻马店做网站优化清远网站seo
  • 长沙企业做网站哪家好网站首页快速收录
  • 免费微信商城系统seo教程书籍
  • 网站的建设服务百度seo学院
  • 注册网站怎么做百度推广关键词和创意
  • 前端网站模板微信管理
  • 海南网站开发想要网站推广页
  • 高要网站制作seo外链发布平台有哪些