自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TinnnnnnY

假如生活撂倒了你,表墨迹,表叽歪,表咋呼,表吱声,也表起来,你奏趴着,一直坚定不移地往前故应…故应…

  • 博客(139)
  • 收藏
  • 关注

原创 【总结】消息队列 - Kafka

阶段性总结以备不时之需,总结有误的地方,欢迎指正交流。1.为什么使用消息队列异步处理、应用解耦、流量削锋2.使用消息队列的缺点系统可用性降低 - 如果消息系统挂掉就会导致系统服务不可用。 系统复杂性增加 - 需要考虑很多方面的问题:一致性问题、如何保证消息不被重复消费、如何保证消息可靠性传输等。3.kafka相关概念1)producer(生产者):消息生产者,发布消息到 ...

2019-11-13 22:40:08 533 1

原创 (五)Redis淘汰策略

Redis的淘汰策略:1、no-eviction:不删除策略当达到最大内存限制时,如果还需要更多的内存:直接返回错误。2、allkeys-lru当达到最大内存限制时,如果还需要更多的内存:在所有的key中,挑选最近最少使用(LRU)的key淘汰。3、volatile-lru当达到最大内存限制时,如果还需要更多的内存:在设置了expire(过期时间)的key中,挑选最近最少使...

2019-03-13 16:04:53 304

原创 (四)Redis集群模式

1.Redis Cluster1.1 Redis 集群方案的演变大规模数据存储系统都会面临的一个问题就是如何横向拓展。当你的数据集越来越大,一主多从的模式已经无法支撑这么大量的数据存储,于是你首先考虑将多个主从模式结合在一起对外提供服务,但是这里有两个问题就是如何实现数据分片的逻辑和在哪里实现这部分逻辑?业界常见的解决方案有两种,一是引入 Proxy 层来向应用端屏蔽身后的集群分布,客户端...

2019-03-13 15:55:21 388

原创 内存泄露和内存溢出

(一)内存溢出:(Out Of Memory---OOM)系统已经不能再分配出你所需要的空间,比如你需要100M的空间,系统只剩90M了,这就叫内存溢出例子:一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不能吃了。这就是溢出。比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出。说白了就是...

2019-03-11 11:07:25 295

原创 (三)Redis主从复制介绍

1.什么是主从复制1.1 简介在分布式环境中,数据副本 (Replica) 和复制 (Replication) 作为提升系统可用性和读写性能的有效手段被大量应用系统设计中,Redis 也不例外。Redis 作为单机数据库使用时,适用常见有限且存在单点宕机问题,无法维持高可用。因此 Redis 允许通过 SLAVEOF 命令或者 slaveof 配置项来让一个 Redis server 复制...

2019-03-11 09:59:10 283

原创 (二)Redis持久化介绍

1.RDB & AOF 简介Redis 提供了两种持久化策略 RDB 持久化机制,会在一段时间内生成指定时间点的数据集快照(snapshot) AOF 持久化机制,记录 server 端收到的每一条写命令,当 server 重启时会进行重放以此来重建之前的数据集。AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加(append)到文件的末尾。 Re...

2019-03-08 15:35:52 214

原创 (一)Redis数据结构介绍

相比于memcache 作为缓存服务,redis 提供了更为丰富的数据结构:String, List,Set,SortedSet,Hash等。对于这五种数据结构,可以结合Java中的对应的类来进行理解,其中String数据结构对应Object类 (任意对象都会序列化成string来存储),List数据结构对应java.util.List接口的实现类java.util.LinkedList,Set数...

2019-03-07 19:10:39 1522

原创 导致JVM进行Full GC的情况及解决办法

堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,如下图所示:对年轻代(包括 Eden 和 Survivor 区域)进行GC被称为 Minor GC,对老年代进行GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的JDK里默认包括了对永生带即方法区的回收(JDK8中无永生带了),出现Full GC的时候经常伴随至少一次的Minor GC,但...

2019-03-07 15:53:38 11754 2

原创 Http请求工具类

HttpUtil.javapackage com.jrbac.util;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.http.Consts;import

2017-08-17 17:41:59 6674

转载 liunx下cpu占用率高如何定位代码问题

问题描述:生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高。问题分析:1,程序属于CPU密集型,和开发沟通过,排除此类情况。2,程序代码有问题,出现死循环,可能性极大。问题解决:1,开发那边无法排查代码某个模块有问题,从日志上也无法分析得出。2,记得原来通过strace跟踪的

2017-06-14 18:32:19 1227

转载 ConcurrentHashMap原理分析

1. 实现原理ConcurrentHashMap使用分段锁技术,将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问,能够实现真正的并发访问。如下图是ConcurrentHashMap的内部结构图: 从图中可以看到,ConcurrentHashMap内部分为很多个Segment,每一个Segment拥有一把锁,

2017-03-29 18:01:58 391

