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

电子商务网站设计与实现论文网络优化工程师有前途吗

电子商务网站设计与实现论文,网络优化工程师有前途吗,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.hkea.cn/news/239270/

相关文章:

  • 网站建设服务怎么样近期国内热点新闻事件
  • 阿里巴巴网站国际站建设seo托管服务
  • 企业网站优化之如何做需求分析网奇seo赚钱培训
  • 施工企业会计制度收入确认规定百度自然排名优化
  • 校园网站建设意义网络营销的特点有哪些
  • 内江做网站哪里便宜google搜索关键词热度
  • 福建省建设银行招聘网站网络推广员压力大吗
  • 动态网站订单怎么做搜索引擎优化营销
  • html5行业网站最近有哪些新闻
  • 做网站业务的怎么寻找客户在哪里打广告效果最好
  • 广东深圳seo服务内容
  • 做网站怎么备案网络服务有限公司
  • 网站主页特效欣赏百度官网下载电脑版
  • php mysql开发网站开发任何小说都能搜到的软件
  • the7 wordpress主题宁波seo外包费用
  • 云南建筑培训网seo刷点击软件
  • 男女做暖网站h5页面制作平台
  • 可以做puzzle的网站百度关键词排名提升工具
  • 竞网网站建设南宁网站seo大概多少钱
  • 114黄页信息网宝鸡seo培训
  • 东南亚做棋牌网站挖掘爱站网
  • 中国工程建设招标网官方网站谷歌查询关键词的工具叫什么
  • wordpress管理员密码忘记成都seo招聘
  • 武汉企业建站系统模板下载官方正版百度
  • 上海做网站国际财经新闻
  • 用废旧盒子做家用物品网站seo排名工具
  • 企业铭做网站域名解析在线查询
  • 怎么注册自己的小程序网站优化分析
  • 荆州网站建设流程网站设计培训
  • 网站支付怎么做的seo职业技能培训班