自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Springboot集成jpa出现class file version 55.0问题

【代码】Springboot集成jpa出现class file version 55.0问题。

2023-02-24 16:17:03 486 1

原创 Springboot中使用RabbitMQ创建一个延时队列

@Beanpublic Queue orderDelayQueue() { /* Queue(String name, 队列名字 boolean durable, 是否持久化 boolean exclusive, 是否排他 boolean autoDelete, 是否自动删除 Map<String, Object> arguments) 属性 */ HashMap<String

2022-01-16 15:44:48 309 1

原创 事务的传播行为

1. PROPAGATION_REQUIRED如果当前没有事务,就去创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。2.PROPAGATION_SUPPORTS支持当前事务,如果当前存在事务,就加入 该事务,如果当前不存在事务,就以非事务执行。3.PROPAGATION_MANDATORY支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。4.PROPAGATION_REQUIRES_NEW创建新事务,无论当前存不存在事务,都创建新事务5.PR

2022-01-15 21:30:19 177

原创 RabbitMQ概念及知识点

使用场景异步处理应用解耦流量控制(削峰)工作流程生产者连接RabbitMQ,建立TCP连接( Connection),开启信道(Channel)生产者声明一个Exchange(交换器),并设置相关属性,比如交换器类型、是否持久化等生产者声明一个队列井设置相关属性,比如是否排他、是否持久化、是否自动删除等生产者通过 bindingKey (绑定Key)将交换器和队列绑定( binding )起来生产者发送消息至RabbitMQ Broker,其中包含 routingKey (路..

2022-01-15 20:10:10 1173

原创 Feign远程/异步调用丢失请求头的问题

Feign远程调用丢失请求头的问题解决方法:加上一个feing远程调用的请求拦截器,在拦截器中给template加上一个客户端传过来的cookie,和客户端发送过来的请求的请求头进行同步。@Bean("requestInterceptor")public RequestInterceptor requestInterceptor() { return new RequestInterceptor() { @Override public void apply(

2022-01-15 20:05:01 606

原创 idea提交git失败

idea终端中执行以下内容,然后重启ideagit config --system --unset credential.helper

2022-01-12 20:05:22 429

原创 Elasticsearch查询快速入门

es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL)。由于DSL查询更为直观也更为简易,所以大都使用这种方式。DSL查询是POST过去一个json,由于post的请求是json格式的,所以存在很多灵活性,也有很多形式。这里有一个地方注意的是官方文档里面给的例子的json结构只是一部分,并不是可以直接黏贴复制进去使用的。一般要在外面加个query为key的机构。match最简单的一个match例子:查询和"我的宝马多少马力"这个查询语句匹配的

2022-01-11 18:36:41 132

原创 Elasticsearchc查询嵌入式属性

Elasticsearchc查询嵌入式属性,不能直接查询,要用"nested"进行查询GET product/_search{ "query": { "bool": { "filter": { "nested": { "path": "attrs", "query": { "bool": { "must": [ {

2022-01-10 21:56:10 243

原创 保证缓存和数据库数据一致性

1. 读写加锁适用于读多写少的场合2. 引入Canal感知到Mysql的更新去更新数据库3. 直接到数据库查询适用于读多写多的场合

2022-01-10 20:06:13 290

原创 SpringCache常用缓存注解

@Cacheable:触发将数据保存到缓存的操作@CacheEvict:触发将数据从缓存删除的操作@CachePut:不影响方法执行更新缓存@Caching:组合以上多个缓存操作@CacheConfig:在类级别共享缓存的相同配置

2022-01-10 18:37:12 116

原创 TCP握手挥手

三次握手当客户端向服务端发起连接的时候,会先发送一包连接请求数据,过去询问一下能否建立连接,这包数据我们称之为SYN包,如果服务端同意连接,则服务端向客户端回复SYM+ACK包,客户端收到后再发送一个ACK包,连接建立为什么三次握手而不是两次握手为了防止已失效的请求报文再传到服务端引起错误四次挥手处于数据连接状态的客户端和服务端都可以发起关闭连接请求,假设客户端主动发起关闭连接请求,它需要向服务端发送一个SYN包,表示要关闭连接,客户端自己则进入中止等待1状态,这是第一次挥手。服务端收到SYN包

2022-01-10 11:18:30 1012

原创 内存泄漏和内存溢出

内存泄漏是指程序在申请内存后,无法释放已申请的内存空间。内存溢出是指程序申请内存时,没有足够的内存供申请者使用;或者说提供一块存储int数据的存储空间,但存储了long数据,则结果是内存不够用,报错OOM。内存泄漏的堆积最终会导致内存溢出。...

2022-01-10 08:51:11 166

原创 Dao 接口和 XML 文件里的 SQL 是如何一一对应的?

MyBatis 会先解析这些 XML 文件,通过 XML 文件里面的命名空间 (namespace)跟 DAO 建立关系;然后 XML 中的每段 SQL 会有一个id 跟 DAO 中的接口进行关联。

2022-01-09 21:55:21 982

原创 缓存击穿,缓存雪崩,缓存穿透

缓存穿透指查询一个一定不存在的数据,由于缓存时不命中,将去查询数据库,但是数据库也没有这个记录,我们没有将这次查询的null写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。缓存穿透解决方法将从DB中查询出的null结果添加到缓存,并加入短暂过期时间缓存雪崩缓存雪崩是指在我们设置缓存时key采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到DB,DB瞬时压力过重雪崩。缓存雪崩解决方法原有的失效时间基数上增加一个随机值,比如1-5分钟随机,这样每一个缓

2022-01-08 15:27:59 455

原创 Elasticsearch

_update 更新时会检索原数据,如果数据和原数据一致,则不执行更新操作。如果是索引形式修改文档,则不管原数据是什么,都会进行更新操作。

2021-12-25 10:22:04 777

原创 docker创建elasticsearch和Kibana

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mydata/elasticsearch/data:/

2021-12-25 09:22:19 1426

原创 Springboot测试类@RunWith(SpringRunner.class)

在测试类上加注解@RunWith(SpringRunner.class)注解的意义在于Test测试类要使用注入的类,比如@Autowired注入的类,有了@RunWith(SpringRunner.class)这些类才能实例化到spring容器中,自动注入才能生效,

2021-11-29 14:28:40 1117

原创 Nginx和SpringCloud Ribbon的区别

Nginx是网络负载均衡,客户端所有请求都会交给nginx,然后由nginx实现转发请求。即负载均衡是由服务端实现的。Ribbon本地负载均衡,在调用微服务接口的时候,会在Eureka注册中心上获取注册信息服务列表之后缓存到JVM本地,从而在本地实现RPC远程调用。...

2021-11-29 09:50:57 1841

原创 解决跨域问题

解决跨域问题跨域:指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生非简单请求(PUT、DELETE)等,需要先发送预检请求。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LD3FM9Op-1635855033640)(C:\Users\Lyu\Desktop\屏幕截图 2021-11-02 191940.png)]解决跨域问题使用ngin

2021-11-02 20:10:47 147

原创 Docker安装以及命令

Docker1. Docker安装官方安装文档:https://docs.docker.com/engine/install/centos/卸载老版本sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine安装yum install -y yum-uti

2021-06-03 16:13:56 244

原创 JUC笔记整理(持续更新)

JUC1. 线程的创建和使用1.1 继承Thread类/** * 多线程的创建 方式一: * 1. 继承Thread类 * 2. 重写Thread类run()方法 ---> 将此线程执行的操作声明在run()方法中 * 3. 创建Thread子类的对象 * 4. 通过对象调用start()方法 * * 例子:遍历100以内的偶数 * */public class JavaTest01 extends Thread { @Override publi

2021-06-01 13:44:54 113

原创 foreach遍历集合

public static void main(String[] args) { List<String> list = Arrays.asList("a", "b", "c"); // 方法一: list.forEach(item -> {System.out.println(item);}); // 方法二: list.forEach(System.out :: println); }...

2021-05-28 15:54:07 2122

原创 Lambda表达式 -- java

使用Lambda表达式条件:接口内只有一个方法/** * 举例 */package javatest;interface Foo { public int sum(int x, int y);}public class LambdaTest { public static void main(String[] args) { Foo foo = (int x, int y) -> { System.out.println("******

2021-05-28 09:56:18 39

原创 Java重写方法的规则总结

重写不能破坏父类的访问性和逻辑结构性。重写方法不能比被重写方法限制有更严格的访问级别。参数列表必须与被重写方法的相同。返回类型必须与被重写方法的返回类型相同。重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。但是可以抛出更少,更有限或者不抛出异常。如果一个方法不能被继承,则不能重写它。如private方法...

2021-05-24 14:17:45 210

原创 MySql查询过程

MySQL 整个查询执行过程,总的来说分为 6 个步骤 :SQL执行步骤:请求、缓存、SQL解析、优化SQL查询、调用引擎执行,返回结果1、连接:客户端向 MySQL 服务器发送一条查询请求,与connectors交互:连接池认证相关处理。2、缓存:服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果,否则进入下一阶段3、解析:服务器进行SQL解析(词法语法)、预处理。4、优化:再由优化器生成对应的执行计划。5、执行:MySQL 根据执行计划,调用存储引擎的 API来执行查询。6

2021-05-21 10:00:25 444

原创 Mysql索引优化和锁机制

1. mysql的架构存储引擎对比项MyISAMInnoDB主外键不支持支持事务不支持支持行表锁表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作缓存只缓存索引,不缓存真实数据不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响。表空间小大关注点性能事务默认安装YYmysql逻辑架构分四层连接层:与其他语言的链接

2021-05-21 09:48:35 251

原创 MySql事务与隔离级别

MySql事务1. 事务的ACID属性(事务的特点)原子性事务是不可分割的,事务中的操作要么都发生,要么都不发生。一致性事在事务开始之前和事务结束以后,数据库的完整性没有被破坏。隔离性数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Seri

2021-05-20 14:00:12 161 2

原创 mysql中exists和in的区别

mysql中exists和in的区别:in是把外表和内表做hash连接,先查询内表,也就是先查询in括号里面的表;exists是对外表做loop循环,循环后拿外表的每一项对内表进行验证,看看外表的每一项在内表是否存在,也就是说,EXISTS()查询是将主查询的结果集放到子查询中做验证,根据验证结果是true或false来决定主查询数据结果是否得以保存;在外表大的时用in效率更快,内表大用exists更快。...

2021-05-19 09:23:58 298

原创 数据库支持emoji

一,改数据库编码以下两种方案任选一ps: 修改数据库配置可以一劳永逸,直接sql修改当机器重启时新加的设置会被还原1.修改数据库配置文件windows下的为my.ini(linux下的为my.cnf)windows下的my.ini路径:C:\ProgramData\MySQL\MySQL Server 5.6[client]default-character-set = utf8mb4[mysql]default-character-set = utf8mb4[mysqld]cha

2021-05-17 08:57:18 148

原创 占个坑位:Tomcat调优

有时间总结下Tomcat调优

2021-05-14 16:17:48 58

原创 基于git的gitee

Git命令行操作本地库初始化git init设置签名(用户名和邮箱地址)项目级别/仓库级别:仅在当前本地库范围内有效git config user.name lvhang_progit config user.email sdllyux@163.com系统用户级别:登陆当前操作系统的用户范围git config --global user.name lvhang_glbgit config --global user.email sdllyux@163.com级别优

2021-05-12 11:26:44 70

原创 SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder ” 解决办法

pom.xml加入slf4j的前置依赖包即可<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.7.2</version> </dependency>

2021-04-29 14:24:12 97

原创 zookeeper报错问题“KeeperErrorCode = ConnectionLoss”踩坑记录

客户端报错:org.apache.curator.CuratorConnectionLossException: KeeperErrorCode = ConnectionLoss查看服务端zookeeper日志发现:EndOfStreamException: Unable to read additional data from client, it probably closed the socket: address = /175.190.113.233:1688, session = 0x0

2021-04-28 22:34:29 14475

原创 多服务之间频繁调用导致系统接口超时的优化方法

加cache减少频繁调用增加熔断降级限流等措施,保证服务高可用,防止服务雪崩使用MQ进行削峰提升硬件配置以上方法都处理不了,建议辞职跑路

2021-04-27 10:09:34 806

转载 Tomcat执行shutdown时报错:java.net.ConnectException: Connection refused (Connection refused)解决办法

在Linux系统上部署tomcat时,部署完毕启动tomcat后用浏览器访问,发现没有反应,执行shutdown.sh命令时报如下错误:java.net.ConnectException: Connection refused (Connection refused)解决办法:找到$JAVA_HOME/jre/lib/security下的java.security文件(此为该文件jdk8的路径,其他版本jdk该文件路径略有差异),将securerandom.source=file:/dev/rand

2021-04-26 11:24:15 1672

原创 CentOS7中,将tomcat8配置为系统服务配置,可以使用systemctl直接启动

修改tomcat的catalina.sh文件, 在152行左右 添加如下内容:CATALINA_PID="$CATALINA_BASE/tomcat.pid"# Only set CATALINA_HOME if not already set[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`# Copy CATALINA_BASE from CATALINA_HOME if n

2021-04-25 16:53:51 385

原创 Nginx配置文件

nginx配置nginx配置文件共分为三块:全局块,events块,http块全局块:主要设置一些影响nginx服务器整体运行的配置指令events块:涉及的指令主要影响Nginx服务器 与用户的网络连接,常用的设置包括是否开启对多work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模式来处理连接请求,每个word process可以同时支持的最大连接数等http块:http全局块配置的指令包括文件引入,MIME-TYPE 定义、日志自定义、连接超时时间、单

2021-04-25 15:01:05 60

原创 Linux(CentOS 7.6)常用命令(持续更新)

whereis nginxps -ef | grep nginxrpm -ql nginxrpm -qa|grep nginxnetstat -tlunp 在CentOS主机上查看当前主机在监听哪些端口firewall-cmd --zone=public --add-port=15672/tcp --permanent 开放端口firewall-cmd --list -all 查看开放的端口...

2021-04-25 14:18:55 455

原创 阿里云轻量应用服务器(centos7.6)无法远程链接rabbitmq

开启管理控制台界面rabbitmq-plugins enable rabbitmq_management修改默认配置文件vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.18/ebin/rabbit.app修改内容如下:{loopback_users, [guest]},在服务器中开放rabbitmq相关端口firewall-cmd --zone=public --add-port=15672/tcp --permanentfirewall-cmd

2021-04-20 14:12:49 625

原创 Failed to configure a DataSource

Description:Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver class当微服务模块不需要数据库连接时,在主启动类中屏蔽数据源自动配置就好。@SpringBootApplication(exclude = DataSour

2021-04-15 19:20:19 116

空空如也

空空如也

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

TA关注的人

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