自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(192)
  • 资源 (6)
  • 收藏
  • 关注

原创 nacos2.2.3 适配dm数据库

从github上下载了源码,选择了2.2.3分支后修改。

2024-03-15 14:26:00 374

原创 DDD 领域驱动设计的基本概念 个人理解

聚合内的通过领域服务去处理,根据是否变实体的状态可进一步划分为查询类、增删改的事件领域服务,业务复杂可以再进一步用策略设计模式去创建更多不同的领域服务类。像是springMVC的映射层、MQ之类的还是最上层的用户接口层、第三方的接口属于获取数据又不影响本领域实体的状态所以属于基础层等等。3). 实体的划分,聚合、聚合根、上下文界限的划分来确定代码上划分实体等,通过事件风暴推断出可能存在的领域模型和聚合之间的联系等。2). 实体之间的关系可由UML图等建模图形去处理更好,图形划分领域和资源之间的关系。

2024-02-29 12:17:59 374

原创 ubuntu系统个人部署LangChain过程

如果模型目录名称和 MODEL_PATH 中的 key 或 value 相同,程序会自动检测加载,无需修改 MODEL_PATH 中的路径。修改里面的MODEL_ROOT_PATH的值,因为git创建好文件夹正好与文件下面的MODEL_PATH里的默认路径对上,所以只改这里就行了。下载huggingface的模型需要梯子,太费时间,可以去国产gitee上搜索相关模型,用国产链接下载。# 每个模型可以是一个单独的目录,也可以是某个目录下的二级子目录。具体参考官方的,这里额外记录一下官方文档里面没有写的。

2024-02-20 18:16:59 586

原创 个人记录centos ChatGLM部署教程

参考下面的链接,下载ChatGLM-6B,还是需要注意,安装软件时注意 命令python、pip用高版本的python,不要用低版本的python。英伟达的显卡CUDA版本>11.0,按照官网的教程下载软件包,不过在线安装的好像是最新的并不是11.8,我这里在线安装以后显示的是12.3。还有就是,我照着上面的装完以后发现还是报错,原因是缺少官网下的配置文件,翻墙去外面把所有相关文件都下载一下,我选的是1.1 version。openSSL大于1.1.1版本,这个影响后面python的编译,需要先升级。

2024-02-04 14:34:58 779

转载 IDEA文件过大,file size exceeds configured limit处理

源码导入IDEA中,起了一遍后发现找不到BPShop.java这个文件,一查发现报错file size exceeds configured limit;补充:也可以把下面这个max content load 调大,不然下次遇到过大文件idea打不开会出现;(default大小为2500,我之前改过;经常遇到3MB以上的文件,就会报这种错)第二步:修改其中max intellisense filesize=900;第三步:重启IDEA;

2022-11-08 13:48:14 2835 1

原创 连表 MyBatis-Plus的IPage分页total 错误

正常情况下这样做并没有什么问题,但是当我select 后面需要聚合,比如使用sum函数的时候,自动优化得到的total就会比预期多。发现mybatis自动优化了sql,把select 后面要查询的内容全部省略,直接count。这是mysql自动优化的策略。MybatisPlus 是目前最好用的Mybatis增强工具,比如它的分页功能,不过有时也会遇到点问题。最近在使用分页功能的时候发现统计到的total和预期不符,于是在控制台查看分页count sql,当日解决办法也是有的,就是禁用自动优化。...

2022-08-10 17:44:16 1215

原创 Tomcat启动war包卡死 启动慢

在tomcat里面放入war包也是直接卡主,过了很久也没反应。最近idea启动tomcat项目时突然卡主不动。修改对应版本的jre下的文件。

2022-07-19 09:59:44 1145

翻译 微服务Redis循环写入性能提升

简介有微服务的架构不代表性能好,而使用微服务的架构必须要求性能好。这句话不矛盾。矛盾在外面很多人认为微服务架构代表高并发,实际不是。我们有“书面微服务”和“实际微服务”之说。比如说网上大量教人把httpConnection或者是FeignClient的timeout改成30秒就不会超时了?那这要什么微服务呢?微服务解决的到底是什么呢?绝大多数人忘记了微服务的本质是用来解决什么问题的。互联网应用在To C端有6秒之说,即一个小程序/APP应用打开和加载过程>6秒,肯定新用户就不会再去用了,4

2022-05-19 17:29:28 715

原创 mysql 1045 拒绝远程链接

