自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 vue3使用 vue3-print-nb打印坑

2023-05-27 10:10:31 1081

原创 JMM内存模型

JMM内存模型规定了一个线程如何以及何时可以看到其他线程修改过后的共享变量的值,以及如何同步地访问获取共享变量值。围绕原子性、有序性、可见性三大特性展开。

2023-03-19 23:08:32 1072

原创 Springboot整合Prometheus-自定义指标

prometheus整合自定义指标

2022-09-14 16:52:46 4058

原创 Springboot整合Prometheus-自动配置指标

springboot整合prometheus-自动配置

2022-09-08 19:03:54 2301

原创 sentinel源码分析-资源

sentinel中的资源详解

2022-08-20 19:31:34 590

原创 sentinel-dashboard二次开发

sentinel-dashboard1.8.5二次开发,规则持久化至nacos。

2022-08-19 14:59:50 836 2

原创 动态代理底层实现

动态代理区别

2022-05-09 09:33:35 344

原创 Redis的高性能

1、Redis为何高性能?- 基于内存存储数据- 高效的IO模型- 高效的数据结构2、Redis真的只是单线程吗?Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。3、Redis为什么要用单线程?采用多线程缺点多线程开发复杂度高,可维护性差共享资源的并发访问控制问题采用多线程优点有效利用cpu

2021-10-09 14:23:45 593

原创 使用docker+mysql+canal+kafka获取数据库增量数据用于建立数据仓库

软件版本CentOS Linux release 7.6.1810 (Core) Docker version 20.10.3canal-admin v1.1.5canal-server v1.1.5mysql 5.7mysql 8wurstmeister/kafka 2.13-2.7.0zookeeper 3.6.3docker常用命令docker官网安装地址下载镜像(可在dockerHub查找镜像:dockerHub官网地址) docker pull mysql删除

2021-07-03 00:35:16 805 5

原创 jsch源码解析

