- 博客(12)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 分布式系统之设计策略
分布式系统本质上是通过低廉的硬件攒到一起获得更好的吞吐量、性能及可用性等。一台设备坏了,可以通过负载均衡和路由到其他服务器上。有以下几个主要的设计策略:1、如何检测你还活着?心跳检测,2、如何保障高可用主备模式互备模式,服务是互备的,但数据库是主备的集群模式,通过主控节点分发服务请求,需要特别注意主控节点本身的高可用问题。3、容错处理如对缓存雪崩故障的处理4、重试机制5、负载均衡硬负载:F5软负载:Nginx、LVS、HAProxy负载算法:轮询、最少连接、IP地址哈希、基于权重的
2020-07-19 10:44:06 369
原创 分布式系统之CAP特性
分布式系统的最大特点:多机器在逻辑上作为一台机器使用。这一根本特性导致分布式系统需要解决一下三个大问题C-一致性在分布式系统中所有数据备份,在同一时刻是否能保持数据一致。A-可用性在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。P-分区容忍性分区:集群如果不能再一定时限内达成数据一致性,就说明发生了分区。此时必须在一致性和可用性之间做出选择。...
2020-07-19 10:27:15 1361
原创 缓存系列(一):什么是缓存
1、缓存定义:存储在计算机上的一个原始数据复制集,以便于访问。2、各类缓存举例(1)边缘缓存:Nginx应用服务器的缓存解决了热点数据的缓存问题(2)应用级缓存:Redis分布式缓存集群减少了访问回源率(3)平台级缓存:tomcat应用集群使用的缓存防止了相关缓存失效/崩溃之后的冲击。(4)数据库缓存:提升数据库查询时的效率。(5)公有云缓存服务:阿里云、百度都推出了基于Redis的云存储服务。...
2020-07-17 23:06:39 585
原创 java虚拟机java.lang.OutOfMemoryError系列之Java heap space解决思路
工作中虽然不经常遇到java.lang.OutOfMemoryError: Java heap space,但一旦出现将会严重影响系统运行,如果不能迅速解决,将会带来很恶劣的影响,所以掌握OutOfMemoryError:Java heap space的解决方法也是非常有必要的。解决问题首先要找出原因,要找原因要有依据,而内存溢出时的堆dump信息是最为重要的依据之一步骤一:先保证能拿到堆dump信息我写了一个简单的小例子,jvm运行参数为:-Xmx20M -Xms20M -XX:+HeapDu
2020-07-14 22:33:41 549
原创 java虚拟机不同垃圾收集器应用场景
java虚拟机提供了不同种类的垃圾收集器,分别适用于不同的场景。下图是各类收集器的大致组合情况收集器名称 适用区域 适应场景 优缺点 涉及jvm参数 Serial 新生代 1、Server环境不推荐使用 2、单线程、单CPU场景 3、Client模式 优点:单cpu下没有线程交互的开销 缺点:StopTheWorld带给用户不好的体验 -XX:+UseSerialGC:Client模式
2020-07-13 23:27:40 250
原创 java公平锁和非公平锁的对比
1、公平锁定义:多个线程按照先到先得的策略获取锁。优点:所有线程都有机会获得锁,不会饿死缺点:由于所有线程都会经历阻塞态,因此唤醒阻塞线程的开销会很大。2、非公平锁定义:所有的线程有同样的概率获取到锁。优点:可以减少CPU唤醒线程的开销,整体的吞吐效率会高缺点:可能会有线程长时间甚至永远获取不到锁,导致饿死。...
2020-07-12 18:31:15 599
原创 java实现线程安全的实现方法
1、互斥同步(阻塞式)可以简单理解为两个人上洗手间,一个人进去后要先上锁,出来后释放锁,后面的人才能进。(1)synchronized块这个是原生语法层面的互斥锁,默认是非公平锁(2)ReentrantLock这个是api层面的互斥锁。与synchronized相比,有以下几个新的特性:1)等待可中断。ReentrantLock可以在等待一段时间获取不到锁的情况下,放弃等待,改为处理其他事情。2)公平锁。ReentrantLock默认是非公平锁,可以在构造器中传入用公平锁。3)Reentra
2020-07-12 18:17:40 382
转载 java虚拟机相关参数官方文档
一、虚拟机参数设置文档官方文档http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.htmlhttp://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html非官方文档http://www.jvmer.com/jvm-xx-%E5%8F%82%E6%95%B0%E4%BB%8B%E7%BB%8D/http://q-redux.blogspo
2020-07-12 09:59:59 348
原创 java虚拟机注意点汇总
1、minor gc耗时标准minorGC时间在几十毫秒可以接受,几百毫秒就算比较长了,需要注意。查看minor gc时长方法:途中的YGCT即为minor gc时长
2020-07-12 09:42:12 255
原创 java虚拟机性能优化场景及方法
场景1:Full GC时间太长(1)降低堆内存大小。这样能增加full gc的次数,但每次full gc的时间会降低(2)定时出发full gc。如果full gc的频率不高,如十几个小时才触发一次,则可以考虑做个定时器,显式地调用System.gc()进行full gc。场景2:经常发生OutOfMemory内存溢出(1)本地缓存改为集中缓存。大量使用本地缓存(如大量使用HashMap作为K/V缓存),会占用堆上很多内存,尤其在集群情况下,会造成更多浪费,这时可以考虑把本地缓存改为集中缓存(如Re
2020-07-12 09:02:07 832
java虚拟机OutOfMemoryError:Java heap space堆dump文件
2020-07-14
net-java-btrace-visualvm.nbm
2020-07-12
今年阿里巴巴的一道笔试题
2013-10-02
jsp 字符编码的一个问题
2013-09-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人