自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring中单例bean注入多例bean的解决方法

1、问题描述在项目代码的使用过程,单例对象A中需要注入对象B。B对象要求是多例的。我们在对象B上添加注解“@Scope(“prototype”)”,代码运行过程中,发现A中注入的B对象始终是同一个,并没有实现多例的效果。下面展示一些 内联代码片。@Componmentpublic class A {@Autowiredprivate B b}下面展示一些 内联代码片。@Componment@Scope("prototype")public class B { ....}2、

2021-08-24 21:23:33 2301 2

原创 十、JVM调优实战——ES集群服务不稳定

1、问题背景线上环境有3台8G内存的服务器搭建的ES集群系统。ES采用CMS垃圾回收器。2、问题现象(1)ES查询服务偶尔会出现超时现象,日志中有“node of configured nodes were available”;(2)一段时间后,ES部分节点会挂掉,整个ES集群的状态由绿色变成黄色;(3)重启后,ES恢复正常,运行一段时间后会出现(2)的现象。3、问题分析(1)ES集群提供的查询服务,非常消耗内存,所以首先想到的就是8G内存无法支撑我们系统千万级别的数据查询。(2)登陆系统

2021-08-03 14:16:09 1035

原创 Redis缓存淘汰策略总结

这里写自定义目录标题Redis缓存淘汰策略Redis缓存淘汰策略LRU:(1)设置了过期时间的数据中,最近一段时间使用次数最少的;(2)所用的数据中,最近一段时间使用最少的;LFU:(3)设置了过期时间的数据中,最近一段时间使用频率最低的;(4)所有的数据中,最近一段时间使用频率最低的;TTL : (5)设置了过期时间的数据中,马上就就要过期的数据;Random (6)所有的数据中,随机淘汰;(7)设置了过期时间的数据中,随机淘汰no。 (8)不进行淘汰,内存不够,直接报错。..

2021-08-02 21:50:42 364

原创 mysql 0和1上不要建立索引

对于这种简单数据的列,创建索引反而比没有创建索引时查询还要慢。因为通过索引读取数据行是随机磁盘读取,相对于不使用全表扫描的连续磁盘读取,要慢很多。虽说加了索引之后读取的数据块少了,但是对于只有0和1这样区分度极差的索引,花费在随机磁盘读取上的大量开销会抵消这部分好处,何况索引会对增删改的性能造成影响,因此,不建议为该列单独添加索引。...

2021-06-17 08:51:00 598

原创 Mysql 中null与空值‘‘的区别

1、空值时不占用空间的;2、null其实是占用空间的;打个比方来说,你有一个杯子,空值代表杯子是真空的,NULL代表杯子中装满了空气,虽然杯子看起来都是空的,但是区别是很大的。NULL 其实并不是空值,而是要占用空间,所以mysql在进行比较的时候,NULL 会参与字段比较,所以对效率有一部分影响。...

2021-06-17 08:47:52 593

原创 ngnix问题—NET::ERR_INCOMPLETE_CHUNKED_ENCODING

一、问题现象NET::ERR_INCOMPLETE_CHUNKED_ENCODING二、解决问题思路百度一下,然后参考下面的文章。NET::ERR_INCOMPLETE_CHUNKED_ENCODING猜测可能是如下原因:nginx的临时目录(/proxy_temp)过大或没有权限写入缓存文件。问题定位磁盘满了,导致nginx的临时目录无法继续写入内容。解决方法删除一些占用空间的备份文件。备注df -h。查看linux各个磁盘的使用情况;df -sh file。 查看某个文件的

2021-06-02 10:36:27 491

原创 java并发编程实战读书笔记

1、day01无状态对象一定是线程安全的;竞态条件:在并发编程中,这种由于不恰当的执行时序而出现不正确的结果是一种非常重要的情况。先检查后执行读取-修改-写入不可变对象,只能提供一种弱形式的原子性;当有多个线程访问一个变量时,可以把变量设置为final,更新时,创建新的变量存储。任何线程都可以在不需要额外同步的情况下安全地访问不可变对象,即使这些对象没有使用同步。不可变对象:状态不可修改,所有域都是final,正确的构造过程。//将可变对象Date转换为不可变对象Coll

