运用单例模式思想解决RuntimeException超时问题

news2024/10/6 2:31:16

今天,排查了一个RuntimeException超时问题,简单记录分享下。
分析关键日志排查如下
在这里插入图片描述
查看关键代码

    private static Client createClient(String wsdlUrl) {
        JaxWsDynamicClientFactory jaxWsDynamicClientFactory = JaxWsDynamicClientFactory.newInstance();
        return jaxWsDynamicClientFactory.createClient(wsdlUrl);
    }

发现,原来这是同事比较久,之前的代码,这相当于来一次就newInstance一次,于是改造下

    private static final Map<String, Client> CLIENT_MAP = new ConcurrentHashMap<>();

    /**
     * 创建ws客户端
     *
     * @param wsdlUrl
     * @return
     */
    public static Client createClient(String wsdlUrl) {
        Client client;
        if (!CLIENT_MAP.containsKey(wsdlUrl)) {
            synchronized (CLIENT_MAP) {
                if (!CLIENT_MAP.containsKey(wsdlUrl)) {
                    JaxWsDynamicClientFactory jaxWsDynamicClientFactory = JaxWsDynamicClientFactory.newInstance();
                    client = jaxWsDynamicClientFactory.createClient(wsdlUrl);
                    CLIENT_MAP.put(wsdlUrl, client);
                } else {
                    client = CLIENT_MAP.get(wsdlUrl);
                }
            }
        } else {
            client = CLIENT_MAP.get(wsdlUrl);
        }
        return client;
    }

用ConcurrentHashMap存储一下,每次都先从map里面拿,不难看出,其实这里和单例思想是一样的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1590156.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElasticView一款ElasticSearch的web可视化工具

ElasticView 是一款用来监控ElasticSearch状态和操作ElasticSearch索引的web可视化工具。它由golang开发而成&#xff0c;具有部署方便&#xff0c;占用内存小等优点 ElasticSearch连接树管理&#xff08;更方便的切换测试/生产环境&#xff09;支持权限管理支持sql转换成dsl语…

Go语言图像处理实战:深入image/color库的应用技巧

Go语言图像处理实战&#xff1a;深入image/color库的应用技巧 引言image/color库基础颜色模型简介颜色类型和接口 image/color库实际应用基本颜色操作创建颜色颜色值转换颜色比较 颜色转换与处理与image库结合使用 性能优化和高级技巧性能考量避免频繁的颜色类型转换使用并发处…

在vue3中实现pptx、word、excel预览

插件推荐 PPTXjs vue-office 代码 <script setup lang"ts" name"home"> import { computed, nextTick, ref, onMounted } from vue; //引入VueOfficeDocx组件 import VueOfficeDocx from vue-office/docx; //引入VueOfficeExcel组件 import VueOf…

探索Web3的奇迹:数字时代的新前景

在数字化时代的潮流中&#xff0c;我们不可避免地迎来了一个全新的篇章——Web3时代的到来。在这个时代中&#xff0c;区块链技术作为数字化世界的核心&#xff0c;正在重塑着我们的生活方式、经济模式以及社会结构。在Web3时代&#xff0c;我们将目睹着一个以去中心化、透明化…

Kubernetes(k8s):深入理解k8s中的亲和性(Affinity)及其在集群调度中的应用

Kubernetes&#xff08;k8s&#xff09;&#xff1a;深入理解k8s中的亲和性&#xff08;Affinity&#xff09;及其在集群调度中的应用 1、什么是亲和性&#xff1f;2、节点亲和性&#xff08;Node Affinity&#xff09;2.1 硬性节点亲和性规则&#xff08;required&#xff09;…

TCP/IP协议—UDP

