- 博客(58)
- 资源 (2)
- 收藏
- 关注
原创 非反射比较两个对象属性是否一致的方法
比较方法我这里提供一个,目前我看到的,最简单的比较两个对象属性是否一致的方法,废话不多说,直接上代码,一看就懂:package design.decorator;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import com.alibaba.fastjson.JSO...
2019-12-03 14:59:19
292
原创 简析 MySQL 读写分离与主从复制
简析 MySQL 读写分离其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去。简析 MySql 主从复制原理主库将变更写binlog日志,然后从库连接到主库之后,从库有一个IO线程,将主库的binlog日志拷贝到自己本地,写入一个中继日志中。接着从库中有一个SQL线程会从中继日志读取binlog,然后执行bin...
2019-11-25 23:25:05
264
原创 工具推荐系列之 ElasticSearch-head 离线Chrome 插件
今天给大家推荐的是 ElasticSearch-head 离线 Chrome 浏览器插件,安装使用都非常简单,流程如下:插件下载先到百度网盘进行插件下载,下载链接与提取码:百度网盘下载链接: https://pan.baidu.com/s/1Kr5Y33aS6yAtkaA5Scj4uQ 提取码: qi7j 插件安装其次将插件解压到本地,然后点击自定义与控制 -> 更多工具 -&...
2019-11-21 22:12:18
1271
2
原创 定期删除ElasticSearch索引脚本
在大数据项目中我们每天需要存储大量的数据到ElasticSearch( 以下简称es )中,但是存储空间毕竟是有限的,所以常常遇到es存储不够的时候,怎么办呢?有两种解决方案:1、扩容2、删除索引第一种方案我就不说了,这个方案实现起来最简单,但是成本比较高,而且到了一定时间还是会出现存储不够的情况,所以我们还是简单的采用第二种方案吧,删除过期索引,但是每天去删除太麻烦了,所以这里用一个定时...
2019-11-13 22:59:14
1788
原创 简述dubbo的SPI机制
SPI概述dubbo或许大家都了解过一点,至少听说过,那么这个SPI是啥呢?简单来说,就是service provider interface,说白了是什么意思呢,比如你有个接口,现在这个接口有3个实现类,那么在系统运行的时候对这个接口到底选择哪个实现类呢?这就需要spi了,需要根据指定的配置或者是默认的配置,去找到对应的实现类加载进来,然后用这个实现类的实例对象。比如:接口A -> ...
2019-10-31 14:09:10
653
原创 代理模式
说到Java设计模式,有一种设计模式那就不得不提一下,那就是 — 代理模式,我也不知道代理模式为什么会这么出名,甚至在我还没有学设计模式得时候我就听说过了,大概是和朋友圈里面各种代购代理有关吧。如果没有听说过的话也没有关系,我这里可以举个栗子:我们朋友圈里面的微商(代理类)就是一个代理,他从厂家(服务类)拿货,然后我们(客户端)要买厂家的东西,不会直接到厂家哪里买,直接到微商哪里买,我们不直接接...
2019-10-24 09:11:58
163
转载 Eclipse快捷键大全
Ctrl+1 快速修复(最经典的快捷键)Ctrl+D 删除当前行Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)Alt+Ent...
2019-10-16 22:06:10
135
原创 浅谈系统数据库迁移到分库分表中
系统数据库迁移到分库分表中(1)停机迁移方案我先给你说一个最low的方案,就是很简单,大家伙儿凌晨12点开始运维,网站或者app挂个公告,说0点到早上6点进行运维,无法访问。。。。。。接着到0点,停机,系统挺掉,没有流量写入了,此时老的单库单表数据库静止了。然后你之前得写好一个导数的一次性工具,此时直接跑起来,然后将单库单表的数据哗哗哗读出来,写到分库分表里面去。导数完了之后,就ok了,修...
2019-10-15 23:02:50
412
原创 浅谈分库分表
现在很多的互联网公司为了快速抢占市场,都是以极快的速度上线项目,即使有什么问题,只要有用户使用,慢慢迭代就是了,这就为高并发留下了祸患。这里有一个很大的问题在于,前期可能用户不多,同时没有想到高并发的问题,那么在后期真的遇到了高并发的情况,可能数据库查询就顶不住了,特别是当数据库中的某个表的字段过多的时候,并且关联很多表的时候,那在做这个查询的时候,效率就真的很感人了,所以在不影响原有系统运行情况...
2019-10-11 22:21:27
286
原创 装饰模式
有一天程序员穿着休闲装到了公司,就在这个时候老板看见你了,说今天公司周年庆,你不知道吗,要正式一点,你的内心一定是崩溃的,但是你能怎么办,还不是必须照做,那就加一件正装外套好了,搞定。这个就和我们工作中有一种情况很类似,当我们都完成了一个功能了,开始运行了,但是老板忽然说能不能在这个地方加个新功能,但是只是在某些特殊的地方才使用,这个时候我们修改原有代码不太好,免得影响原有逻辑,有没有好的办法来解...
2019-09-23 10:33:13
137
原创 策略模式
策略模式是一种定义一系列算法的方法,从概念上看,所有这些算法都是完成相同的工作,只是实现不同而已,它可以以相同的方式来调用所有的算法,减少各类算法类与使用算法类的耦合。
2019-09-15 10:37:18
297
原创 Dubbo基础知识
我们公司目前还没怎么用分布式的架构,所以关于dubbo的相关知识都是通过我自学而来,然后分享给大家,同时记录给自己复习,如果有什么问题,请大家指正,谢谢。首先我们先明白dubbo是啥?dubbo说白了,是一种RPC(远程调用)框架,其重点在于分布式的治理,就是本地进行接口调用,然后dubbo会代理这个调用请求,跟远程机器网络通信,给你处理负载均衡、服务实例上下线自动感知、超时重试等等问题的服务框...
2019-09-10 23:03:48
274
原创 系统中引入消息队列的优缺点
我们经常说自己项目里用了redis、mq,但是其实我们并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或者是别人设计的架构,然后直接让我们使用,但是我们自己从头到尾都没思考过。或者假如你设计系统,然后你想引入消息队列,你有没有想过引入消息队列之后会不会有什么坏处?你要是没考虑过这个,那你盲目弄个MQ进系统里,后面出了问题,那就尴尬了。没有对自己的架构问过为什么的人,一定是平时没有思...
2019-07-27 21:15:33
772
原创 PostgreSQL密码重置方法
今天我在用命令行登陆postgresql的时候忽然忘记密码了,重试了N次还是不行,然后我就试着上网找解决之道,最后完美的解决了,可是后来我才发现还有个更简单的方法,该篇博客用来记录自己沙雕行为。工具已登陆这个就是最简单的方法,你有工具登陆过,完全可以通过工具来修改(可是我当时完全没想到这个。。。),我是通过Navicate来连接的,可以直接通过Navicate来修改步骤如下:1、连接数据库...
2019-07-17 12:18:57
7670
1
原创 数据结构(十)— 队列
队列的定义不知道大家在用电脑时有没有经历过,机器有时会处于疑似死机的状态,鼠标点什么似乎都没用,双击任何快捷方式都不动弹。就当你失去耐心,打算reset时突然它像酒醒了一样,把你刚才点击的所有操作全部都按顺序执行了一遍。这其实是因为操作系统中的多个程序因需要通过一个通道输出,而按先后次序排队等待造成的。操作系统中,应用了一种数据结构来实现刚才提到的先进先出的排队功能,这就是队列。所以队列 (...
2019-05-13 16:51:58
592
转载 Java线程池(ThreadPoolExecutor)原理分析与使用
在我们的开发中“池”的概念并不罕见,有数据库连接池、线程池、对象池、常量池等等。下面我们主要针对线程池来一步一步揭开线程池的面纱。使用线程池的好处1、降低资源消耗可以重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度当任务到达时,任务可以不需要等到线程创建就能立即执行。3、提高线程的可管理性线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使...
2019-04-17 10:31:34
121
转载 Java线程池种类、区别和适用场景
newCachedThreadPool:底层:返回ThreadPoolExecutor实例,corePoolSize为0;maximumPoolSize为Integer.MAX_VALUE;keepAliveTime为60L;unit为TimeUnit.SECONDS;workQueue为SynchronousQueue(同步队列)通俗:当有新任务到来,则插入到SynchronousQueue...
2019-04-12 10:35:35
352
原创 数据结构(四) — 线性表之链式存储
一、线性表的链式存储结构1、线性表链式存储结构定义线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。这就意味着,这些数据元素可以存在内存未被占用的任意位置。以前在顺序结构中,每个数据元素只需要存数据元素信息就可以了。现在链式结构中,除了要存数据元素信息外, 还要存储它的后继元素的存储地址。因此,为了表示每个数据元素 ai与其直...
2019-03-26 14:20:23
2766
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人