1、报错与原因今天,使用Navicat远程登录一台 PC 机的 mysql(linux 系统),结果报错如下:从报错信息来看,是用户 sdt 登录 100.10.51.32 被否决了,但是使用密码是正确的,其错误原因可能有两个:用户名错误该 PC 机拒绝远程访问,即本地所在 IP 没有访问权限第一个原因很快被我否决了,尝试根据第二个可能错误原因去解决。本地所在的 ip 没有访问权限,被拒绝访问,需要我们在数据库为我们的本地 ip 添加访问权限。2、解决方案第一步:登录 P..

2022-04-28 14:33:11 6168

原创 com.sun:tools

阿里druid里面遇到报错Cannot resolve com.sun:tools:1.8、Cannot resolve com.jconsole:1.8pom.xml文件中增加如下配置,记得之前要配置好系统环境变量,比如java_home,classpath啥的,确保jdk的lib文件夹下面有这两个jar包 <dependency> <groupId>com.sun</groupId> ...

2022-04-14 18:09:59 942

原创 Log4jdbc-log4j2打印mybatis语句

引言: 在项目中使用了MyBatis,一个比较苦恼的问题是无法看到执行的SQL的具体情况,所以,就找到了Log4jdbc-log4j2。这个是一个基于jdbc层面的监听工具,可以监听对于数据库的主要操作,从而完美的查看到其中执行的操作。1. Log4jdbc-log4j2版本选择log4jdbc-log4j2-jdbc3.jar for JDBC 3 support in JDK 1.5log4jdbc-log4j2-jdbc4.jar for JDBC 4 support in JDK 1

2022-04-13 13:55:09 393

原创 MySQL5.7的下载以及安装

高版本Mysql插件很多,本地测试装个简单的就行,官网上的5.7没有安装程序,需要手动配置一下启动服务下载地址:Mysql下载解压之后的地址,目录。其中data是接下来的操作里生成的,my.ini是我们需要添加的。my.ini的完整代码。这个不用多说,网上都有,而且下面注释也是很全的,需要修改basedir以及datadir,依照自己的实际情况修改[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=D:\\soft\\mysq...

2022-04-07 16:54:13 339

原创 java项目 服务器部署Word转成PDF乱码

1、问题描述用户在使用系统时,发现文件预览偶尔,显示乱码。2、问题定位关于文件预览功能,以前从未出现类似问题。最近为了提高服务器负载,新增几台服务器,部署了此服务。由此推断,此问题与预览服务无关。可能与服务器配置有关系。然后,根据推断,搜索相关关键字,发现应该与服务器字体有关。3、解决问题步骤上传字体文件 首先在C:/windows/fonts找到windows下的字体,后缀为.ttf和.ttc,在服务器/usr/shared/fonts目录下新建一个目录chinese,将找到.t..

2022-03-22 11:20:33 2594

原创 JVM堆内存设置调优

堆内存设置原理JVM堆内存分为2块:PermanentSpace 和 Heap Space。Permanent 即持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。 Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation),New 即年轻代(Young Generation)。年老代和年轻代的划分对垃圾收集影响比较大。年轻代所有新生成...

2022-03-03 15:36:51 1395

转载 JVM调优配置

四、调优总结堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置: java-Xmx3550m -Xms3550m -Xmn2g-Xss128k-Xmx3550m:设置JVM最大可用内存为3550M。-Xm...

2022-02-11 16:43:18 303

转载 Eurek自我保护机制

Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%,如果低于 85%,Eureka Server 会将这些实例保护起来,让这些实例不会过期,但是在保护期内如果服务刚好这个服务提供者非正常下线了,此时服务消费者就会拿到一个无效的服务实例,此时会调用失败,对于这个问题需要服务消费者端要有一些容错机制,如重试,断路器等。我们在单机测试的时候很容易满足心跳失败比例在 15 分钟之内低于 85%,这个时候就会触发 Eureka 的保护机制,一旦开启了保护机制,则服务注册中

2022-02-10 18:58:52 320

原创 mysqlplus 字段验证策略fieldStrategy

ignored 不管有没有有设置属性,所有的字段都会设置到insert语句中,如果没设置值,全为null,这种在update 操作中会有风险,把有值的更新为nullnot_null,也是默认策略,也就是忽略null的字段,不忽略""not-empty 为null,为空串的忽略,就是如果设置值为null,“”,不会插入数据库实际业务中,如果非要把有值变为空,可以在对象属性字段上面加上:@TableField(strategy = FieldStrategy.IGNORED)Fi...

2021-12-27 11:04:08 1002

原创 Spring 事务超时时间

