- 博客(31)
- 收藏
- 关注
原创 MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error preparing statement. Cause: com.google.common.util.concurrent.UncheckedExecutionException: org.apache.shardingsphere.sql.parser.exception.SQ
2022-04-06 12:57:57
7464
原创 redis集群搭建
集群细节所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和宽带。节点的fail是通过集群中超过半数的节点检测失效时才能生效。客户端与redis节点直连,不需要中间proxy层,客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。Redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster负责维护node<->slot<->valueredis集群搭建制作6个redis实例,端口号分别是63
2022-01-13 18:48:49
3202
原创 配置redis主从复制以及哨兵配置
配置redis主从复制创建/myredis文件夹复制redis安装目录下的redis.conf配置文件到文件夹中配置一主两从,创建三个配置文件redis6379.conf(主)内容include /myredis/redis.confpidfile /var/run/redis_6379.pidport 6379dbfilename dump6379.rdbredis6380.conf(从)内容include /myredis/redis.confpidfile /var/r
2022-01-13 17:51:42
601
原创 redis防止黑客恶意攻击的简单办法
1.在redis中放入有用户标识的key,每次用户操作时都会根据用户标识的key去匹配一下,匹配上就能操作,匹配不上就拒绝。下面的代码是商品秒杀场景,根据用户id和商品id去生成一个标识,然后放入redis缓存中。@Override public String getMd5(Integer id,Integer userid){ //检验用户的合法性 User user = userMapper.findById(userid); if(user
2021-12-31 20:39:18
1515
原创 springboot和redis实现抢购时间的限制
1.在spring项目的pom文件引入redis依赖<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g
2021-12-31 10:53:24
652
原创 用数据库实现乐观锁,并用谷歌令牌桶算法RateLimiter实现限流
设计表时,表中有一个版本的字段,用id和版本号去控制商品的售卖。如果线程A拿到id为1的stock的version是0,正在执行updateStock方法,线程A会把version从0更改为1.线程B在线程A在执行的同时,也拿到了id为1的stock的version是0。但由于数据库事务的控制,同一时刻只有一个线程去执行更新的方法。线程A执行完后,id为1的stock的version已经为1,线程B去更新数据时发现id为1,version为0的stock已经找不到了,所以无法更新数据,只能重新查询i
2021-12-30 15:47:36
759
1
原创 synchronized和@Transactional的平衡关系
一、如果synchronzied关键字加到service类的方法中,出现商品超买的情况。原因:transactional事务这块也有线程同步synchronzied也会有线程同步事务的范围要比线程同步的范围大synchronzied代码块结束后,事务可能没有结束,线程把锁释放了,但事务还没有结束,事务还没提交,此时下一个线程来了,来了之后,此时事务开始提交,然后下一个线程开始执行了,执行的时候,数据库也跟着提交了。二、synchronized放在调用处(控制层)的代码块上,这样能避免商口超买的
2021-12-30 10:42:57
3798
原创 elasticsearch-ik分词器
elasticsearch-ik分词器这里用的分词器版本是elasticsearch-analysis-ik-7.16.1.zip,和elasticsearch是相同的版本,这样不容易出错。每个节点的elasticsearch中都要安装elasticsearch-analysis-ik。安装过程1. linux安装zip解压器yum -y install unzip2. 在原来的elasticsearch安装目录中的plugins目录下创建一个名为ik的文件夹mkdir -p /usr/lo
2021-12-24 15:18:56
1287
原创 springboot整合elasticsearch
在idea中新建项目,选择spring模板。选择elasticsearch依赖。项目的pom文件是这样的。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.a.
2021-12-24 11:36:21
1617
原创 Logstash从mysql导数据到elasticsearch中
Logstash从mysql导数据到elasticsearch中基本安装1. 创建logstash安装目录mkdir -p /usr/local/logstash2. 解压tar包到指定的目录tar zxvf logstash-7.16.1-linux-x86_64.tar.gz -C /usr/local/logstash/3. 启动logstash/bin/logstash -e 'input {stdin{}} output {stdout{}}'同步mysql数据配置1.
2021-12-23 18:31:08
1069
原创 Elasticsearch的核心概念
Elasticsearch的核心概念1. 索引(index)一个索引就是一个拥有几分相似特征的文档的集合。(对应mysql中的数据库)2. 文档(document)一个文档是一个可被索引的基础信息单元,也就是一条数据。(对应mysql中的表中一行)文档以JSON格式来表示,而JSON是一个到处存在的互联网数据交互格式。3. 字段(Field)相当于是数据表的字段,对文档数据根据不同属性进行的分类标识。(对应mysql中的表中的字段)4. 映射(mapping)mapping是处理数据的方式
2021-12-23 15:49:55
520
原创 elasticsearch集群搭建,elasticsearch-7.16.1版本linux系统
1. 把elasticsearch-7.16.1-linux-x86_64.tar.gz解压到/usr/local下,并重命名为es-cluster2. 把es-cluster分发到其他两个节点,server2,server3xsync es-cluster server 2 33. 创建es用户因为安全问题,easticsearch不允许root用户直接运行,所以要在每个节点中创建新用户,在root用户中创建新用户useradd es #新增es用户passwd es #为es用户设置密码u
2021-12-23 11:00:56
2801
4
原创 linux系统同步分发xsync配置
linux系统同步分发xsync配置1.在本地的/etc/hosts文件中,配置要同步分发的服务的IP别名。2.配置免密登录2.1生成rsa密钥使用命令ssh-keygen 生成rsa密钥,配置信息直接回车即可, 生成的密钥默认在当前用户主目录的.ssh目录下。密钥文件有两个:id_rsa 存放着私钥id_rsa.pub 存放着公钥命令执行结果如下:2.2 copy机器自身公钥到目标机器2.2.1 在目标机器(server2,server3)的用户主目录创建.ssh目录mkdi
2021-12-22 18:53:10
1553
2
原创 Disruptor的多生产者和多消费者模式实现
Disruptor的多生产者和多消费者模式实现啥也不说了,上代码1.maven依赖<!-- https://mvnrepository.com/artifact/com.lmax/disruptor --> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId>
2021-07-28 17:41:58
2259
原创 华为push研究
华为push研究华为push是往华为手机上推送消息这个流程,我先贴个图。1.注册华为推送平台,得到appid,appsecret.2.由第一步的得到的appid,appsecret,请求https://oauth-login.cloud.huawei.com/oauth2/v3/token,这样做的目的是为了得到access_token.可以在postman中先测试一下。2.1.在Postman新建一个Tab,输入接口地址,选择POST方式:post地址:https://oauth-log
2021-07-13 16:32:46
1693
原创 部署项目,启动tomcat时窗口一闪而过。
部署项目,启动tomcat时一闪而过。启动tomcat时,tomcat窗口一闪而过,看不清什么错误,去日志文件中也没找到错误日志。这时候就需要不让窗口自动关掉,以看清窗口提示的错误信息。让窗口不自动关掉,右击startup.bat用记事本的方式打开。做下面的改变。改后保存后,再次点击startaup.bat再次启动tomca。出现如下图所示的错误信息。错误信息的意思是tomcat需要的运行内存大小满足不了。所以需要把tomcat的运行参数配置一下。右击catalina.bat,根据具体情况
2021-01-05 20:17:51
299
原创 js onclick事件出现 xx is not defined错误
js onclick事件出现 xx is not defined错误出现这个错误从3个地方排错:1.方法名是不是写错了。2.方法是不是写在$().ready()中了。3.上面的情况都不是的话,那就是你的方法里有错误,先把你写的js方法体中的代码都注释掉,看走不走你写的js方法(用console.log()或alert()做一些提示)。...
2020-11-06 09:47:31
2552
2
原创 solr配置
solr配置1.把\solr-4.10.3\dist\solr-4.10.3.war复制到安装的tomcat的webapps文件夹下面,本次是安装在D:\temp\apache-tomcat-7.0.53\webapps下,并且改名为solr.war;2.solr.war解压.使用压缩工具解压或者启动tomcat自动解压.解压之后删除solr.war;3.把\solr-4.10.3\exa...
2019-12-01 15:34:24
403
原创 关于SpringCloud+Mybatis整合,Mybatis配置文件的奇葩问题。
关于SpringCloud+Mybatis整合,M欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用...
2019-11-29 10:34:50
342
原创 启动springboot项目jar文件出现 java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
启动springboot项目jar文件出现Exception in thread “main” java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication参考网址https://blog.youkuaiyun.com/qq_40293486/article/details/80826016出现这种错误,我的理解是因为...
2019-08-28 18:49:02
18927
3
原创 spring boot做定时任务管理模块。
spring boot做定时任务管理模块。我做的定时器管理界面是下面这样的。下面来说说做定时任务管理模块的步骤。1.在pom.xml中配maven库。&amp;amp;lt;!-- 定时器 --&amp;amp;gt;&amp;amp;lt;dependency&amp;amp;gt; &amp;amp;lt;groupId&amp;amp;gt;org.quartz-schedule
2018-11-22 21:52:50
8533
3
原创 $.messager.alert 提示框不显示问题。
$.messager.alert 提示不显示问题。js代码如下面,直接**return;**是不显示$.messager.alert 提示框的。if (isEmpty(jobname)){ $.messager.alert('提示', &quot;任务名称不允许为空!&quot;,'warning'); return;}js代码如下面,**return false;**后可以显示$.messager.a...
2018-11-21 19:23:10
3624
原创 $.messager.progress 与 ajax 结合使用时不显示进度条的问题。
$.messager.progress 与 ajax 结合使用不显示进度条的问题运行不显示进度条时,ajax的async状态是 false。把ajax的async状态改为true就可以显示出进度条了。
2018-11-21 19:11:32
4127
原创 spring boot结合FastDFSClient做下载文件注意事项
spring boot结合FastDFSClient做下载文件注意事项下面是后台代码// An highlighted block/** * 下载 * @return * @throws Exception */ @ResponseBody @RequestMapping(value=&amp;amp;amp;amp;amp;quot;/downloadXmlFileList&amp;amp;amp;amp;amp;quot;,
2018-11-01 18:24:42
5783
1
原创 处理文件上传后返回json数据在IE出现文件下载问题(框架是spring boot)
处理文件上传后返回json数据在IE出现文件下载问题(框架是spring boot)最近做了一个上传xml文件的功能,在谷歌浏览上传没有问题,可以返回正确的结果,但在ie浏览器上上传成功以后,一直提示下载东西。(因为上传成功后,controller会返回json到前台,提示保存成功)查找原因后,发现问题出在controller的设置上,原来的代码是这样的。// An highlighted...
2018-10-31 19:31:57
1343
1
原创 spring boot 整合定时任务
springboot 整合定时任务首先在pom.xml文件中加入定时任务的依赖.创建一个定时任务的service.然后创建一个定时任务要去执行的程序。此图中有一个SpringUtil.getBean(String name)方法的作用是通过Bean的名字返回此Bean.这是SpringUtil类。新建一个定时任务,加到定时任务管理列表中。下面是QuartzManager类...
2018-10-24 13:05:30
531
原创 安装及使用mongodb遇到问题总结
我安装的是mongodb 4.0.3版本的安装过程出现的问题:在安装的最后阶段,绿色进度条一直卡着不走了,查询资料后,下面的红框标记的复选框不要选,就可以顺利安装了。通过查询https://blog.youkuaiyun.com/sj2050/article/details/82838882 这个网址知道原因的。在测试服务安装好mongodb后,在本地的Robo 3T客户端一直连接不到测试服务器上的m...
2018-10-14 21:19:23
320
转载 ajax请求在ie和360兼容模式浏览器中数据不能正常返回
ajax get请求在ie和360兼容模式浏览器中数据不能正常返回,但debugger后数据在ie和360兼容模式浏览器可以正常返回的。 在网上查了一下资料。 以下是资料内容:在使用jQuery的AJAX:get方法去检测数据是否存在时,会发现IE会出现不兼容的情况。用AJAX:post方法时,使用Chrome/FireFox/IE均能出现正确的结果,但是在使用AJAX:get方法时,...
2018-08-27 11:06:42
2637
原创 easyui combobox下拉框不能自动检索问题
今天遇到了easyui combobox下拉框不能自动检索的问题,查找好了半天的原因,原来textField对应的字段要是字符串类型。
2018-08-21 20:57:46
760
转载 jvm字符串常量池的理解
jvm字符串常量池的理解 先看一个例子StringDemo2public class StringDemo2 { public static void main(String[] args) { String s1 = new String(&amp;amp;amp;amp;amp;amp;amp;amp;quot;hello&amp;amp;amp;amp;amp;amp;amp;amp;quot;); String s2
2018-08-08 16:04:49
1666
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人