2021-05-29 12:00:21 281

原创 sql语句中on和where的区别

on:不会过滤数据;where:可以过滤数据;在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉...

2021-05-25 09:07:17 669

原创 项目引入中es7.4,并排出其他jar包引入的低版本es的jar包

1、common工程中引入高版本的jar包,并排出部分jar包。使用exclusion配置 <!--导入了elasticsearch --> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId>

2021-05-20 09:24:14 535

原创 mybatis支持一次执行多条sql语句配置

mysql 默认是不支持,多条SQL同时执行的,但是可以在连接配置中添加一个配置,便可以支持,“allowMultiQueries=true”。

2021-04-30 11:27:51 984

原创 jmx远程监控配置

jmx远程监控在setenv.sh中加入如下配置:CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=10.171.113.244 -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.rmi.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote

2021-04-20 16:11:19 744

原创 ngnix下载大文件超时问题解决

问题描述使用ngnix代理web应用,通过页面下载大文件时,会产生超时报错。ngnix配置详解proxy_buffering:缓存控制开关;如果禁止缓冲,那么当Nginx一收到后端的反馈就同时传给客户端,nginx 不会从被代理的服务器读取整个反馈信息。这个参数用来控制是否打开后端响应内容的缓冲区,如果这个设置为off,那么proxy_buffers和proxy_busy_buffers_size这两个指令将会失效。 但是无论proxy_buffering是否开启,对proxy_buffer_si

2021-04-06 14:42:10 5720

原创 MyBatis获取插入记录的自增长字段值