问题:生产环境下插入大量数据,日志报错,数据最终没有入库,显示state报错。测试和结论:Transactional中设置超时时间5秒,代码中先插入数据,后sleep数秒,没有报错。用另外一个线程更新锁定一个数据后不提交事务,然后再开一个线程去更新此数据,之后报错了,说明超时时间指的是数据库执行最多能用的时间,不是java程序执行的时间。在spring中如何使用事务是一个很大的问题,其中有一个我需要在这篇文章中着重讲解一下,就是spring事务中的超时时间问题,很多同学不知道如何才能是这个超

2021-11-16 15:50:09 5092

原创 java doc、docx、pdf格式互转

使用Aspose工具进行格式转换,Linux下支持,不需要安装额外的软件和操作。一、概述:Aspose.Words是一个商业.NET类库,可以使得应用程序处理大量的文件任务。Aspose.Words支持Doc,Docx,RTF,HTML,OpenDocument,PDF,XPS,EPUB和其他格式。使用Aspose.Words可以在不使用Microsoft.Word的情况下生成、修改、转换和打印文档。二、功能简介:1、Aspose.Words具有高质量的文件格式转换功能,可以和Doc,OOXL..

2021-11-09 11:32:36 1328

原创 java中 获取classpath路径

一:properties下配置在resources下定义server.propertiesregister.jks.path=classpath\:conf/userRegister/migu.jksxml配置server.properties<util:properties id="settings" location="classpath:conf/server.properties"/>在service类里注入: private Resourc.

2021-10-28 09:39:31 5318

原创 mybatis-plus更新问题 全量更新、只更新部分属性

项目:前端vue+后台java项目数据库:默认是null,不是""遇到的问题:使用elementUI的下拉框、treeSelect等控件删除一个对象的某些属性,之后无法成功更新“删除”掉这些数据mybatis默认更新规则是不更新属性为null的属性的。一般情况下遇到的一个问题就是:只能改属性,删不掉属性。从安全、性能角度考虑确实需要这样,但是如果一张表有多重数据入口,比如可以在多个页面操作修改含有同一个表的数据,就必须得查出来所有字段,会影响一部分性能,另外项目迭代、连表查询时也容易

2021-04-07 13:48:04 8736 3

转载 MySQL的回表查询与索引覆盖查询

MySQL的回表查询与索引覆盖查询回表查询名词解释上篇讲到,MySQL中分为聚集索引和非聚集索引。非聚集索引的btree叶子节点中存储的是当行数据的PK。所以为了取到具体数据,则需要通过PK回到聚集索引里去查询数据。着就叫回表查询。扫描了2次索引树。所以效率相对较低。有图有真相假设有个T表,如下图所示。id是聚集索引,name则是普通索引。id name sex 1 小毛 男 2 小高 女 3 大雄 男 4 A梦

2020-12-14 18:11:19 315

转载 RabbitMQ延迟队列

今天要做一个让用户A发布一个加密文件,设置下载次数,存在短时间内并发高的问题,无法预料用户设置的时间和次数,通过MQ延时队列实现https://www.cnblogs.com/mfrank/p/11260355.html

2020-12-03 16:15:58 108

转载 MybatisPlus--SQL注入器进行自定义注入sql和方法

https://blog.csdn.net/qq_41813208/article/details/108067050?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-

2020-11-04 09:14:37 1048

原创 java中一个对象占多少字节

a

2020-11-03 18:58:10 1332 2

转载 Java 对象布局、大小工具 jar包工具类jol

一 概述最近需求,打算再内存缓存数据,数据量130000万并且还会增加,了解这些数据占用空间的大小是很常见的监控需要。常规方式,人工可以按照Java基础数据类型大小及内容大小估算出缓存对象的大概堆占用,但是麻烦还不准。OpenJDK,提供了JOL包,可以帮我们在运行时计算某个对象的大小,是非常好的工具官网:http://openjdk.java.net/projects/code-tools/jol/定位:分析对象在JVM的大小和分布依赖:<dependenc..

2020-11-03 18:00:43 1683

原创 java 线程池不抛异常 异常捕获失败问题