解析背景因为项目使用ssh秘钥连接时候异常报错,所以有去查看源码。报错信息:com.jcraft.jsch.JSchException: invalid privatekey: [B@53a7a60c项目需用使用ssh连接的可以参考: Java SSH 秘钥连接mysql数据库.这里使用的jsch版本是<dependency> <groupId>com.jcraft</groupId> <artifact

2021-06-28 16:23:26 1433 1

原创 Java SSH 秘钥连接mysql数据库

当目标数据库不能直连的,需要一个服务器作为中间跳板的时候,我们需要通过SSH通道连接数据库。ps:使用ssh连接,相当于本地开了个端口去连接远程的服务,就是ssh通道,本地起的项目监听本地的端口,就可以使用这个通道进行数据传输。1、引入依赖1<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId>

2021-06-28 14:13:52 934

原创 Redis集群概念(切片)

为何要切片集群?无论是主从集群还是哨兵集群(基于主从集群),每个实例都保存着所有的数据。对于fork子进程做数据持久化时,会拷贝整个实例的数据,数据量大时候,就会出现Redis的卡顿。而切片集群就解决了这个问题。按照一定规则,把收到的数据划分成多分,每一份用一个实例来保存,就能减少fork子进程时产生的阻塞时间。数据切片和实例的对应关系?在Redis3.0之前,官方并没有针对切片集群提供具体的方案。从3.0开始,官方提供了一个名为Redis Cluster的方案,用于实现切片集群。Redis C

2021-04-19 16:39:14 509

原创 Redis集群概念(主从、哨兵)

Redis高可靠性数据尽量少丢失。AOF和RDB保证。 服务尽量少中断。增加副本冗余量。

2020-10-30 15:11:51 233

原创 Redis的RDB快照

AOF(Append On File)方法,每次执行只需要记录操作命令,每次需要持久化的数据量不大。只要采用的不是always的持久化策略,就不会对性能造成太大影响。也正因为记录的是操作命令,而不是实际的数据,所以,用AOF方法进行故障恢复时,需要逐一把命令都执行一遍。如果操作日志非常多,Redis就会恢复得很缓慢,影响正常使用。而RDB(Redis DataBase)日志文件记录的是内存快照,就是指内存中的数据在某一时刻的状态记录。RDB文件如何生成?...

2020-09-29 16:28:14 343

原创 Redis的AOF日志

Redis的AOF日志

2020-09-25 15:54:03 1115 4

原创 Redis的概括

Redis为什么快?1、内存数据库2、高效的数据结构Redis的数据结构有哪些?Redis中值的数据类型:String(字符串)、List(列表)、Hash(哈希)、Set(集合)、SortSet(有序集合)Redis中值的底层数据结构:简单动态字符串、双向链表、压缩列表、哈希表、跳表、整数数组Redis中本身的键和值之间用什么结构组织?为了实现从键到值的快速访问,Redis使用了一个哈希表来保存所有键值对。一个哈希表就是一个数组,数组的每个元素称为一个哈希桶。哈希桶中的

2020-09-24 15:22:12 131

原创 MySQL索引失效与优化

索引失效:1、索引字段上使用( != 、<>、is null、is not null )判断时,索引会失效,而转向全表扫描。2、索引字段上使用通配符(%)开头,索引会失效,而转向全表扫描。3、索引字段是字符串,但查询时不加单引号,索引会失效,而转向全表扫描。4、索引字段使用or时,索引会失效,而转向全表扫描。查询优化:1、复合索引尽量全匹配。2、最佳左前缀法则(带头索引不能死,中间索引不能断)。3、不在索引上做任何操作。4、不能继续使用索引中范围条件右边的列.

2020-09-15 00:09:47 165

原创 MySQL执行计划

使用explain查询sql的执行计划sql的执行计划反映出了sql的执行效率,在执行的sql前面加上explain即可。id数字越大越先执行,如果数字一样大,那么就从上往下依次执行,id列为null就标识这是一个结果集,不需要使用它来进行查询。typesimple:表示不需要union操作或者不包含子查询的简单select查询,有连接查询时,外层的查询在simple,且只有一个。primary:一个需要union操作或者含有子查询的select,位于最外层的查询,type即为pri

2020-09-14 23:07:19 143

原创 java8的stream中的toMap

我们将对这个List使用java8的strea中的toMap转换成Map对象。toMap有个三个重载的方法,toConcurrentMap同理:两个参数public static <T, K, U> Collector<T, ?, Map<K,U>> toMap(Function<? super T, ? extends K> keyMapper, Functio..

2020-09-10 18:13:29 10169

原创 设计模式使用场景以及优缺点(三)

Code模板方法模式(行为型)定义:定义了一个算法的骨架,并允许子类为一个或多个步骤提现实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。适用场景:1、一次性实现一个算法的不变的部分,并将可变的行为留给子类实现2、各子类中公共的行为被提取出来并集中到一个公共父类中,从而避免代码重复优点:1、提高复用性2、提高扩展性3、符合开闭原则缺点:1、类数目增加2、增加了系统实现的复杂度3、继承关系自身的缺点,如果父类添加新的抽象方法,所有子

2020-09-03 23:37:36 410

原创 设计模式使用场景以及优缺点(二)

Code适配器模式定义:将一个类的接口转换成客户期望的另一个接口。使原本接口不兼容的类可以一起工作。使用场景:1、已经存在类,它的方法和需求不匹配时(方法结果相同或者相似)2、不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案。优点:1、能提高类的透明性和复用性,先有的类复用但不需要改变。2、目标类和适配器类解耦,提高程序扩展性。3、符合开闭原则。缺点:1、适配器编写过程需要全面考虑,可能会增加系统的复杂

2020-09-03 21:42:42 676

原创 设计模式使用场景以及优缺点(一)

简单工厂(创建型)ps:不属于23种设计模式中定义:由一个工厂对象决定创建出哪一种产品类的实例。适用场景:1、工厂类负责创建的对象比较少。2、客户端只知道传入工厂类的参数,对于如何创建对象不关心。优点:只需要传入一个正确的参数,就可以获取所需要的的对象,而无需知道其创建细节。缺点:工厂类职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则。工厂方法模式(创建型)定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子.

2020-08-20 18:14:57 812

原创 阿里云linux搭建redis集群

前言docker部署的redis集群是通过网桥的相互连接的,只有在同一网络下,才能访问到。像本地起的服务,连接远程docker搭建的redis集群是连接报错的,所以现在使用安装包搭建redis集群。1、环境确认a、使用下面的命令可查看当前linux版本cat /etc/redhat-release这是我当前的版本b、安装依赖,如果报镜像超时或者镜像连接失败,可看我另一篇文章sudo指使用root账户执行命令sudo yum -y install tcl ruby tre

2020-07-08 10:59:00 366

原创 mysql多表同时更新

mysql多表同时更新,在更新,修改,删除表数据时又带有查询,需要引入一个中间表,不然会报错。这里的sql操作是1、查询sys_role表数据的最大id+1的值。2、将sys_role表中,id=99的数据改成id=sys_role表数据的最大id+1的值。3、将sys_role_menu表中,role_id=99的数据改为role_id=sys_role表数据的最大id+1的值。...

2020-04-09 11:36:58 981

原创 python爬取图片

import urllib.requestimport re #写正则表达式要导入的import osimport timeheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari...

2020-03-26 18:11:28 403

原创 docker安装redis集群(单机)

创建文件以及文件夹创建文件夹mkdir 文件夹名称 创建文件touch 文件名称pwd 当前目录地址 ll 获取当前文件夹下的文件详情(需要创建四个文件)创建redis-cluster.tmpl 这是个redis配置文件(注释要单独一行,不然会报“FATAL CONFIG FILE ERROR :Bad directive or wrong number of ar...

2020-03-13 14:45:15 551

原创 postman获取并设置token以及session

在前后端分离的现在,后端调试接口常用方法就是使用Postman(绝对不是写单元测试:除非有专门的人去写单元测试,如果让写后端的人又开发代码,又写单元测试,在时间的花费上以及接口的检验上是得不偿失的。以上纯属个人意见)PostMan是一个非常方便的api接口测试工具,用户可以在它上面调试信息,跟踪请求.我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口。小编一开始要访问需...

2019-11-06 12:04:04 6426

原创 springcloudsleuth=zipkin+mysql+rabbitmq

springcloud:Finchley.SR2springboot:2.0.6.RELEASEzipkin:zipkin-server-2.11.5-exec.jarzipkin2.0之后官方不再建议自定义zipkin,建议使用官方提供的zipkin.jar包。zipkin下载地址启动zipkin服务:创建数据表:CREATE TABLE IF NOT EXISTS...

2019-10-19 18:10:42 1093

原创 Java设计模式-抽象工厂模式

抽象工厂模式(创建型)定义:一个接口用于创建相关或有依赖关系的对象簇,而无需指明具体的类。抽象工厂模式是将工厂抽象成两层,工厂类的抽象和工厂产品类的抽象。可以根据创建对象类型使用对应的工厂子类,可以将单个简单工厂类变成工厂簇,有利于代码维护和拓展。目录结构:类图:产品基类(Snacks)public abstract class Snacks { //...

2019-08-05 10:44:43 116

原创 Java设计模式-工厂模式

简单工厂模式(创建型)又叫静态工厂,如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”,它不属于设计模式 的 23 种经典设计模式,它的缺点是增加新产品时会违背“开闭原则”。而工厂模式是多个工厂,增加、删除、修改产品就只需要修改工厂类。定义:定义了一个创建对象的类,由这个类来封装实例化对象的行为。实例化对象的时候不再使用 new Object()形式,可以根...

2019-08-05 09:44:31 162

原创 Java设计模式-单例模式

单例模式(创建型)意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。定义: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。适用场景:单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等。如:...

2019-07-29 15:25:01 376

原创 Java设计模式-七大原则

设计模式目的(设计模式的依据)让程序具有更好的:代码重用性(相同功能的代码,不用多次编写) 可读性(编程规范性,便于其他程序猿的阅读与理解) 可扩展性(当需要增加新功能时,十分方便,称可维护性) 可靠性(当我们增加新的功能后,对原来的功能没有影响) 使程序呈现高内聚,低耦合。设计模式分类创建型:单例模式、工厂模式、抽象工厂模式、原型模式、建造者模式结构型:适配器模式、桥接...

2019-07-29 11:17:09 128

原创 day1-springcloud-构建父子工程创建eureak模块

一、包机构目录二、创建maven父项目(shop-parent)三、创建子项目(shop-basics)四、创建子项目(shop-basics-eurake),需要修改项目路径才能创建成功。五、添加maven依赖,删除多余的src目录1、在shop-parent中加入依赖 <parent> <group...

2019-07-11 15:31:19 154

原创 poi实现excel的导入导出

网上有很多java整合excel的文章,但好多使用的过期方法(比如格式转换,我这用的是poi的枚举类进行switch,不是过期方法,用cell.getCellType()获取类型是过期方法了),自己重新将前端后端所需要的方法都重写了一遍并且加了很多注解。1、导包 &lt;!--上传文件--&gt; &lt;dependency&gt; ...

2019-01-22 17:36:43 332 2

原创 layui数据表格隐藏列的办法

在使用layui做数据表格的时候,插入的数据的id是不是一组连续的数字,那么就需要用到layui的cols的type属性。 table.render({ elem: '#test' ,url:'${pageContext.request.contextPath}/findcustomers' ,cols: [[ {align:'center', tit...

2018-10-21 11:36:25 25503 5

转载 Android studio报中文异常

Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for detailsError:Execution failed for task ':app:mergeDebugResources'.&gt; Error: java...

2018-09-10 22:40:28 399

原创 限制浏览器登录某网站,比如4399

限制网站进入有三个方法:浏览器设置—找到Internet选项—点击内容审查程序的启用—许可站点—输入网址—点击始终—确定—设置密码—删除缓存关闭浏览器,然后在浏览器输入4399网址就进不了,但是有个问题,只要搜索4399之后,通过搜索条目还是可以进去,有了网页缓存之后又能进。 第三方软件限制,因为知道了第三个方法,这个方法没有过多寻找软件,但第三方软件强制关闭之后就实现不了限制网...

2018-08-12 22:34:08 11081

原创 动态sql

    在动态sql的&lt;set&gt;&lt;if&gt;元素里传数字值的时候,当传0的时候会报异常。org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExceptio...

2018-06-27 21:48:01 128

zipkin-server-shared.yml

windows启动时可修改zipkin配置 --zipkin.collector.rabbitmq.addresses=localhost:5672 --zipkin.collector.rabbitmq.username=guest --zipkin.collector.rabbitmq.password=guest --zipkin.storage.mysql.host=localhost --zipkin.storage.mysql.port=3306 --zipkin.storage.mysql.password=123456 --zipkin.storage.mysql.username=root

2019-10-19

空空如也

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

TA关注的人

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