TCP/IP协议—UDP UDP协议UDP通信特点 UDP头部报文UDP检验 UDP协议 用户数据传输协议 (UDP&#xff0c;User Datagram Protocol) 是一种无连接的协议&#xff0c;提供了简单的数据传输服务&#xff0c;不保证数据的顺序以及完整性。应用层很多通信协议都基于UDP进行传输&#x…

「51媒体网」汽车类媒体有哪些?车展媒体宣传

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 汽车类媒体有很多&#xff0c;具体如下&#xff1a; 汽车之家&#xff1a;提供全面的汽车新闻、评测、导购等内容。 爱卡汽车&#xff1a;同样是一个综合性的汽车信息平台&#xff0c;涵…

iPad 无法解锁?修复 iPad 滑动解锁不起作用的 9 个解决方案

“我的 iPad Pro 一整天都工作正常&#xff0c;直到 20 分钟前。当我解锁它时&#xff0c;它不让我向上滑动。屏幕有响应&#xff0c;但我的 iPad 无法解锁。是否有其他人遇到过这种情况并找到了解决方法&#xff1f;解决方案&#xff1f;” ——来自 Apple 支持社区 iPad 屏幕…

华媒舍:7种方式,打造出旅游媒体套餐

现如今&#xff0c;伴随着旅游业发展与繁荣&#xff0c;更多旅游业发展从业人员越来越重视产品营销品牌基本建设&#xff0c;希望可以将自己的度假旅游产品和服务营销推广给更多的潜在用户。而建立一个优秀的旅游业发展媒体套餐内容品牌是吸引目标客户的重要步骤。下面我们就详…

Harmony鸿蒙南向驱动开发-SPI接口使用

功能简介 SPI指串行外设接口&#xff08;Serial Peripheral Interface&#xff09;&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线。SPI是由Motorola公司开发&#xff0c;用于在主设备和从设备之间进行通信。 SPI接口定义了操作SPI设备的通用方法集合…

2024比特币减半,Web3的“1995时刻”即将到来

随着比特币减半的到来&#xff0c;加密货币市场迎来了一个关键的转折点。2024年的比特币减半不仅是对比特币供应和挖矿激励的一次重大调整&#xff0c;更是对整个Web3应用领域产生深远影响的事件。 首先&#xff0c;比特币减半的事件本身就为市场带来了一种稀缺性的概念&#…

半透明进口特氟龙材质镊子可耐受强酸强碱腐蚀PFA镊子

PFA镊子用于夹取小型片状、薄状、块状样品&#xff0c;广泛应用在半导体、新材料、新能源、原子能、石油化工、无线电、电力机械等行业。 具有耐高低温性&#xff08;可使用温度-200℃&#xff5e;&#xff0b;260℃&#xff09;、耐腐蚀、表面不粘性等特点&#xff0c;用于苛…

代码随想录算法训练营Day53|LC1143 最长公共子序列LC1035 不相交的线LC53 最大子数组和

一句话总结&#xff1a;秒了。 原题链接&#xff1a;1143 最长公共子序列 与昨天的最长重复子数组极度类似。 由于这里是子序列&#xff0c;两者不相等时有dp[i][j] Math.max(dp[i][j - 1], dp[i - 1][j])。同时由于子序列的缘故&#xff0c;dp数组及下标的含义也有了改变&am…

GPDB技术内幕 - SEMI JOIN浅析

GPDB技术内幕 - SEMI JOIN浅析 SEMI JOIN顾名思义&#xff0c;半连接&#xff0c;相对于join字段来说&#xff0c;针对外表的一行记录&#xff0c;内表只要有一条满足&#xff0c;就输出外表记录。注意&#xff0c;这里是仅输出外表记录。GPDB中有几种实现方式&#xff0c;本文…

一篇实操vitrualbox虚拟机根目录扩容(详细,实操陈功)

一篇实操vitrualbox虚拟机根目录扩容&#xff08;详细&#xff0c;实操陈功&#xff09; 创建虚拟介质 第一步、 第二步、 第三步、一直下一步&#xff0c;直到下面的页面 分配空间到更目录下 第一步、 第二步、查看创建的物理磁盘 lsblk第三步、查看原本磁盘可用空间 df …

ARL资产侦察灯塔系统

1、资产侦察灯塔系统搭建 1.1、系统要求 目前暂不支持 Windows&#xff0c;Linux 和 MAC 建议采用 Docker 运行&#xff0c;系统配置最低 2 核 4G。 由于自动资产发现过程中会有大量的的发包&#xff0c;建议采用云服务器可以带来更好的体验 实验环境&#xff1a; 系统&…

新版网络安全等级保护定级指南解读

网络安全等级保护工作的作用对象&#xff0c;主要包括基础信息网络、工业控制系统、云计算平台、物联网、使用移动互联技术的网络和大数据等。 软件开发全套资料获取进主页或者本文末个人名片直接获取。

uniapp 编译后分包下静态图片404问题解决方案

如上图官方说明&#xff1a; 在分包下建立一个static文件夹即可&#xff1a; 分包内代码引用图片 <image src"/分包名称/img/图片名称"></image> <image src"/dataView/img/图片名称"></image>

目标检测——微藻检测数据集

一、重要性及意义 微藻识别检测的重要性及意义主要体现在以下几个方面&#xff1a; 首先&#xff0c;微藻作为自然界光合作用的主体&#xff0c;在地球的太阳能固定以及碳循环中起到非常重要的作用。因此&#xff0c;对微藻的识别检测有助于我们更深入地理解地球生态系统的运…

基于FMC接口的Kintex-7 XC7K325T PCIeX4 3U PXIe接口卡

基于FMC接口的Kintex-7 XC7K325T PCIeX4 3U PXIe接口卡 一、板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片&#xff0c;pin_to_pin兼容FPGAXC7K410T-2FFG900 &#xff0c;支持PCIeX8、64bit DDR3容量2GByte&#xff0c;HPC的FMC连接器&#xff0c;板卡支持PXI…