背景分段执行业务时需要执行某段sql语句,由于是多个线程执行多个sql,线程之间需要使用一些读锁,若发生异常需要释放锁,结果某个线程的sql出现了错误,后台没有打印错误日志。List<ImportModel> query = query(dataTransfer.getEngName(), sql); try { readLock.lock(); arrayList.add(

2020-10-29 17:43:39 1693

原创 JMM同步规范和Volatile重点概要

背景JMM称为java内存模型,用于规范线程之间的数据共享问题,出现此模型的原因和硬件的发展有关。早期的单核cpu下不会存在该问题,后来多核cpu和cpu多重缓存机制加快了数据的读写,但是也产生了不同步问题。JMM之后通过cpu的总线机制优化了这个情况,该总线是主内存和CPU缓存之间的一个过渡区,可以通知各个线程变量变化。加了Volatile的变量可以被总线监视。过程如图A所示:假如某个CPU有两个核心,每个核心执行一个线程,硬件角度上他们两个是不同的寄存器,但是却共享主..

2020-10-29 10:02:21 141

原创 本地一键安装、重启Linux服务器和远程debug调试代码 idea

背景在一些Linux测试环境下经常报出莫名其妙的bug,传统做法在测试服务器上调试bug需要不停手动输命令,并且看日志也非常不方便。本次通过idea插件就可以达到一键启动,在本地调试代码一样。以idea和maven项目为例子。插件https://www.aliyun.com/product/cloudtoolkit可以直接在Idea里下载Alibaba Cloud Toolkit之后,需要注册一个阿里云账号,注册完在阿里云教程直接就能拿到app_id和app_secre.

2020-10-27 15:13:13 430 1

原创 java 开发必备的安全架构知识

1.XXS攻击原因:XXS攻击是js脚本攻击,将网站上传给后台的参数设置成js脚本格式:<script>...<script/>格式,当另外一个页面需要展示这个参数时就会加载此参数,从而造成<body>${name}<body/>变成<body><script>...<scritp/><body/>形式,执行脚本文件。黑客会利用此漏洞进行页面非法跳转等,如钓鱼网站,或尝试用js读取本地cooki...

2020-10-20 17:30:07 598

原创 数据库优化java设计模式架构 策略 责任链

这里更像是一种思想:对业务进行拆分,通过设计模式将其分成一个一个单体,通过数据库进行管理,通过上下文(content)容器类进行获取,前台可以直观看到单个业务之间关系,也能进行管理。比如策略模式遇到的问题,项目中创建或者返回多态声明时往往遇到的:避免不了使用ifswitch (report.getCode()){ case "1": pass(report); break; cas.

2020-10-19 19:20:44 173

原创 SpringMVC 接口 JDK动态代理导致映射失败的原因 异步注解Async失效 微服务映射的位置

映射失败发生的条件:映射层实现某个接口,并且该接口中必须有方法,此时会导致无法访问该接口。如题下图所示:若删除MemberService中的代码,让其成为一个空的接口,则映射可以访问。原因由于spring默认,实现了接口的会以jdk代理形式产生代理类,当某个类实现了接口时,会读取接口内的代码,并且丢失了注解,导致没有进入spring容器内,所以访问不到。若接口内没有代码,则以当前的类作为被代理对象。ps:这里有一个问题就是,微服务项目里映射写到接口中,feign却..

2020-10-15 15:11:52 352 1

原创 Java8 List去重(单属性或组合属性)

code:package com.demo.jdk8.collectors; import com.google.common.collect.Lists;import org.junit.jupiter.api.Test; import java.util.ArrayList;import java.util.Comparator;import java.util.List;import java.util.TreeSet;import java.util.stream.Coll.

2020-10-15 13:47:14 470

转载 Oracle 树状 父子结点 查询方法 倒叙查询

前言旨在记录一些Oracle使用中遇到的各种各样的问题. 同时希望能帮到和我遇到同样问题的人.Start With (树查询)问题描述:在数据库中, 有一种比较常见得 设计模式, 层级结构 设计模式, 具体到 Oracle table中, 字段特点如下:ID, DSC, PID;三个字段, 分别表示 当前标识的 ID(主键), DSC 当前标识的描述, PID 其父级ID, 比较典型的例子 是 国家, 省, 市 这种层级结构;省份归属于国家, 因此 PID 为 国家的 ID, 以

2020-10-14 17:39:11 356

原创 spring框架类加载顺顺序 并 在spring启动后查询数据库加载到容器内

这些场景常用于一些饿汉式加载数据,比如让系统启动时加载一些数据库中的数据,或者读取一些数据之类的,数据交给spring管理。数据量少可以用枚举,数据量不多不少也能用静态(数据源是数据库写法就麻烦),也能直接放到jvm内存里,不过这样对于分布式系统不友好,所以主流都是redis里。不过spring跟redis都需要等待spring加载完毕后进行初始化,并且这个初始化都是执行一次。之前我是这样写的:因为涉及spring相关,而构造方法又早于spring,没法通过对象的无参构造进行实例化,只.

2020-10-13 18:23:39 806 1

原创 java 动态代理 jdk为何比cglib效率低 原理总结

JDK 动态代理通过回调拦截方式,通过反射获取模板接口名字、内部方法以及参数,再原来的接口上修改,拼接,产生一个新的java代理对象(类似于mybatis的反序列化代码过程)1.拼接java源代码2.编译为class文件3.类加载器加载新的class到内存中4.通过反射执行方法Cglib动态代理采用继承方式,底层基于asm字节码技术参数一个新的java代理对象1.生成class文件2.读取class文件到内存中3.采用fastclass索引机制执行方法...

2020-10-13 10:11:03 1385 2

原创 java写法可能存在的 java.lang.OutOfMemoryError: Java heap space 问题

这也算一种最常见的、但是容易忽略的一种潜在问题吧背景在某个数据校验输出过程时会产生较多的临时数据,这些临时数据若不及时处理,可能会导致堆内存溢出。过程从图中可知,内存达到50%左右会进行一次gc操作,在某次gc操作之后调用某个接口,该接口产生了较多的临时数据多次调用,结果显示,每次调用时接口,都进行了gc操作,但是上次操作已经结束数秒了,结果gc的并不是很彻底,所以堆内存的容量扩容了,但是这样下去迟早会达到计算机的内存(理论上是这样,但是系统应该会进行full GC吧)...

2020-10-10 16:38:42 188

转载 idea64.exe.vmoptions 参数意义

本地调试必备~------------------------------------------------------------------------------------------------------------在解决一些项目问题时,常常会有加虚拟机参数的需要。这里解释了 idea64.exe.vmoptions文件中个参数的意义:-Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepG

2020-10-10 10:53:30 968

转载 jvm 内存溢出 Java heap space 调优解决过程

那么:问题来了, 一点自己写的代码的信息没有,怎么找?相信这是大多数兄弟遇到内存问题的第一反应错误信息是我朋友发给我的截图,我并没有他的代码,也不清楚项目的业务,更不知道为什么会OutOfMemory,懵逼中开始搞事情首先:理清思路1. 发现问题2. 分析问题3. 解决问题首先梳理一下思路: OutOfMemory,内存溢出, 是的,溢出了,什么问题导致的呢,是不是程序的内存给的不够引起的呢。 随即,我问了我的朋友程序启动指定内存没有?如果没有的话制定以下...

2020-10-10 09:15:00 7354 1

原创 java 多线程和spring之间的坑

需求把某个网站上或者别的数据库里导出的文件全部导入到自己的数据库里数据文件和格式已经给出了,不需要关心从哪来,只需要读取到数据库里就行,不能出错,不能时间太长。大致实现个人思路是先对数据进行分片,按照一定规则(数据数量)进行切分,然后多个线程同时读取往数据库里写,同时彼此控制事务。遇到的问题数据量少100万以内时没有遇到问题,数据量大的时候分片量大线程数也大。线程达到了8个,然后服务调取业务层时出现了:第八个线程总是会被无缘无故阻塞。日志表明8个线程都已经进入调用..

2020-09-30 15:24:24 159

nacos2.2.3 适配dm数据库

docker-compose 版本的包,里面包含适配过dm的nacso-server.jar

2024-03-15

DDD 领域驱动设计 基础ai回答问题

DDD 领域驱动设计 基础ai回答问题

2024-02-29

boostrap后台管理模板

一款比较全面的boostrap后台管理模板一款比较全面的boostrap后台管理模板一款比较全面的boostrap后台管理模板一款比较全面的boostrap后台管理模板一款比较全面的boostrap后台管理模板一款比较全面的boostrap后台管理模板

2020-10-21

EasyExcel 并发读取文件字段并进行校验,数据写入到新文件,批量插入数据到数据库

EasyExcel 并发读取文件字段并进行校验,数据写入到新文件,批量插入数据到数据库 demo

2020-09-29

模拟公司参会小程序

使用jquery和esay-ui结合Servlet来模拟一下公司参会系统

2018-06-22

模拟员工管理小程序

使用esay-ui和ztree来模拟一下员工管理,需要到的包已经在文件里了

2018-06-22

简单模拟购物小程序

使用最简单的js来模拟一下购物系统,数据库需要自己创建

2018-06-22

简单学生选课小项目

培训期间,模拟学生建表小项目,使用了一点esay-ui的框架

2018-06-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除