解决方案
文章平均质量分 81
元学习
某500强外企打杂
展开
-
高吞吐SFTP连接池设计方案
我们如果使用这种可配置连接池进行访问,对接上游时最好时最好跟上游确认他们服务器可以承受的Session数量和Channel数量是多少,宁愿少配也不要多配。但是对于一般上游,如果使用的是Linux服务器,默认值就是上面一开始提到的,我们客户端连接池保守配置可以设置成,这样子最大并行可以处理30个文件,MaxSession一般不建议设置太多,非常消耗系统资源。也有很多上游是使用其他SFTP服务管理工具,但是基本限制参数差不多。以上连接池还有很多需要优化的地方,大家可以根据需要自己去优化。原创 2024-03-09 22:53:58 · 1931 阅读 · 13 评论 -
Jsch版本升级引发的血案
我们项目需要通过SFTP对接大量上下游获取数据,但是由于某一个上游需要更换作为他们的SFTP服务,他们的SFTP服务使用更高版本的OpenSSH服务,原有的一些密钥算法已经不再支持,我们目前使用的Jcraft公司发布的Jsch版本已经没办法满足,需要进行升级。但是Jcraft公司的Jsch0.1.55版本从2018年开始就停止维护,我们不得不升级到另一个mwiede继续维护的Jsch版本(基于原有0.1.55fork的分支)以满足更多算法的需要。原创 2024-01-25 22:07:48 · 2891 阅读 · 4 评论 -
解决方案 | 基于SFTP协议的文件传输断点续传Java实现方案
因项目需要,我们服务每天都需要通过SFTP协议来对接上下游进行文件传输,但是对于一些大文件,在与第三方公司的服务器对接过程中很可能会因为网络问题或上下游服务器性能问题导致文件上传或者下载被中断,每次重试都需要重新对文件进行上传和下载,非常浪费带宽、服务器资源和时间,因此我们需要尽量提升文件传输效率,减少不必要的文件传输损耗。原创 2024-01-23 16:31:03 · 2957 阅读 · 2 评论 -
基于Smb协议实现网络文件传输
SMB 是 Server Message Block 的缩写。它是一种网络文件共享协议,允许用户与远程计算机和服务器通信,使他们能够在网络上访问文件、目录、打印机和端口等资源。SMB 在 TCP/IP 协议栈的应用层(第 7 层)上操作,并使用 TCP/IP 的 445 端口。目前我们常见的共享文件方式基本都是支持SMB协议。文件共享:SMB 的主要用途之一是文件共享。SMB 允许多个用户访问和共享存储在远程服务器上的文件,就像它们在自己的本地设备上一样。这使得在网络中的协作和共享资源变得简单。原创 2023-06-23 19:08:36 · 4198 阅读 · 2 评论 -
【异常处理】解决更新Springboot 3.0后,Swagger-UI 无法正常启动问题
今天尝试将一个项目升级到Spring 3.0,发现Swagger-UI无法打开,显示404 ,尝试更换如下swagger-ui到最新版本,也没有效果,访问页面还是一片空白。原创 2023-05-27 22:32:44 · 2231 阅读 · 2 评论 -
利用谷歌云Pub/Sub 实现多任务并行分发处理方案
Pub/Sub 是一种设计为高度可靠且可伸缩的异步消息传递服务。该服务以十多年来许多 Google 产品都在依赖的核心 Google 基础架构组件为基础而构建。其实可以理解成云上的Kafka。原创 2023-05-07 01:51:27 · 1507 阅读 · 0 评论 -
优化Google Cloud Storage大文件上传和内存溢出
我们的项目每天都会并行上传好几万份文件到下游的,当文件比较大时,会采用GCP的可续上传方案,通过把文件切分成多个数据块,分多次HTTP请求上传到GCP Bucket,具体可参考。但是在实际应用中,会发现文件比较大时,由于数据包会被分成多次HTTP请求上传,偶尔GCP会返回400错误码导致上传失败,但是查看各个请求参数都属于正常,目前不确定GCP一些网络限制导致还是该 API 存在性能问题,于是选择使用另一种替代方案,尝试使用以下方案,通过GCP 官方SDK进行文件上传。参考。原创 2023-05-05 01:16:29 · 1310 阅读 · 0 评论 -
GO | 解决爬虫失败问题
今天写了一段Go代码尝试去测试爬取某Top250电影榜,发现一直爬取不到数据。一开始以为是代码有问题,然后加了一行代码,通过控制台打印Response信息发现响应体并没有返回想要的网页数据。添加了一段代码打印请求返回结果,收到如下返回信息。原创 2023-03-30 17:11:23 · 760 阅读 · 0 评论 -
本地调试Java程序时只对部分接口忽略代理
今天有位朋友问了个问题,在本地IDE开发工具调试代码的时候,怎么不动代码的情况只针对部分API走proxy,因为他们的代码只需要在本地调试的时候才要用到Proxy,而平时都是部署在云上,是用不到Proxy的,所以他们老大不让他们代码里出现任何用到代理的代码入侵逻辑,只能通过外置配置代理。当Service A 调用时才需要走代理,而调用时自动绕过代理。原创 2023-03-22 00:26:00 · 362 阅读 · 0 评论 -
领域驱动设计系列笔记|入门概念
DDD这个概念相信大家也不陌生,现在网络上到处都是,已经被吹到无所不能,特别是前些年微服务流行之后。本人在18年开始也断断续续也看了不少DDD相关书籍和教程,整理了一些笔记,之前也有用过DDD的思想去进行领域建模和微服务拆分,接下来将会拆分多个章节对DDD常见知识笔记做一些梳理。1. 什么是DDD?领域驱动设计 是一种基于使您的软件深刻地反映现实世界的系统或过程。该名称来自 Eric Evans 2003 年的一本书,该书通过模式目录描述了该方法。简单来说领域是指项目正在开发的特定主题。2.D.原创 2022-04-22 03:31:57 · 805 阅读 · 0 评论 -
如何通过IDEA快速解决Jar冲突
如何通过IDEA快速解决JAR冲突相信很多同学在过去做项目都遇到过Jar冲突的问题,在本地环境没问题,一旦部署到测试或生产环境突然就启动报错,报类似classNotFound的Exception为什么会产生Jar包冲突?作为 Java 开发人员,我们可能会使用 Maven 维护许多应用程序以进行依赖项管理。这些应用程序需要不时升级以保持最新状态并添加新功能或安全更新。由于某些依赖项之间的冲突,这个简单的任务 - 更新依赖项的版本,很容易变成一场噩梦。解决这些依赖冲突可能需要很多时间。直接与传递原创 2021-05-30 19:15:39 · 1110 阅读 · 0 评论 -
Docker如何给Springboot项目动态传参
背景最近有些初学Docker的朋友问到,想通过docker-compose.yml来动态给微服务传参,而不是每次都要在项目配置文件硬编码,然后构建服务镜像,最后打包发布经过一些列流程才能更新配置,那能不能直接通过docker-compose.yml里把一些配置项放到环境变量,然后springboot项目自动从环境变量获取参数呢?场景假设现在有一个Springboot项目,它里面有一个数据库...原创 2020-03-13 17:49:17 · 1311 阅读 · 0 评论 -
IDEA | Dot Executable: null..No dot executable found
背景今天想在IDEA上打开.puml后缀的类图,发现IDEA并不能识别,但是正常的时序图却能正常打开,打开类图就报如下错误:解决方案经排查,idea的plantuml插件默认只支持时序图,类图还需要指定dot.exe,按如下操作即可:通过如上步骤后,就可以进行plantuml作图啦...原创 2019-08-27 23:45:49 · 1387 阅读 · 0 评论 -
JVM性能分析 | 一次生产系统Full GC问题分析与排查总结
一次生产系统Full GC问题分析与排查总结背景最近某线上业务系统生产环境频频CPU使用率过低,频繁告警,通过重启可以缓解,但是过了一段时间又会继续预警,线上两个服务节点相继出现CPU资源紧张,导致服务器卡死不可用,通过告警信息可以看到以下问题: 从上图可以看到,目前zabbix监控展示CPU空闲时间已经低于预警线,证明目前CPU资源占用过高,考虑到最近并没有特别开发任务上线,但...原创 2018-09-07 23:03:07 · 5246 阅读 · 2 评论 -
GO异常 | runnerw.exe: CreateProcess failed with error 21
背景今天创建了一个GO项目,写了几行代码package chapter1import "fmt"func main() { fmt.Println("hello world")}运行后抛出如下异常:runnerw.exe: CreateProcess failed with error 216: Process finished with exit cod...原创 2018-08-30 03:24:50 · 1474 阅读 · 0 评论 -
Redis异常 | DENIED Redis is running in protected mode because protected mode is enabled
背景今天重新搭了个redis环境,用简单的代码去测试下是否正常,@RunWith(SpringRunner.class)@SpringBootTestpublic class SpringbootRedisApplicationTests { @Autowired StringRedisTemplate stringRedisTemplate; @Tes...原创 2018-08-19 13:50:31 · 2123 阅读 · 0 评论 -
IDEA | 更改idea打开新项目默认配置
背景使用过idea的童鞋应该都发现,用idea打开一个新项目,总是需要重新配置一遍,它会使用系统默认配置,例如maven、JDK等设置。解决方案IDEA其实有个设置是可以更改新项目的默认配置,大家可以通过以下配置对之后的新项目更改一个默认配置: File->Other Settings->Setting for New Projects or File->Other...原创 2018-08-08 11:21:25 · 11345 阅读 · 2 评论 -
异常处理 | manual close is not allowed over a Spring managed SqlSession
背景:今天启动一个老项目,控制台打印出以下异常,大概是说在Spring托管的SqlSession上不允许手动关闭:java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSession at org.mybatis.spring.SqlSessionT...原创 2018-08-05 11:10:49 · 10127 阅读 · 0 评论 -
Visual Studio Code | 报错 command 'markdown.extension.onBackspaceKey' not found
背景今天使用Visual Strudio Code想用键盘Back去删除一些字符,发现报如下错误:command 'markdown.extension.onBackspaceKey' not found看样子感觉是某些快捷键冲突导致解决方案:打开文件->首选项->键盘快捷键,搜索Back,如下图所示: 只需要对该选项重新设置一个快捷键即可: ...原创 2018-07-29 22:46:59 · 9662 阅读 · 0 评论 -
linux实用指令 | 程序员线上排查必知必会linux指令(持续更新中)
Linux线上排查程序员实用指令一、乱码问题1、Linux系统编码 有时候你会发现linux系统打印出来的文字是乱码,一般是要么是你连接Linux的中断编码有问题,或者是linux系统编码设置不对(1)执行locale命令查看系统语言[root@localhost /]# localeLANG=zh_CN.GBKLC_CTYPE="zh_CN.GBK"LC_...原创 2018-07-06 11:04:52 · 510 阅读 · 0 评论 -
Idea | Load error: undefined path variables
Load error: undefined path variables案例今天打开idea项目,突然间出现如下异常:Load error: undefined path variables类一直报招不到包,之前一直没有出现该异常解决方案 到工程的目录删除.idea这个文件夹,重新导入项目即可,记得重新导入工程后,在idea要重新配置maven目录还有其他一些配置原创 2016-09-13 00:24:25 · 10642 阅读 · 1 评论 -
CSS-- 实用CSS样式
自用实用CSS样式1.清除DIV浮动clear: both;原效果:对下面移位的标签加入该CSS后效果如下:element.style {clear: both;}原创 2016-07-29 11:57:11 · 683 阅读 · 0 评论 -
Nutz框架-- Cnd条件使用原生sql
案例今天接到一个临时的业务需求,做一个简单的过滤作为临时业务需要使用一两天,于是想到在原有的Cnd条件上加上一个Not like 进行过滤,但是发现现有Cnd条件查询好像满足不了解决方案使用Nutz框架中的Static类来实现自定义sql与Cnd.and()拼接,new Static("xxxxx") 里面可以接任意原生sqlcnd.and( new Sta原创 2016-07-18 11:21:52 · 3143 阅读 · 0 评论 -
多线程--做单元测试时,使用线程池发现并没有运行指定代码,直接跳过
案例今天做单元测试调试接口,发现接口调用成功但是并没有运行线程池执行的方法,而是直接跳过执行代码 ExecutorService pool = Executors.newFixedThreadPool( 2 ); public void callInterfaceCreditease(final String idcard,final String name,final Str原创 2016-07-05 22:26:57 · 5812 阅读 · 8 评论 -
找不到文件异常java.io.IOException: Resource [classpath:shiro.ini] could not be found.
情景tomcat启东时,老是报错,在classpath下找不到配置文件,但是配置文件已经放在resource目录下了解决方案出现该异常的原因,是因为新建的conf文件夹,识别不了,因为没有设置成资源文件夹,只需要右键点击conf文件夹->Build path->Use as Source forlder 即可原创 2016-07-01 10:19:50 · 6086 阅读 · 1 评论 -
JQuery--使用JQuery 的$.ajax 方法进行异步请求,导致页面闪烁
情景目前有个需求是在文本框填入内容,自动触发keyup事件,下拉列表会自动过滤相应的选项,但是使用了$,ajax后发现,每次触发事件时,都导致整个网页闪烁,触发了全局ajax事件代码片段$.ajax({ type: "POST", url: root + "/xxx, data: requestData, dataType: "j原创 2016-05-09 15:07:42 · 3355 阅读 · 1 评论 -
Mavn 项目 引入第三方jar包 导致ClassNotFoundException
案例 我有一个Maven构建的项目,项目模块之间有依赖关系,我需要用到一个本地的jar包,我直接导入该jar包到其中一个项目,不通过pom.xml进行管理,导致其他依赖该模块的模块不能引用该jar,出现ClassNotFoundException在该项目中,模块之间存在如下依赖:如今该项目需要引入fastdfs_client_v1.20.jar 这个包,来实现对fast原创 2016-02-29 00:42:24 · 7850 阅读 · 5 评论 -
为什么不在spring容器管理controller
Spring容器与SpringMVC容器1.疑问:为什么不用spring去管理所有类?我们配置springMVC 中,为什么controller不直接交给spring 管理而要spring MVC容器单独分开来管理2.Spring容器 与 SpringMVC关系Spring容器与SpringMVC容器是父子关系,子容器可以访问容器的类,如果我原创 2016-02-15 01:27:11 · 3777 阅读 · 3 评论 -
idea|properties文件乱码
案例在idea 打开有些配置文件,如config.properties,里面中文注释出现乱码解决方案点击FILE->Settings->Editor->File Encodings如下图设置原创 2016-09-27 14:56:06 · 5058 阅读 · 2 评论 -
Rabbitmq | ConnectionException:Connection refused: connect
案例今天完成了Rabbitmq的搭建,调用本地mq服务器是可以的,但是在本地调用远程mq发现出现了connectionException异常,使用的是默认端口5672,具体情况如下图 解决方案修改 Rabbitmq配置文件rabbitmq.config,具体安装过程不做详解,按下图修改监听端口号为5672,原配置默认端口号是5678原创 2016-11-02 15:17:50 · 8313 阅读 · 3 评论 -
IDEA | 识别不出自建webapp文件夹
背景:今天自建了一个webapp文件夹,发现idea识别不出来是web应用的资源文件夹 解决方案打开project structure配置,如下图原创 2018-06-20 17:34:07 · 2479 阅读 · 0 评论 -
线上故障排查 | 烂代码引发的血案
烂代码引发的血案场景[我是居中的文本] 以下有一段烂代码来自真实项目场景,如下:public synchronized void savePhotos(String photoUrl,String userId){ final Photo photo = new Photo(); new Thread(new Runnable() { ...原创 2018-07-02 03:17:52 · 406 阅读 · 0 评论 -
异常处理 | java.lang.IllegalArgumentException: Request header is too large
背景今天在自己使用Springboot开发博客系统的时候,在浏览器点击提交markdown文件一直出现以下异常:java.lang.IllegalArgumentException: Request header is too large使用的WEB技术栈是Springboot,内嵌tomcat服务启动解决方案经过排查,是因为服务器有请求长度配置,查看服务器配置类Serve...原创 2018-07-08 21:36:55 · 983 阅读 · 0 评论 -
Java异常 | Error:java: Compilation failed: internal java compiler error
背景今天网上下载了一个项目,编辑运行报如下异常:Error:java: Compilation failed: internal java compiler error经过往经验,读项目的编译环境重新设置,编译JDK版本全部指定1.8 1.Setting->Java Complier 2.Project Structure->Modules 经过上述步骤设...原创 2018-06-06 15:11:08 · 728 阅读 · 0 评论 -
模块化系列教程 | 阿里JarsLink1.0模块化场景实战Demo
场景实战Demo使用指引Quickstart 快速开始Demo说明模块说明使用说明情景一环境部署工作原理情景二环境部署工作原理场景实战Demo使用指引 个人之前学习过程中对JarsLink模块化场景使用做了一些Demo放在github上,用兴趣的同学可以了解下Quickstart 快速开始git clone https://...原创 2018-06-03 11:24:00 · 1265 阅读 · 1 评论 -
Nutz | Nutz项目整合Spring实战
Nutz项目整合Spring实战前言本教程主要基于本人Nutz框架的 Demo进行改造,目的是使原有Nutz demo代码可以正常运行,新增spring代码也可以正常运行,并且Nutz框架原有代码与spring新增代码可以相互引用,从而达到整合后的新代码与旧代码可以兼容,请配合项目源码进行操作。 Demo功能 登陆模块 查看用户列表 新增用户 通原创 2017-01-28 21:45:47 · 7942 阅读 · 0 评论 -
Shrio | java.io.IOException: Resource [classpath:shiro.ini] could not be found
案例今天项目启动时一直报异常,看了错误日志发现是shrio文件找不到引起的,异常:java.io.IOException: Resource [classpath:shiro.ini] could not be foundshiro 文件所在目录: 解决方案经过排查,文件存放目录结构并没有问题,但是target下的字节码文件目录依然是旧的存放位置,在conf/下,而不是在class目录下,因此可以原创 2017-01-24 09:13:50 · 3451 阅读 · 0 评论 -
互联网电商高并发解决方案(一)
互联网电商高并发性能优化解决方案1.使用sku作为商品的唯一标识什么是sku?Sku:最小库存量单位。就是商品id。就是商品最细力度的划分。每个sku都唯一对应一款商品,商品的颜色、配置都已经唯一确定。例如:阿尔卡特 (OT-979) 冰川白 联通3G手机阿尔卡特 (OT-927) 单电版 炭黑 联通3G手机 双卡双待阿尔卡特 (OT-986+) 玫红 AK47 加强版原创 2016-02-14 18:36:03 · 6838 阅读 · 0 评论