自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 分布式锁

1 public class ZKLockDemo { 2 public static void main(String[] args) throws Exception { 3 4 String zkConnection = "192.168.40.136:2181,192.168.40.137:2181,192.168.40.138:218...

2018-11-25 20:07:00 112

转载 布隆过滤器原理

简介:    布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。基本思想:  如果想要判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等...

2018-11-25 18:02:00 145

转载 redis缓存穿透

一般的使用缓存模型:优点:减轻服务器压力缺点:假设用户故意使用一个不存在的key请求,服务器每次还是会请求数据库改进方案:查询数据库,不存在时,向缓存中存放一个特殊字符优点:用户使用一个不存在的key重复请求,可以避免给服务器带来的压力缺点:用户每次使用不同的且不存在的key请求,该模型无法有效拦截改进:设置黑名单,如果同一ID,且多次请求不存...

2018-11-25 17:55:00 112

转载 布隆过滤器应用DEMO

引入jar包<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>21.0</version> </dependen...

2018-11-25 17:24:00 105

转载 线程的声明周期

状态说明:1.new:新建状态,线程对象被创建时。2.runnable:就绪态,调用该线程的start方法。3.running:执行态,线程获得了cpu执行权。4.blocked:阻塞态,线程放弃cpu执行权,暂时停止运行,直到某种条件满足重新进入就绪状态。阻塞态分三种:(1):等待阻塞,调用线程的wait方法,让线程等待某工作完成(2):同步阻塞,...

2018-11-25 15:41:00 80

转载 分布式事务

事务介绍(引用百度百科):  数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足...

2018-11-25 00:52:00 68

转载 滑动窗口协议

  如果过多的源同时以很快的速度发送大量的数据包,而此时接收方并没有如此高的接收数据的能力,因此极易导致网络的拥塞。所以,为了控制发送方的发送速度,防止发送方并考虑到受发送缓冲区大小的制约等,要求对发送方已发出但尚未经确认的帧的数目加以限制,同时使网络的传输效率得到提高,滑动窗口协议应运而生,它使得发送方可以在未收到确认的情况下,同时发送多个数据分组,由此大大提升了网络吞吐量。 ...

2018-11-20 22:32:00 76

转载 代理

1.静态代理2.动态代理3.sping容器中jdk动态代理的实现4.spring容器中cglib转载于:https://www.cnblogs.com/chinano1/p/9992182.html

2018-11-20 22:26:00 83

转载 查看jvm运行情况常用命令

一:查找java进程1.通过pas命令查找李,例如:ps -ef|grep java或者ps -ef|grep tomcat,grep后跟关键字,tomcat路径等2.通过jps命令,例如jps -l3.top命令二:使用javamingl查看jvm情况1.命令jstat,例:jstat -gcutil PID 2s2.命令jmap 例:jmap -heap PID3.jstac...

2018-11-20 22:17:00 389

转载 volatile的原理和实现机制

JMM-java内存模型:  简介:程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存当中,那么CPU进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运算结束之后,再将高速缓存中的数据刷新到主存当中。  问题:在多核CPU中,每条线程可能运行于不同的CPU中,因此每个线程运行时有自己的高速缓存(对单核CPU来说,其实也会出现这种问题,只不...

2018-11-19 22:11:00 72

转载 如何控制线程的执行顺序

错误示例: 1 public class Test { 2 public static void main(String[] args){ 3 thread1.start(); 4 thread2.start(); 5 thread3.start(); 6 } 7 8 stati...

2018-11-19 09:14:00 81

转载 CDN缓存

CDN其实是一种资源的分布式存放和备份的方法。使用CDN缓存的目的: 解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可以就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率。 控制时延无疑是现代信息科技的重要指标,CDN的意图就是尽可能的减少资源在转发、传输、链路抖动等情...

2018-08-14 17:41:00 84

转载 nginx作用

nginx有两个作用:1.负载均衡 2.静态图片服务器一.负载均衡Nginx 的 HttpUpstreamModule 提供对后端(backend)服务器的简单负载均衡。一个最简单的 upstream 写法如下: 1 upstream backend { 2 server backend1.example.com; 3 server backend...

2018-08-14 17:00:00 71

转载 Linux下4个查找命令which、whereis、locate、find

1.which作用:从环境变量PATH中,定位、返回与指定名字相匹配的可执行文件所在的路径原理:执行which命令时,which会在当前环境变量PATH中依次寻找能够匹配所找命令名字的可执行文件适用场合:一般用于查找命令、可执行文件所在的路径2.whereis作用:定位、返回与指定名字匹配的二进制文件、源文件和帮助手册文件原理:whereis命令首先会去...

2018-08-03 15:52:00 951

转载 @ModelAttribute的用法,与@RequestBody的区别

@ModelAttribute的用法大概有两种:一种是直接标记在方法上,一种是标记在方法的参数中,两种标记的方法产生效果也各不相同一.直接标记在方法上 1 @Controller 2 @RequestMapping(value="model") 3 public class ModelAttributeTest { 4 5 @ModelAttribu...

2018-08-03 11:36:00 401

转载 将kafka消息解析拷贝

找到消息日志保存目录可以看到以.log结尾的消息文件,接下来使用命令解析此文件执行命令:strings -e S "00000000000000080560.log" | iconv -c -f "UTF-8" -t "UTF-8" > xx.txt可以看到多了一个xx.txt文件,执行命令szxx.txt,选择保存路径,将文件保存本地电脑即可对消息文件分析。...

2018-07-25 00:25:00 88

转载 永久代溢出(java.lang.OutOfMemoryError: PermGen space )

jstat命令简介:Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。详见...

2018-07-25 00:02:00 123

转载 失败重试机制-递归应用1

1 private String reqRetry(Integer param, int errorCount) { 2 try { 3 return reqRemote(param); 4 } catch (Exception e) { 5 errorCount++; 6 ...

2018-07-24 00:44:00 288

转载 kafka-重复消费-2

场景:kafka先批量拉取消息,完了将拉下来的消息逐条消费,假如此次共拉取40条消息,但在处理第31条时,线程被停掉,就会导致已消费消息offet不会被提交,接下来已经被消费的30条记录还会被重复消费,这就是kafka重复消费的另一场景;解决思路:解决此类重复消费的方式:将能够唯一标识消息的信息存储在其他系统,比如redis,什么能够唯一标识消息呢?就是consumergro...

2018-07-24 00:28:00 111

转载 读写分离-延时问题-1

代码主要逻辑如下: 1 public void createCoupons(ReqCreateAndBindCouponDTO request) { 2 // 1.创建优惠券组及多张优惠券(写库) 3 int groupId = createCouponGroupAndCoupons(request); 4 // 2.根...

2018-07-14 00:25:00 57

转载 kafka-重复消费-1

错误如下:Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member. This means that the time between subsequent calls to poll() was longer than...

2018-07-13 23:57:00 261

转载 nosql

关系型数据库遵循ACID规则事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:1、A (Atomicity) 原子性原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账...

2018-07-02 22:28:00 49

转载 ThreadLocal

1.介绍 深挖过threadLocal之后,一句话概括:Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离。所以ThreadLocal的应用场合,最适合的是按线程多实例(每个线程对应一个实例)的对象的访问,并且这个对象很多地方都要用到。 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,Thr...

2018-06-29 01:30:00 80

转载 内存溢出、内存泄漏

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;内存泄露 memory leak,是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成的内存空间的浪费称为内存泄露!根本原因是,长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命...

2018-06-09 16:56:00 76

转载 springboot邮件服务

1.添加jar包<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </depende...

2018-06-07 23:34:00 127

转载 三次握手、四次挥手

三次握手主要是为了防止已失效的连接请求报文突然到达服务器,造成服务器的等待和资源的浪费。若是三次挥手可能在关闭后还有一个方向没有关闭。转载于:https://www.cnblogs.com/chinano1/p/9152870.html...

2018-06-07 21:24:00 56

转载 悲观锁乐观锁简单整理

一:介绍悲观锁,正如其名,具有强烈的独占和排他特性。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。乐观锁机制采取了更加宽松的...

2018-06-07 20:48:00 65

转载 beanstalkd

yum 方式安装:yum -y install beanstalkd启动:/usr/bin/beanstalkd -l 0.0.0.0 -p 11300 -b /var/lib/beanstalkd/binlog -F-b开启binlog,断电后重启会自动恢复任务。配置文件:/etc/sysconfig/beanstalkd对job 5个...

2018-06-07 20:43:00 67

转载 explain

explain+sql语句● id: SELECT 查询的标识符. 每个 SELECT 都会自动分配一个唯一的标识符. ● select_type: SELECT 查询的类型. ● table: 查询的是哪个表 ● partitions: 匹配的分区 ● type: join 类型 ● possible_keys: 此次查询中可能选用的索引 ● key: 此次...

2018-06-07 20:31:00 49

转载 分布式事务XA

1、什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。2、分布式事务的...

2018-06-07 19:51:00 101

转载 Hashmap实现原理

1.HashMap的数据结构  数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法——拉链法,我们可以理解为“链表的数组”,如图:  从上图我们可以发现哈希表是由数组+...

2018-06-07 19:34:00 82

转载 redis特性

redis基本数据类型及应用场景支持多种数据类型:string(字符串) String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是数字。常规key-value缓存应用;list(列表) list就是链表,略有数据结构知识的人都应该能理解其结构。使用Lists结构,我们可以轻松地实现最新消息排行等功能。List的另一个应...

2018-06-07 13:14:00 71

转载 mybatis中#和$区别

1.应用示例sql :select * from ${table} where name= #{name} order by ${sort} desc控制台信息:2018-05-28 20:11:19.280 [http-nio-9090-exec-2] DEBUG com.hpu.mapper.UserMapper.findUser - ==> Preparin...

2018-06-07 12:26:00 56

空空如也

空空如也

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

TA关注的人

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