自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis知识点总结

1、redis为什么可以高效的进行存储和读取?redis的存储的数据结构也是通过 key 进行hash 然后找到对应的数组位置 链表到对应的key/value对象,如果发生hash碰撞 则直接链表到其后边,取值的时候 根据其key 进项hash 找到其对应下标后迭代链表中的key 相同就取出redis的key都是String类型的...

2021-12-28 16:38:39 474

原创 zookeeper知识点记录

zk接口写请求的流程1、接收请求2、生成日志 zxid自增3、日志持久化到磁盘4、修改dataTree数据 (内存数据)根据这个流程得出 zk集群在进行投票选举的时候 会先比较zxid 哪个节点的zxid越大 代表数据越新 更容易获得投票 晋升为leaderzk集群投票流程zk1 zk2 zk3 每个zk都有着自己的投票箱 投票会先投给自己1、zk1 启动 zk1 开始投票 目前只有一个节点 所有投票结果 [myid,投给谁(mid)id,zxid] ——> [1,1,100

2021-12-23 11:02:55 889

原创 spring bean的生命周期

1、spring bean创建生成的声明周期1、拿到对应的类2、调用对象的无参构造方法3、拿到通过构造生产的对象(普通对象)4、通过依赖注入 填充其属性5、初始化前(判断属性中是否包含@PostConstruct 如果有 则在初始化前执行其注解对应的方法)6、初始化(判断对象是否实现InitializingBean ,如果实现执行其重写后的方法)7、初始化后(aop 判断对象是否需要执行aop 如果需要则会生成代理对象 后边放入单例池中的对象也就是代理对象,如果不需要执行aop 则放入单例池的

2021-12-13 18:02:33 122

原创 newFixedThreadPool 线程池实例

1、公司系统中遇到一个excel导出由于数据量过大而比较慢的场景,所以决定进行多线程处理,提高代码的执行效率ExecutorService pool = Executors.newFixedThreadPool(6);经过对比 打算采用newFixedThreadPool初始化线程池,多线程执行完成后 依然要回到主线程中继续执行,所有还要有CountDownLatch 用来实现此场景 private void mobileData(List<Customer> list){ Exec

2021-09-29 14:14:31 833 1

原创 dubbo微服务框架

随着分布式项目的发展,dubbo微服务框架日益盛行。1、dubbo是什么? 能做什么?dubbo是阿里巴巴开源的基于java的高性能RPC分布式服务框架,现已成为apache基金会孵化项目。致力于提供高性能和透明化的RPC远程服务调用方案以及soa服务治理方案。核心内容包括三个部分:远程通信、集群容错、自动发现1、远程通讯:提供对多种基于长连接的NIO框架的抽象封装,包括多种线程模型,序列化,以及 请求响应模式的信息交换方式,透明化的远程方法调用,就像调用本地方法一样调用远程的方法。2、集群容错:

2021-07-26 17:24:06 359

原创 PageHelper原理分析

PageHelper 可以在不用写分页语句的情况下完成物理分页的效果。1、引入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3<.

2021-04-27 09:29:51 1622

原创 nginx使用记录

正向代理与反向代理的区别代理客户端的就为正向代理 代理服务器端的就称之为反向代理 举例手机连vpn 就为正向代理(安装在客户端) nginx反向代理(安装在服务端进行代理)nginx提供的负载均衡策略有两种: 内置策略 有(轮询、加权重轮询、IPhash) 外置策略nginx可以做动静态分离,静态资源 可以放在nginx中 提高访问效率。nginx 常用命令: ./nginx 启动nginx命令 ...

2021-04-26 14:49:22 70

原创 网络知识点小记

1、TCP和UDP 有什么区别? TCP为什么是三次握手,而不是两次?tcp 就像打电话,面向连接的,点对点进行通讯的,高可靠的,效率比较低,占用资源比较多。举几个例子:文件传输(准确高要求高、但是速度可以相对慢)、接受邮件、远程登录三次握手 好比 A: 你在吗 B:我在 A:我来了 然后 建立连接 四次挥手, A : 我要走了 B: 你要走了吗B:你真的要走了吗 A:我真的要走了UDP 好比发短信或者广播,不需要连接,发送方不管接收方有没有...

2021-04-19 17:38:06 1389 6

原创 volatile 数据一致性的机制

volatile 是在多线程情况下,可进行共享变量数据同步的关键字。多线程下的java内存模型主内存:服务器的内存cpu:执行程序处理器工作内存:当前线程独有的内存当多线程开始执行,共享变量已存在在主内存中,线程开始对变量进行读取,然后加载到对应的工作内存(相当于每个线程都把共享变量复制了一份到其对应的工作内存中),然后使用变量进行计算,将计算好的值重新赋值到工作内存中,将工作内存的数据存储到主内存中,将store的变量赋值给主内存的变量,这就完成了大致的原子性操作的内存模型的流程。.

2021-02-03 17:43:35 335 1

原创 RabbitMq消息中间件实战使用记录

Rabbit MQ作为主流的消息中间件,今天来上手使用一下。Rabbit MQ 常用模式 : 一对一直连 、一对多工作模式、发布订阅模式、路由模式、主题Topic模式springBoot 集成rabbitMq1、加入依赖 <!--rabbitmq--> <dependency> <groupId>org.springframework.boot</groupId> .

2021-01-23 15:53:05 281

原创 springboot集成AOP实现日志输出

开发接口系统中主要的一环就是日志输出,如果系统出现问题,日志能帮我们去定位问题,最常见的日志是调用方 所调用的IP 接口地址 对应方法 参数值 以及接口方接收到请求 所返回的参数。如果这需要在每一个controller层去写的话代码过于重复,于是就使用AOP定义切面 对其接口调用前后进行拦截日志输出。1、加入依赖 <dependency> <groupId>org.springframework.boot</groupId>

2021-01-19 11:40:59 651

原创 reds数据结构的使用场景

redis常见的数据结构String、hash、List、Set、zSetString为常见的数据结构,类似java中的map key valuehash 可运用到数据分段存储 降低大key带来的风险购物车场景: cart:{用户ID} F{商品ID} V{商品数量} 类似 cat:0001 10002:2添加商品 hset cart:1001 10023 1增加数量 hincrby cart:100110023 1商品种类...

2021-01-15 15:48:20 243

原创 redis实现分布式锁

分布式架构中 经常遇到多线程共享数据的场景,这就会出现正常的代码逻辑下不能保证数据一致性的问题,分布式锁 应运而生。常见的分布式锁redis zk去实现1、redis中setnx 指定常用于分布式锁 setnx 完整翻译是 (set if not exist) 意思就是如果不存在就set 否则 就不做处理setnx 成功就返回1 失败就返回0加锁代码Boolean res = stringRedisTemplate.opsForValue().setIfAbsent("lock","1.

2021-01-15 14:19:14 352

原创 springboot的注解@SpringBootApplication

@SpringBootApplication 是一个组合注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExclud

2020-12-31 08:29:21 107

原创 java中的代理

在java开发中常用到代理的场景,通俗解释 代理是指 帮助目标对象 去完成目标对象所要完成的事情。比如说 点外卖 目标对象是 顾客 顾客需要点一份米饭从餐馆 外卖小哥 就充当代理对象 帮助顾客取餐 送餐静态代理可通过继承或者实现接口完成代理目标类public class Customer { public String clickOrder(String food){ return "顾客下单"+food+"成功"; }}代理类public .

2020-12-19 17:34:15 113 1

原创 SpringBoot 如何实现异步执行

现有这样一个场景,客户端发起请求,服务端接收到请求,并作出反馈,并且在反馈的同时需要做下日志记录正常情况下 在这个逻辑中 发起请求 接收请求 处理业务 记录日志 返回结果,从中得知 记录日志 不属于业务范围内 ,可将其做异步操作,这样在处理完业务直接返回结果 无需等待日志操作完成后再返回结果。1、定义异步操作的beanimport org.springframework.scheduling.annotation.Async;import org.springframework.ster

2020-12-18 16:08:49 839 1

原创 通俗理解HashMap

原理:hashMap是以key-value键值对的形式存在着的,大致逻辑为进行put时,根据key值,进行hashing,生成hashcode,对应到bucket的位置然后在当前位置进行key-value存储。存储过程中 发生hash碰撞会怎么处理?hash碰撞指的就是可能不同的key值 进行hashing所生成的hashcode是相同的,也就意味着 bucket的位置也会相同,这个时候hashmap中的key-value对象会以链表的数据结构存储。链表的长度过长 每次取值都要挨个用key值 进

2020-12-09 10:43:48 150

原创 jwt用户登录 实现用户同时在线数量限制

通常系统都会限制同一个账号的登录人数,多人登录要么限制后者登录,要么踢出前者,今天讲的是踢出前者。JWT(token)存储在Redis中,类似 JSessionId-Session的关系,用户登录后每次请求在Header中携带jwt比较时间戳维护一个 username: jwtToken 这样的一个 key-value 在Reids中拦截器逻辑package com.gitee.taven.filter;import com.gitee.taven.utils.JWTUt.

2020-12-08 11:47:08 4112 1

原创 shardingsphere 自定义分片策略

自定义分片策略,本实例按照用户的ID自定义分片进行存储

2020-12-07 17:14:57 4613 4

原创 idea使用mybatis generatorConfig 生成逆向工程

增加maven插件部分 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version>

2020-12-04 17:06:44 227

原创 shardingsphere 水平分库 水平分表

接上篇 读写分离的代码 基础上 配置文件做了改动1、根据用户id 生成 去做水平分库 id取模为奇数 在0库 偶数为1库2、根据性别进行分表 值为0 进0表 为1 就进1表server.port=8080#mysql#spring.datasource.url=jdbc:mysql://localhost:3306/user_db?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8spring....

2020-11-11 14:45:47 268

原创 shardingsphere 实现读写分离

1、添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId&gt

2020-11-11 14:16:06 452

原创 每天一个知识点

1、mysql上千万数据查询增加索引提高查询效率的底层原理?索引是有序的 索引的数据结构:二叉树、红黑树、hash表、B-treehttps://www.cs.usfca.edu/~galles/visualization/Algorithms.html假如索引的数据结构为 二叉树(由跟节点开始左边小 右边大) 查询数据的时候先去查找索引,由于二叉树的数据结构 很快能定位到索引,所用和对应表数据的位置是key value形式的 根据key 找到对应数据的位置 避免了全表扫描 提高查询效率...

2020-09-02 18:16:50 292

原创 mysql5.7 Master Slave主从 同步

1、复制两个数据库2、修改my.ini文件#代码开始[Client]#设置3306端口port = 3307[mysqld]#设置3306端口port = 3307# 设置mysql的安装目录basedir=D:\mysql-5.7.26-winx64\mysql-5.7.26-sl# 设置mysql数据库的数据的存放目录datadir=D:\mysql-5.7.26-winx64\mysql-5.7.26-sl\data# 允许最大连接数3、安装从库为windo

2020-05-25 15:01:27 200

原创 linux搭建zookeeper集群环境日常记录

1、安装JDKtar -zxvf 解压 压缩包# vi /etc/profile 配置环境变量2、安装zookeeper本次采用一主二从配置 zoo1.cfg# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks

2020-05-13 15:04:03 126

原创 多线程售票小例子

package com.example.bootdocker.service;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class LockDemo implements Runnable{ private int tickNum...

2020-04-27 17:18:12 132

原创 JVM个人学习笔记

JVM 三大系统1、类加载子系统硬盘上编译完成的class文件 需要类加载子系统 加载到 内存中2、执行引擎执行引擎通过内存中的数据 返回结果3、JVM运行时数据区(栈和堆组成) 堆 线程共享区域 栈 线程私有区域堆 : 新生代 老年代新生代: Eden 伊甸园 绝大多数对象默认会存储在 新生代伊甸园区域eden 伊甸园区 对象满的时候 会去触发 minorGc ...

2020-04-24 12:07:09 186

原创 springboot热部署和发布外部tomcat

pom文件增加工具依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optio...

2020-04-17 10:38:44 214

原创 docker 启动 rabbitMQ

1.拉取镜像docker pull rabbitmq:management拉取带控制台的镜像版本2、启动镜像docker run -d -p 8080:15672 rabbitmq:management启动端口可自定义设置 本次设置为8080 映射rabbitmq启动端口 默认启动端口为156723、进入控制台 启动成功...

2020-04-01 09:00:36 284

原创 docker常用 口令 日常记录

1.centos 安装dockeryum updateyum install dockerdocker version 查看docker版本号systemctl start docker 启动dockersystemctl stop docker 关闭dockerdocker images 查看本地镜像docker pull 拉取镜像docker exec -it...

2019-12-02 13:54:48 165

原创 centos 安装redis出现的问题

1、下载redis2、解压并切换到redis目录makemake install3、此时/usr/local/bin 路径下会出现redis服务启动文件从redis源路径 cpredis.conf /usr/local/bin/redis-6379.conf4、vim redis-6379.confbind 127.0.0.1 改为 0.0.0.0protec...

2019-11-27 11:49:17 167

转载 idea打包没有将mybatis映射文件一起打包的问题

使用IDEA,导入Maven项目,启动项目时候,一直报Invalid bound statement异常,项目在eclipse中启动是没有问题的。懵逼好一会,总归是见识少,留个笔记记录下。IDEA默认只把src/main/resource下的资源文件打包到classes目录下,源代码目录中的的xml文件并不会同编译后的文件一起打包,所以如果你打开部署项目的路径,是找不到xml文件的。处理办...

2019-09-07 12:00:23 344

转载 搞定Maven

前言在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖冲突就会让你不知所措,甚至搞不清楚项目是如何运行起来的,专题的目的就是:彻底搞定Maven!Thinking in MavenMaven的使用...

2019-07-30 08:55:39 74

原创 springboot 集成redis日常记录

1、增加maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- 添加jedis...

2019-07-24 14:01:49 138

转载 简单理解token机制

什么是tokentoken的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定...

2019-07-19 11:31:58 146

转载 merge和rebase区别

merge和rebase都是用来合并分支的。什么是分支分支就是便于多人在同一项目中的协作开发。比方说:每个人开发不同的功能,在各自的分支开发过程中互不影响,完成后都提交到develop分支。极大的提高了开发的效率。合并分支每个人创建一个分支进行开发,当开发完成,需要合并到develop分支的时候,就需要用到合并的命令。什么是冲突合并的时候,有可能会产生冲突。冲突的产生是...

2019-07-12 16:21:09 7618 1

转载 git 使用方法记录

Git近年来受到欢迎。版本代码控制系统被Linux等巨大的开源项目所使用,成千上万的贡献者,各种规模的团队,独立开发者,甚至是学生。初学者常常被git所要求的所有神秘的命令和参数所吓倒。面试经常也会问到git 命令。你可以开始掌握一些最常用的,然后从在慢慢进一步学习。基础Git是一个命令行实用程序的集合,它会跟踪和记录文件中的更改(通常是源代码,但是可以跟踪任何你想要的文件...

2019-07-12 09:13:49 179

转载 大型网站如何防止崩溃,解决高并发带来的问题

大型网站,比如门户网站,在面对大量用户访问、高并发请求方面带来的问题1大并发:在同一个时间点,有大量的客户来访问我们的网站,如果访问量过大,就可能造成网站瘫痪。2大流量:当网站大后,有大量的图片,视频, 这样就会对流量要求高,需要更多更大的带宽。3大存储:你的数据量会成海量的数据,如果我们的数据放入一张表,是无法应对的。可能对数据保存和查询出现问题。基本的解决方案集中在这样几个...

2019-07-09 09:17:32 3186

原创 Spring quartz 集群模式下trigger_state error问题原因

问题描述在项目中采用了Spring quartz调度任务来执行定时任务,quartz本身是支持集群化方式的,可以配置一个数据源,quartz会在数据库中创建一系列的表,使用这些表来存储调度的信息,集群中所有的节点都访问这一个数据库,这样可以实现集群环境下的定时任务调度。但是在最近生产环境出现了这样的问题,新增的一个定时调度任务,当服务启动后,执行两次以后,该任务就不再执行了,但是其他原有的定时...

2019-07-08 15:22:05 747

转载 idea中不支持${pageContext.request.contextPath}的解决办法

1、在pom中添加jsp-api依赖如果使用的是eclipse 该依赖关联了tomcat会自动将此依赖jar引入进来 idea则不会<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <vers...

2019-07-08 15:17:57 2068 1

elasticsearch-2.4.4

elasticsearch-2.4.4 官网下载 速度太慢 就上传一份 相当于备份使用 包含head插件

2019-04-24

redis桌面工具

redis桌面工具压缩包 可视化redis 界面 解压后即可使用

2018-11-01

java常见面试题和答案总结

java常见面试题和答案总结 内容齐全 各个大型公司经典面试案例

2015-04-13

spring Mvc实例

spring Mvc实例 详细 简单易上手

2015-04-13

java生成二维码史上最全案例

java生成二维码史上最全案例,带有详细介绍说明

2013-11-21

免安装tomcat配置方法

免安装tomcat较为详细的配置方法,利用图片文字说明

2013-11-19

空空如也

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

TA关注的人

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