
java
文章平均质量分 84
Blueeyedboy521
Java架构师,微服务,前端Vue,人工智能,C/C++嵌入式编程
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OutOfMemoryError异常OOM排查
OutOfMemoryError 是 Java 虚拟机(JVM)抛出的一种错误,表示程序在尝试分配对象时无法获得足够的内存。这通常是由于应用程序内存泄漏、内存溢出或者程序需要的内存超过了 JVM 的限制所引起的。原文链接:https://blog.youkuaiyun.com/TreeShu321/article/details/135255821。内存泄漏: 未被使用的对象或者引用未被正确释放,导致堆积的对象占用了大量内存。内存资源耗尽: 应用程序需要的内存资源超过了 JVM 配置的最大堆大小。原创 2024-07-16 08:00:00 · 954 阅读 · 0 评论 -
如何设计一个安全性架构
通过以上全面的安全性架构设计,可以显著提高系统的安全性,保护系统免受各种潜在威胁和攻击。每个层次的安全措施相互补充,形成多层次的防御体系,确保系统的整体安全。单点登录(SSO):使用 OAuth、OpenID Connect 等协议,实现跨应用系统的单点登录。安全信息与事件管理(SIEM):整合和分析安全日志,实时监控和响应安全事件。安全配置:确保服务器和操作系统的安全配置(如关闭不必要的服务和端口)。安全日志:记录所有的安全相关事件,如登录尝试、权限变更、数据访问等。转载 2024-06-05 08:00:00 · 312 阅读 · 0 评论 -
集成Google Authenticator实现多因素认证(MFA)
尤其是在面临日益复杂的网络安全威胁时,MFA的实施可以有效减少未经授权的访问,提高账户安全性。同时,将“实体所有”、“实体特征”、 “实体所知”三种不同认证因素结合起来增强系统或设备的安全性是研究人员容易设想的方向,因此多因素认证解决认证安全问题是大势所趋。基于OTP技术的MFA认证,是指在传统的用户名密码认证的基础上,增加一个额外的OTP认证。基于实体所知的方法是最为广泛使用的方法,如密码、验证码等,其成本低、实现简单,但同时也面临较大安全威胁如暴力破解和木马侵入等。原创 2024-06-03 08:00:00 · 3787 阅读 · 0 评论 -
消息中间件-kafka实战-第五章-kafka重复消费、顺序消费及死信队列
这个默认值是比较坑人的,如果你的消息处理逻辑比较重,比如需要查数据库,调用接口,甚至是复杂计算,那么你很难保证能够在5min内处理完500条消息,也就是说,如果上游真的突然大爆发生产了成千上万条消息,而平摊到每个消费者身上的消息达到了500的又无法按时消费完成的话就会触发rebalance, 然后这批消息会被分配到另一个消费者中,还是会处理不完,又会触发rebalance, 这样这批消息就永远也处理不完,而且一直在重复处理。,单次poll调用返回的最大消息记录数,如果处理逻辑很轻量,可以适当提高该值。原创 2023-08-22 08:00:00 · 1494 阅读 · 0 评论 -
消息中间件-kafka实战-第六章-kafka加线程池多线程消费
头条面试:当线上Kafka集群有大量消息积压时,如何利用多线程消费解决消费积压问题原创 2023-08-18 08:00:00 · 680 阅读 · 0 评论 -
使用SpringAop切面编程通过Spel表达式实现Controller权限控制
我们仅需要定义一个value属性用于接收表达式即可。@Target({/*** permissionAll()-----只要配置了角色就可以访问* hasPermission("MENU.QUERY")-----有MENU.QUERY操作权限的角色可以访问* hasAnyPermission("MENU.QUERY","MENU.ADD")-----有MENU.QUERY操作权限的角色可以访问* permitAll()-----放行所有请求。原创 2023-08-14 18:30:00 · 1096 阅读 · 0 评论 -
SpringBoot集成企业微信群聊机器人消息
现在很多企业都在使用企业微信进行工作交流,自从企业微信推出群机器人之后,使用企业微信的小伙伴一般都会用机器人来推送定时消息或者提醒等,这样能够为企业工作群的管理提升效率,能很好的帮助企业运营管理工作群,同样它可以作为一个小助手,也为工作增加一些乐趣。原创 2023-08-03 08:00:00 · 1872 阅读 · 0 评论 -
SpringBoot集成企业微信自建应用消息
消息群发,是企业微信提供的用于企业向成员推送企业通知的工具,支持管理端手动发送以及API接口发送。支持的消息类型包含文本、图文、外链图文、音频、视频、图片。同时针对企业内的场景,企业微信还提供诸如消息自动回复设置、管理员可查看用户上行消息、素材库等功能。原创 2023-06-19 08:00:00 · 1338 阅读 · 0 评论 -
设计模式-责任链模式
责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。转载 2023-05-30 18:00:00 · 187 阅读 · 1 评论 -
java自研udp负载均衡服务实现gb28181的sip信令代理
对于海量的摄像头以及Sip下级,都通过SipProxy的一个出入口开访问背后的多个信令服务器。SipProxy监听一个udp端口,所有摄像头和SipServer对于SipProxy来说都是客户端IPC摄像头1 - - - - - - - - SipServer1(信令服务) | | SipServer(下级) - - - < - - - > SipProxy < - - - > | | IPC摄像头2 - - - - - - - - SipServer2(信令服务)原创 2023-05-29 08:00:00 · 2135 阅读 · 0 评论 -
Java线程池从入门到精通(线程池实战)
AbstractExecutorService 则是上层的抽象类,将执行任务的流程串联了起来,保证下层的实现只需关注一个执行任务的方法即可。最下层的实现类 ThreadPoolExecutor 实现最复杂的运行部分,ThreadPoolExecutor 将会一方面维护自身的生命周期,另一方面同时管理线程和任务,使两者良好的结合从而执行并行任务。只有当队列中任务数量>corePoolSize时,才会触发创建非核心线程,并且根据任务执行的长短,可能会导致无法顺序执行。原创 2023-04-24 07:45:00 · 1177 阅读 · 0 评论 -
Alibaba开源的Java诊断工具Arthas-实战
可以看到level=null,则说明实际最终的level是从root logger里来的。一般我们使用arthas 进行接口具体的耗时分析 还可以结合 skyworking等分布式追踪框架查看耗时。第一步 可能只关系耗时大于多少的进行分析 (项目优化批量进行捕捉分析耗时的位置,也可以采用"盲"匹配)直接watch Connection 查看sql 这个可以满足基本的需求,没有执行参数的信息。表示遍历深度,可以调整来打印具体的参数和结果内容,默认值是1。当访问 user/101 时,watch会打印出结果。原创 2023-04-11 12:09:34 · 873 阅读 · 0 评论 -
SpringBoot集成钉钉自定义机器人群消息推送
企业内部有较多系统支撑着公司的核心业务流程,譬如CRM系统、交易系统、监控报警系统等等。通过钉钉的自定义机器人,可以将这些系统事件同步到钉钉的聊天群。说明当前机器人尚不支持应答机制,该机制指的是群里成员在聊天@机器人的时候,钉钉回调指定的服务地址,即Outgoing机器人。调用频率限制由于消息发送太频繁会严重影响群成员的使用体验,因此钉钉开放平台对自定义机器人发送消息的频率作出以下限制:每个机器人每分钟最多发送20条消息到群里,如果超过20条,会限流10分钟。原创 2023-03-29 14:00:00 · 3746 阅读 · 3 评论 -
mybatis实战
mybatis支持的映射方式有基于xml的mapper.xml文件、基于java的使用Mapper接口class,简单学习一下mybatis使用接口来配置映射的方法。接口方法注解主要是四个:@Insert、@Delete、@Update、@Select原创 2023-03-07 08:00:00 · 551 阅读 · 0 评论 -
SpringBoot国际化i18n
在response文件夹下新建 i18n,我们在里面写吧,新建3个文件: 【[记住!!!properties编码要设置utf-8]设置utf-8编码。原创 2023-02-20 08:00:00 · 717 阅读 · 0 评论 -
SpringBoot接入JaCoCo实践代码覆盖率
JaCoCo是面向Java的开源代码覆盖率工具,JaCoCo以Java代理模式运行,它负责在运行测试时检测字节码。JaCoCo会深入研究每个指令,并显示每个测试过程中要执行的行。为了收集覆盖率数据,JaCoCo使用ASM即时进行代码检测,并在此过程中从JVM Tool Interface接收事件,最终生成代码覆盖率报告。原创 2023-01-17 08:00:00 · 991 阅读 · 0 评论 -
Spring项目中自动打印执行SQL和耗时,这款神级插件你值得拥有
P6Spy是一个轻量级框架,只需简单配置,就可以无缝地拦截和记录数据库执行sql以及耗时,而无需对现有应用程序进行代码更改。其原理是包装原有的数据源,在sql执行前后做一些功能增强。P6Spy通过对数据源的包装,进而实现了一系列的功能增强,让我们可以方便的打印sql执行情况。但是相应的,如果在生产环境开启p6spy的打印功能,对性能还是由一定的影响的。原创 2023-01-13 08:00:00 · 1234 阅读 · 0 评论 -
WEB API 接口签名sign验证入门与实战
加密:在网络上传输的原始数据(明文)经过加密算法加密后形成(密文)传输,防止被窃取解密:将密文还原成原始数据接口签名:使用用户名,密码,时间戳和所有的排过序之后的参数组合起来,再加密得到的字符串,字符串是唯一的有权访问接口的鉴权码用户名:appKey密码:appSecret。原创 2022-10-26 20:53:12 · 5593 阅读 · 0 评论 -
Window下安装jdk1.7以及部署Tomcat7添加到服务
目录一、安装jdk1、下载安装2、配置环境变量打开高级配置新建JAVA_HOME修改Path增加如下新增CLASSPATH3、替换加密策略相关包,需要修改两处jre的目录替换4、验证安装成功,在命令行输入java -version二、安装Tomcat71、下载安装2、修改server.xml配置,开启Gzip压缩3、配置bin/setclasspath.bat4、拷贝exe程序5、修改service.bat6、安装服务7、配置服务jvm参数8、启动服务一、安装jdk1、下载安装尽量安装到D盘安装原创 2022-05-26 19:28:48 · 1389 阅读 · 0 评论 -
jvm虚拟机性能调优实战-第一章-java项目CPU占用100%线上排查方法
目录一、场景二、案例代码编写死循环代码启动脚本start.sh二、检查诊断1、查看java线程使用资源情况2、定位代码方法1、使用linux命令1)、找到对应的线程之后,比如是8688占用高,则通过命令转换16进制2)、用jstack保存现场3)、vim打开8688.txt方法2、使用JDK可视化工具jvisualvm工具定位代码找到工具连接jmx通过线程Dump分析线程及定位代码行一、场景linux下使用top命令发现cpu占用高的java项目及进程id二、案例代码编写死循环代码启动脚本st原创 2022-05-13 10:29:38 · 498 阅读 · 0 评论 -
jvm虚拟机性能调优实战-第一章-java项目内存死锁检测与诊断
目录一、场景二、案例代码1、线程T12、线程T2三、检测诊断1、查询java进程2、查看线程栈信息,并导出3、打开线程栈信息,查找死锁标识一、场景启动两个线程,线程T1先对资源R1加锁,然后立马对资源R2申请加锁;线程T2先对资源R2加锁,然后立马对资源R1申请加锁。此时线程T1因为T2已经对资源R2加锁,所以一直等待释放R2;T2则一直等待T1释放R1,造成相互等待对方释放锁资源而造成的死锁。二、案例代码1、线程T12、线程T2三、检测诊断1、查询java进程jps -l2、原创 2022-05-13 09:59:26 · 302 阅读 · 0 评论 -
设计模式-享元模式
一、概述享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。由于只有 5 种可用的颜色,所以 color 属性被用来检查现有的 Circle 对象。介绍意图:运用共享技术有效地支持大量细粒度的对象。主要解决:在有大量对转载 2022-04-25 23:36:48 · 122 阅读 · 0 评论 -
设计模式-代理模式
一、概述在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的原创 2022-04-25 23:27:20 · 123 阅读 · 0 评论 -
设计模式-单例模式
一、概述单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要原创 2022-04-25 22:51:47 · 371 阅读 · 0 评论 -
生产服务器变慢了,如何排查思路?
作为一名软件开发者,平时关注点更多是在程序开发上,但掌握一些运维知识点还是很有必要的,不仅可以提高我们自身的知识面,还可以方便定位问题,有利于我们解决问题的能力。所以我觉得有必要掌握。张工是一名程序员,做java开发,有次到一家软件公司应聘java开发岗位,面试官就问了他这样一个问题:生产服务器变慢了,如何排查思路?张工由于平时对运维知识点掌握得比较少,回答起来也就没有那么充分。对于这个问题,一般可以从下面几点入手:服务器的整体情况, CPU,内存,磁盘,磁盘IO,网络IO。这需要我们掌握几个比较原创 2022-04-19 14:22:02 · 608 阅读 · 0 评论 -
String的基本原理及内存泄露
今天给大家聊聊咱们平时写代码的时候,最常见的String字符串代码,他的一些底层原理,以及使用不当可能引发的内存泄漏的问题,相信对于大家平时日常开发写代码会有一定的帮助。String字符串在内存里是如何存储的?首先呢,当我们平时在代码中写下一行String类型的代码时,大家知道这个String字符串在内存里是如何存储的吗?比如这样的一行代码:String username = “zhangsan”,这个"zhangsan"其实就是一串字符串,实际上他在底层是用一个数组来存放的,而且这个数组大小就严格等于原创 2022-04-19 11:54:31 · 502 阅读 · 0 评论 -
【转载】JavaFX搭建可视化实现OCR识别护照
OCR识别护照(一):JavaFX搭建可视化界面https://www.toutiao.com/article/7086003118177190441/?log_from=f5d517f139292_1650333546965OCR识别护照(二):护照识别及数据导出https://www.toutiao.com/article/7086282797341704735/?log_from=795ca0cf302a5_1650333692178...转载 2022-04-19 10:08:02 · 399 阅读 · 0 评论