- 博客(347)
- 资源 (5)
- 收藏
- 关注
原创 android app构建时排除指定类
因为某些需求,需要将android appA打包为aar供其他工程使用,但是有些class有冲突,只能将appA中的类排除。
2024-12-31 20:58:54
458
原创 Mac 12.1安装tiger-vnc问题-routines:CRYPTO_internal:bad key length
背景:因为某些原因需要远程从本地mac连接远程linxu桌面查看一些内容,必须使用桌面查看,所以ssh无法满足,所以决定安装vnc客户端。
2024-12-28 14:31:38
819
原创 golang程序性能提升改进篇之文件的读写---第一篇
这个程序是计算和io密集型,调用流量属于明显有波峰波谷,但是因为各种原因,当前无法快速通过serverless或者动态在高峰时段调整资源,低峰释放资源的方式进行解决,因此只能通过分析内存和cpu消耗热点,然后改动代码,进而解决服务的稳定性和性能问题。通过搜索了解golang程序如何进行性能分析,当时就是使用pprof了,通过分析发现了程序有一些使用内存较多的地方,例如我们读取大量文件,通过分析发现io.ioutil.ReadAll消耗内存较多,通过查询发现io.copy可以减少一些内存消耗。
2024-07-14 17:02:29
496
原创 升级程序到Java21的记录二(修改程序源代码)
参看, Jdk升级完毕,下面我们该秀修改程序源代码了, 程序最初使用的springboot2.6.8 以及jdk17. 为了使用springboot 3.0(3.0开始有支持虚拟线程的相关配置)和java21相关语法,源代码需要一定改动, 本文记录源代码的相关改动。
2024-04-05 16:32:07
1497
原创 升级程序到Java21的记录一(先升级jdk到21)
为了使用Java21的最新特性虚拟线程以及提高程序的整体性能,决定将一个程序A升级到Java21.:程序A有很多文件操作因为使用虚拟线程对提升性能有帮助,如果读者的程序是其他类型,请下参考虚拟线程的一些资料决定是否使用本系列分为三个部分,本文是第一篇,先升级jdk,也就是开发机器上的jdk和运行机器上的jdk。原使用的jdk17. 使用sdkman安装的, 读者可以根据自己需要使用jdk不同的发型版本。本人主要是因为经常需要切换jdk所以使用sdkman安装的。
2024-03-31 23:51:16
1506
原创 spring-kakfa依赖管理之org/springframework/kafka/listener/CommonErrorHandler错误
1, 这个项目使用的springboot 2.6.8版本,在总的build.gradle已经指定对应的依赖管理。2, 查看springboot 2.6.8 中依赖的spring-kafka版本。现在直接上本人的解决办法,每个人遇见到问题可能不同,需要使用不同解决办法。common模块中原先的内容(最开始的项目指定2.6.8版本)可以发现其中是使用的spring-kafka 2.8.6。在build.gradle中取消版本,直接石红。
2023-12-17 15:29:02
1505
原创 ReentrantLock与synchronized区别之比较(面试)
我们Java开发中需要保证数据线程安全时有多重选择,直接使用线程安全的集合类,或者某些变量我们通过ReentrantLock来保证安全,或者使用synchronized关键字,那两者有何区别?
2023-10-21 17:30:49
779
原创 Java两个线程使用最基础wait/notify轮流打印数字和字符
先启动了,打印了a,然后他就notify后,立刻进入wait阻塞状态了,此时numThread线程可能还未启动,没有进入到wait,当numThread正式启动后,进入wait时已经错过了charThread之前对它发送的notify消息了,此时两个线程都进入了wait状态。其实可以使用多种方式实现该打印题目,比如阻塞队列,打印数字的想成打印后,需要向阻塞队列put, 打印字符的线程从阻塞队列take。charThread启动后,打印一个字符,然后通知numThread,自己就wait。
2023-10-14 17:34:43
429
原创 java工程构建时带上分支,commit等信息
线上部署的jar包(不管是直接运行jar包,还是通过容器运行的jar)有时出现问题时需要查看源代码,需要知道该jar包是从哪个分支,哪个commit,哪个时间打包的。有了这些信息能更好辅助我们分析判断问题。这里以gradle工程为例子。
2023-05-13 16:35:44
900
原创 jvm中指定时区信息user.timezone
同一份程序使用时间LocalDateTime类型,在国内和国外部署后,返回的时间信息前端使用出问题。因为LocalDateTime不带时区信息,国内调用后,前端页面默认使用的浏览器所在os的时区(我们的系统中没有给用户设置时区), 因此会出现时间不一致, 或者判断超时了,但是实际上没有超时的问题。
2023-02-17 21:43:39
1328
原创 S3 client向ceph上传文件注意事项
众所知周,AWS S3 client功能强大,能与各类符合OSS标准的存储进行工作。本项目中刚好用到ceph,就是直接使用S3 java client上传文件。在根据ceph官网的的一些文档操作时遇到一些问题,这里记录下来,仅供遇到类似问题的网友参考。
2022-11-13 23:05:17
1505
原创 springboot全局设置LocalDateTime的格式解析
程序中使用LocalDateTime类型, 在api返回response时,LocalDateTime类型的数据返回的格式是数组形式,非常不便于展示和解析。原有的通过修改application.yaml方式也行不通,因为使用的是LocalDateTime, 不是DateTime类型。
2022-11-12 15:45:40
2384
原创 stream lambda 异常java.lang.IllegalStateException: End size 0 is less than fixed size 20
程序中通过遍历map生成简要的summary信息,但是该接口不定时发生异常,绝大部分时候正常,偶尔出现类似如下异常.................................................
2022-10-30 21:26:00
604
原创 Junit单测如何测试是否抛出预期的异常
单测是提高软件质量最有效最节省成本的的手段,不是之一。本文展示的如何使用Junit测试会抛出异常的函数。
2022-10-12 23:40:08
974
原创 libcurl访问url保存为文件的简单示例
备注本文是libcurleasyinterface下载文件的简单示例,非prod-ready的代码,没有提供keep-Alive、超时设置等。只是一个简单示例。libcurl是网络工具curl的底层核心。是非常可靠稳定的网络依赖库。分为easy和multi两大接口系列。其中easy是同步调用,相对简单,multi是异步调用,比较复杂。本文是easy接口调用示例。官网链接https在官网有很多示例,可以根据需要选择参考的代码已经libcurl的api说明https。...
2022-07-30 11:48:20
373
原创 HttpClient的setConnectionRequestTimeout、setConnectTimeout、setSocketTimeout设置注意事项
/hc.apache.org/index.html)是我们java开发中经常使用的包之一,其中有三个参数超时的设置经常令人感到困惑,特别是和pythonrequest等其他相比较时,不知道如何对应。参看https。
2022-07-29 21:31:33
8875
原创 C++使用nlohmann的简单示例
备注本文展示一个使用nlohmann的简单示例,仅供参考,这是示例代码,非常简略,只是为了初学者方便学习使用。本示例使用CLion创建工程,直接在工程代码中引入nlohmann,将其放在本工程的中。
2022-07-29 21:07:03
1526
原创 C++使用RapidJson的demo
备注本文展示一个使用RapidJson的简单示例,仅供参考,这是示例代码,非常简略,只是为了初学者方便学习使用。本示例使用CLion创建工程,直接在工程代码中引入RapidJson,将其放在本工程的中。.........
2022-07-29 20:47:41
573
原创 从其他文件触发pytest.main()注意事项
需求启动测试的时候,不会直接执行pytestxxx,而是有个单独的py文件其中调用pytest.main(),这样可以在开始的时候执行一些需要的操作,当然这些操作放在pyest各种setup中也可以,但是有需求是需要读取某些环境变了但是但是外部因为各种原因最后决定不通过环境变量传递而是以参数的形式传递(至于为啥不能通过环境不在本文的讨论范围内,也不是本文的关注点)。因为我们实际测试相关配置参数都在pytest.ini中,因此只需要pytest.main()指定读取的文件,他就忽略其余参数。...
2022-07-23 12:19:38
633
原创 python中环境变量相关os.putenv函数使用注意事项
如果期望设置的环境变量立刻生效,也就收从设置开始后面的运行部分都能获取到该变量,直接使用这种方式os.environ[‘myenv’]=‘prod’,使用os.putenv方式不行,因为os.putenv只能在subprocessesstartedwithos.system(),popen()orfork()andexecv()中生效官方文档https。...
2022-07-23 11:43:35
2366
原创 Java 对文件取md5摘要的简单示例
对文件进行md5值作为摘要,作为其他地方下载时的一个校验。 本文不讨论MD5算法可能发生的碰撞。具体实现方法有很多种,这里以https://www.baeldung.com/java-md5 中一种最方便的示例为例子相比其他方法,这个直接传入文件的全路径(文件路径和文件全名),直接获得md5值, 省去打开文件读取文件内容的步骤。 简单直接。如下这种直接使用google对应类库的也很方便...
2022-07-10 23:24:39
1229
原创 python requests 下载文件例子
通过python的request下载文件,代码本身很简单,唯一需要说明的而即使需要通过session机制实现keep-alive的时候。我使用python requests库中resue http conection的的session机制, 官方文档在https://requests.readthedocs.io/en/latest/user/advanced/Session ObjectsThe Session object allows you to persist certain parameters
2022-07-03 23:18:00
1926
原创 libcurl下载文件的代码示例
C++中使用libcurl下载文件示例备注:简单示例,仅供参考,个人c++执行如下命令g++ curl_file.cpp -std=c++11 -lcurl -o b.out;./b.out
2022-06-25 15:47:43
772
原创 使用gorm查询数据库时reflect: reflect.flag.mustBeAssignable using unaddressable value
使用gorm写了个小的demo, 插入和查询单个数据库都正确显示,在查询all数据是报错了。重点信息:using unaddressable value错误信息截图
2022-06-18 17:13:06
652
3
原创 Go有限状态机类库使用简介
FSM是finite state machine的缩写,有限状态机是我们在应用开发中经常使用的一种模型,这里简要介绍go语言中https://github.com/looplab/fsm
2022-06-04 21:46:36
1264
原创 重启docker service时为什么一般情况下不影响已经运行的容器?
如果是所示,这是docker自身的一个属性决定,该属性默认使true,因此当我们执行systemctl docker restart时已经运行的容器未受影响。原文在: https://docs.docker.com/config/containers/live-restore/中文大意‘:/etc/docker/daemon.json配置文件中设置了{ "live-restore": true}在升级小版本或者重启时,只要不改变daemon-level级别参数,是不会影响已运行容器的Liv
2022-02-20 23:34:00
3266
1
原创 k8s client-go访问service的informer示例2之创建NewSharedIndexInformer
这个实例通过svcInformer := cache.NewSharedIndexInformer创建informer, 不是直接使用系统也有coreinformers.ServiceInformerpackage mainimport ( "flag" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachin
2022-02-20 23:24:31
789
原创 k8s client-go访问service的informer示例
本代码片段展示如何通过informer监听service和service对应endpoint的变化package mainimport ( "flag" "fmt" "k8s.io/client-go/util/homedir" "path/filepath" "time" "k8s.io/client-go/informers" coreinformers "k8s.io/client-go/informers/core/v1" "k8s.io/client-go/kubernet
2022-02-20 23:17:32
979
原创 url中query参数传递数组
好久不写rest api, query中传递数组都快忘记了,(post中body传递数组还记得), 做好记录方便查询先看curl命令 curl -X POST --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'Token: 123456' 'http://127.0.0.1:17001/api/v1/admin/arraydemo?hostName=worker1&ports=12%
2022-01-24 21:03:04
6833
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人