转载 传统Active MQ与大数据下的分布式Kafka

首先,Active MQ与Kafka的相同点只有一个,就是都是消息中间件。其他没有任何相同点。关于consumeActive mq是完全遵循JMS标准的。amq无论在standalone还是分布式的情况下,都会使用mysql作为存储,多一个consumer线程去消费多个queue, 消费完的message会在mysql中被清理掉。作为AMQ的consume clinet的多个c

2017-02-27 16:04:12 1268 2

转载 Java常用知识点

类的继承Java只支持单继承,不允许多重继承 - 一个子类只能有一个父类 - 一个父类可以派生出多个子类  子类继承了父类,就继承了父类的方法和属性。 在子类中,可以使用父类中定义的方法和属性,也可以创建新的数据和方法。 因而,子类通常比父类的功能更多。 在Java 中,继承的关键字用的是“extends”,即子类不是父类的子集,而是对父类的“扩展”。

2017-02-27 16:00:10 919

转载 Hibernate连接池三种配置实例

hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP。在Hibernate连接池配置时需要注意的有三点:一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式。二、默认情况下(即没有配

2017-02-27 15:44:34 2478

转载 Spring整合JMS——基于ActiveMQ实现

声明:本文转载地址:http://elim.iteye.com/blog/1893038,如不能转载,请联系博主。 JMS简介JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者

2017-02-27 15:39:10 373

转载 memcached搭建缓存系统

原地址:http://my249645546.iteye.com/blog/1420061一、概念Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。二、适用场合1.分布式应用。由于memcached本身基于分布式的系统,所以尤其适合大型的分布式系统。

2017-02-27 15:13:04 295

原创 目录空间使用率100%但是没有找到大文件的解决办法

通过df查看某一目录“/home/q”的占用空间已经了占用了100%。本来想着,应是大文件的问题,于是查找文件大小大于1G、大于500M的文件,如下:find /home/q -size +1G 2>/dev/null并没有找到比较大的文件。然后我查看了一下“/home/q”目录的文件大小,如下:解决办法:通过lsof

2017-02-13 12:56:55 5699

转载 redis通用工具类

转自:http://blog.csdn.net/qq7342272/article/details/49299787 publicclassRedisUtil{ privatestaticfinalLoggerLOGGER=Logger.getLogger(RedisUtil.class); privatestaticJedisPoolpool...

2017-02-07 18:44:58 2354

转载 把一个List拆分为几个大小一样的List

转自:http://blog.csdn.net/tengdazhang770960436/article/details/9145405package com.dada.radom;    import java.util.ArrayList;  import java.util.List;    public class TestArray {      publ

2017-02-07 17:53:25 6396

原创 学习笔记 08 --- JUC线程池

学习笔记 08 --- JUC线程池ThreadPoolExecutor

2017-01-23 15:37:14 746

原创 学习笔记 07 --- JUC集合

学习笔记 07 --- JUC集合在讲JUC集合之前我们先总结一下Java的集合框架,主要包括Collection集合和Map类,Collection集合又可以划分为LIst和Set。1. List的实现类主要有: LinkedList, ArrayList, Vector, Stack。(01) LinkedList是双向链表实现的双端队列;它不是线程安全的,只适

2017-01-20 10:35:33 3494 1

原创 学习笔记 06 --- JUC锁

学习笔记 06 --- JUC锁ReadWriteLock和ReentrantReadWriteLock:JUC包中的锁包括“独占锁”和“共享锁”,ReentrantLock就是典型的独占锁。JUC包中的共享锁包括CountDownLatch, CyclicBarrier, Semaphore, ReentrantReadWriteLock等。ReentrantRead

2017-01-16 10:30:21 596

原创 学习笔记 05 --- JUC锁

学习笔记 05 --- JUC锁LockSupport:LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport通过unsafe函数中的接口来实现阻塞和解除阻塞的,AQS和其他的lock都会使用到这个基础类。LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程(park()---获取许可,u

2017-01-13 09:55:50 1039

原创 学习笔记 04 --- JUC锁

学习笔记 04 --- JUC包之锁同步锁:通过synchronized关键字来进行同步,实现竞争资源的互斥访问的锁。同步锁的原理是对于每一个对象,有且仅有一个同步锁,不同的线程能共同访问该同步锁,但是在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能进行CPU调度;而没有获取到同步锁的线程,必须进行等待,知道获取到同步锁之后才能继续运行。

2017-01-12 10:23:03 550

原创 学习笔记 03 --- JUC原子类

学习笔记 03 --- JUC包JUC ------- Java.util.concurrent包:Java 5 之后添加了一个新的包JUC 包到Java平台,JUC包包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建JUC 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以提

2017-01-11 09:48:40 626

原创 学习笔记 02 --- Java多线程

学习笔记(20170106)--- Java多线程 02学习笔记(20170105)---Java多线程 01synchronized关键字:脏读:在多线程中,难免会出现多个线程对同一个对象的实例变量进行并发操作的情况,如果没有同步处理,那么就会造成脏读,最后的结果是不正确的。synchronized获取的锁都是对象锁,而不是把一段代码或者方法当

2017-01-10 10:14:25 551

转载 Java中Unsafe类详解

java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应。2、可以定位对象某字段的内存位置,也可

2017-01-09 15:07:54 536

转载 Java并发编程与技术内幕:线程池深入理解

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka         摘要: 本文主要讲了Java当中的线程池的使用方法、注意事项及其实现源码实现原理,并辅以实例加以说明,对加深Java线程池的理解有很大的帮助。         首先,讲讲什么是线程池?照笔者的简单理解,其实就是一组线程实时处理休眠状态,等待唤醒执行。那么为什么要

2017-01-06 19:50:18 384

原创 学习笔记 01 --- Java多线程

新建状态(New) : 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。运行状态(Running) : 线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。阻塞状态(Blocked) : 阻塞状态是线程因为某种原

2017-01-05 16:14:55 401

原创 HTTP Get和Post请求设置超时

HTTP Get和Post请求设置超时Post请求:private Runnable runnable = new Runnable() { @Override public void run() { String url = BaseServicesInfo.SERVER_BASE_PATH + fileName;

2017-01-04 19:38:36 16954 1

原创 Git 命令整理

1、常用的Git命令命令简要说明git add添加至暂存区git add–interactive交互式添加git apply应用补丁git am应用邮件格式补丁git annotate同义词,等同于 git blamegit archive文件归档打包git bisect

2017-01-04 17:04:17 355

转载 POI Excel导出样式设置

POI Excel导出样式设置[java] view plain copy HSSFSheet sheet = workbook.createSheet("sheetName");    //创建sheet  sheet.setVerticallyCenter(true);    //下面样式可作为导出左右分栏的表

2017-01-04 16:57:17 743

原创 Jquery使用attr("checked")返回checked或undefined导致获取是否选中失效

Jquery中使用$('#cb').attr('checked')获取checkbox是否被选中, 返回的是checked或者是undefined,不是原来的true和false了,有关此问题的解决方法如下:发现问题:页面上有一个checkbox,我们期望通过Jquery来获得它是否选中,或者通过Jquery来让它被选中。 在JQ1.6之前的版本,我们会这样写我们的代码:

2017-01-04 16:44:24 2269

转载 Dubbo学习小记

前言周一入职的新公司,到了公司第一件事自然是要熟悉新公司使用的各种技术,搭建本地的环境。熟悉新公司技术的过程中,首先就是Maven,这个前面已经写过文章了,然后就是Dubbo----公司的服务都是通过Dubbo来治理的。其实之前我就对SOA、RPC等分布式服务的概念有所了解,Dubbo也多多少少知道一些,不过能亲身使用那是再好不过的了。此文就对我的Dubbo学习做一个小的总

2017-01-03 13:13:53 683

转载 对一致性Hash算法,Java代码实现的深入研究

致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点放

2017-01-03 13:13:13 472

转载 集群监控

集群监控大型互联网企业的背后,依靠的是成千上万台服务器日夜不停的运转,以支撑其业务的运转。宕机对于互联网企业来说,代价是沉重的,轻则影响用户体验,重则直接影响交易,导致交易下跌,并且给企业声誉造成不可挽回的损失。对于这些机器对应的开发和运维人员来说,即便是每台机器登陆一次,登陆那么多台机器也够呛,何况还需要进行系统指标的检查。因此,依靠人力是不可能完成24小时不间断监控服务器的任务的。

2017-01-03 13:12:34 493

转载 几种简单的负载均衡算法及其Java代码实现

什么是负载均衡负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题

2017-01-03 13:11:57 265

转载 一致性协议

2PC与3PC在分布式系统中,每一个机器节点虽然都能够明确地知道自己在进行事务操作过程中的结果是成功或失败,但却无法直接获取到其他分布式节点的操作结果。因此,当一个事务操作需要跨越多个分布式节点的时候,为了保持事务处理的ACID特性,就需要引入一个称为"协调者(Coordinator)"的组件来统一调度所有分布式节点的执行逻辑,这些被调度的分布式节点则被称为"参与者(Participant

2017-01-03 13:11:20 340

转载 消息中间件与JMS标准

初识消息中间件维基百科上对于消息中间件的定义是"Message-oriented middleware(MOM) is software infrastructure focused on sending and receiving messages between distrubuted systems"。解释起来就是消息中间件是在分布式系统中完成消息的发送和传递的基础软件。看张图来更直

2017-01-03 13:10:46 315

转载 MemCache超详细解读

MemCache是什么MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结

2017-01-03 13:10:03 787

空空如也

空空如也

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

TA关注的人

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