第一步在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名!<insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> insert into spares(spares_id,spares_name, spares_ty

2021-04-02 18:43:04 296

原创 spring-mybatis.xml 里mapperLocations 配置多路径

<property name="mapperLocations"> <array> <value>classpath*:mapper-offline/*Mapper.xml</value> <value>classpath*:mapper-offline/bussiness-offline/*Mapper.xml</value> </array></property..

2021-04-02 17:54:52 1565

原创 Integer类型在mapper.xml中正确判断

1、问题Integer类型传值为0时,在Mapper.xml中被 条件过滤2、正确写法Integer类型只做“null”的判断,不做空的判断<if test="status !=null> and status = #{status,jdbcType=INTEGER} </if>

2021-04-02 16:53:23 1445

原创 Mysql Date和DateTime类型查询总结

1、在MySQL字段中有Date和DateTime类型,但是java中没有DateTime类型。解决办法:(1)在mybatis插入数据时只要将实体的属性设置成Timestamp就会对应mysql的DateTime类型,<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>sql查询语句编写:<update id="updateTaskByTime"> update

2021-04-02 16:42:39 916

原创 Maven package install deploy的区别

mvn compile命令会在根目录生成target文件mvn clean可将根目录下生成的target文件移除package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库deploy命令完成了项目编译、单元测试、打包功能,同时把打好

2021-04-02 16:13:31 243

原创 easyexcel和阿里oss服务器结合使用

一、easyexcel使用方法EasyExcelEasyExcel——demo

2021-03-22 22:04:19 1073

原创 mybatis—xml文件写法总结

1、mybatis 动态update语句<update id="updateTaskState" parameterType="dto.ImAndExportTaskDTO"> update import_export_task <trim prefix="set" suffixOverrides=","> <if test="taskState !=null and taskState !=''">

2021-03-22 18:42:11 920

原创 Dubbo07——Dubbo服务调用源码解析

请求——服务key——exporterMap.get(key)——exporter——invoker服务端 客户端ExchangeServer ExchangeClient 数据交换层Nettyserver NettyClient 数据传输层

2021-03-16 15:07:41 198

原创 Dubbo06——服务引入

@ReferenceReferencebean:1、生成一个代理对象,赋值给属性执行代理对象的a方法:生成一个invocation对象(1)获取服务提供者列表;mock——mockclusterInvoker.invoke(invocation),路由,负载均衡,集群容错——failoverclusterInvoker.invoke(invocation)(2)构造nettyclient(3)发送数据invocation一个DubboInvoker表示一个具体的服务提供者;从注册中心

2021-03-11 14:51:40 171

原创 Spring配置问题导入bean被初始化两次

关键的配置如上图1、问题就出在ContextLoaderListener和DispatcherServlet,他们都可以引入spring,而且每个引入都会实例化一次bean。如果把两个引入方式配置到同一个文件,那么就会导致一个bean被实例化两次。但是,当我们使用Spring Bean的时候,只会用到DispatcherServlet下的Bean,而不会用到ContextLoaderListener下的Bean,这就会导致ContextLoaderListener的bean不会被用到。使用Cont...

2021-03-10 21:49:07 1488

原创 Dubbo05——服务导出源码解析

入口:ServiceBean.export()(1)读取配置——ServiceBean注解上的一些值,优先级最高(2)服务注册——服务相关信息——注册中心(3)启动netty/tomcat(4)监听动态配置优先级:配置中心————>applicationconfigserviceBean:(1)applicationconfig(2)registriesURL:表示一种资源;有利于扩展;资源:注册中心 zookeeper;服务:demo: dubbo://ip+port/…协

2021-02-23 15:14:03 175

原创 Dubbo04——Spring与Dubbo整合原理与源码分析

一、Dubbo中properties文件的解析二、Dubbo中的@Service注解三、Dubbo中的@Reference注解

2021-02-20 14:36:30 230

原创 Dubbo03——Dubbo的可扩展机制SPI源码解析

java的SPI机制理解举例mybaits支持多种数据库,比如oracle的jar包和mysql的jar包。直接用jar里面的方法调用数据库。mybatis如何正确的找到需要调用的jar包。java.sql.drive.读取classpath目录下的java.sql.dirve文件,获取调用的实现类的方法。**缺点:**会实例化文件中的所有的类。Dubbo的SPI机制在java的基础上进行了扩展。...

2021-02-19 14:17:48 207

原创 Dubbo学习笔记02——Dubbo的基本应用与高级应用

服务提供者1、先写一个接口;2、一个或者多个实现类,添加dubbo的@service注解;区分不同的服务:versiongroupp@Reference 可以指定version和group,可以找到代理对象,放入spring容器中;负载均衡策略随机轮询最少活跃调用数:由服务消费者记录调用次数,如果调用次数相同,则随机调用一致性hash:根据参数算出hash,并映射到服务上;服务超时1、消费者发送请求2、服务端执行业务;3、服务端返回结果当服务端和消费端都配置了超时时间,消费端

2021-02-17 19:21:05 240

原创 Dubbo学习笔记01——框架介绍

Dubbo简介高性能、轻量级的开源java服务框架。RPC框架:是一种通信协议面向对象编程,远程方法调用,进程A调用进程B的方法。实现远程调用的方法:httpclient,rest template远程调用需要传送的数据信息:1、方法名;2、方法参数类型和列表;3、入参4、类名可选参数:5、versionDubbo:1、数据格式2、传输方式 netty传输时还需要进行序列化。服务提供者:本地注册,提供服务的具体的实现类。map形式,key是接口,value是实现类。.

2021-02-16 15:11:16 211

原创 zookeeper01——典型使用场景

1、zookeeper非公平锁,公平锁和共享锁非公平锁:在竞争激烈的情况下,效率比较低;惊群效应-羊群效应解决方法:基于临时顺序节点,(1)请求进来,按照依次创建临时顺序节点;(2)判断自己是不是lock节点下面的最小的节点;如果是最小的,则获取到锁,否则监听前面的节点;(3)获得锁的请求,处理完释放锁,即delete节点,然后后继第一个节点将收到通知,重复步骤2;2、leader选举在分布式场景中的应用3、...

2020-12-19 09:47:58 195 2

原创 Mybatis|SessionFactory机制原理

Mybatis|SessionFactory机制原理

2020-12-07 11:04:08 297

原创 Echart 动态生成series数据

Echart 动态生成series数据

2020-12-07 10:59:29 1760

原创 不可不说的Java“锁”事

不可不说的Java“锁”事

2020-12-05 11:51:02 278

原创 zookeeper01——zookeeper核心特性与节点

zookeeper核心特性与节点是一个分布式协调框架,提供统一命名服务,状态同步服务,集群管理,分布式应用配置项的管理等;本质上是一个存储少量数据的基于内存的数据库。两个核心:文件系统数据结构和监听通知机制。文件系统数据结构每个子目录都被称为znode;1、持久化目录节点;2、持久化顺序目录节点;3、临时目录节点;4、临时顺序目录节点;持久化节点:客户端与zookeeper断开后,节点依然存在;临时节点:客户端与zookeeper断开后,节点被删除;顺序节点:zookeeper会对节点进

2020-12-04 08:23:30 295

原创 Redis学习笔记03——Redis缓存设计与性能优化

1、缓存穿透查询一个根本不存在的数据,缓存和数据库都不会命中,通常出于容错考虑,如果从数据库查不到数据则不写入缓存。缓存穿透将导致不存在的数据的每次请求都到数据库中去查询,失去了缓存保护后端的意义。解决方法:(1)缓存空对象数据库查询出来为空,也把空对象缓存到redis中,并且设置过期时间。(2)布隆过滤器2、缓存击穿(失效)由于大批量的缓存在同一时间失效,导致大量的请求同时击穿缓存到达数据库,把数据库打挂掉了。解决方法:(1)将一批数据的缓存过期时间设置为一个时间段内的不同时间。3、

2020-12-01 11:09:34 347 1

原创 leetcode78:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)

78:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]package com.Leetcode.数组;import java.util.ArrayList;import java.util.List;/**@author@date 2020/11/13给定一组不含重复元素的整

2020-11-27 19:50:13 853

原创 leetcode268:找没出现的数

::268:给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。进阶:你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,

2020-11-27 19:49:28 371

原创 一个数组中找两个数的和

1:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。import java.util.HashMap;import java.util.Map;class Solution {public int[] twoSum(int[] nums, int target) {int[] indexs = new int[2]; // 建立k-v ,一一

2020-11-27 19:48:40 1274

原创 排序算法——归并排序

package com.Leetcode.排序;import java.util.Arrays;/** * @author * @date 2020/11/21 */public class MergeSort { public static void main(String[] args) { int[] a = new int[]{7,8,8,6,5,59,4,3,2,1,0}; apartSort(a,0,a.length); S

2020-11-21 19:58:34 277

原创 插入排序优化——希尔排序

希尔排序算法复杂度:O(n2)不稳定的算法package com.Leetcode.排序;import java.util.Arrays;/** * @author * @date 2020/11/21 */public class ShellSort { public static void main(String[] args) { int[] a = new int[]{7,8,8,6,5,59,4,3,2,1,0}; shellSort(

2020-11-21 18:55:43 250

原创 插入排序

package com.Leetcode.排序;import java.util.Arrays;/** * @author * @date 2020/11/19 * 插入排序 */public class InsertSort { public static void main(String[] args) { int[] a = new int[]{5,4,3,5,4,5}; for (int i = 1; i < a.length; i++)

2020-11-21 18:53:59 197

原创 Redis学习笔记02——Redis持久化、主从架构,哨兵系统

一、RDB快照redis将内存数据库快照保存在dump.rdb的二进制文件中。相关配置:save 900 1save 300 10#60秒内超过10000条命令就触发rdb操作save 60 10000rdb文件存放的目录dir ./手工通过执行save和bgsave命令,生成rdb文件。save命令是同步的,会阻塞其他redis 命令,但是它不会消耗额外内存;bgsave借助操作系统的写时复制功能,。bgsave子进程是主进程fork生成的,在持久化操作的时候,如果有其他命令对red

2020-11-10 19:52:44 317 1

空空如也

空空如也

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

TA关注的人

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