摘要: netsh interface portproxy add v4tov4 listenaddress=172.31.99.106 listenport=13389 connectaddress=192.168.137.2 connectport=3389 阅读全文
posted @ 2020-05-14 14:19 lupeng2010 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 索引 提起数据库的设计要点,我们首先要说的就是数据库索引的使用,在线上的服务中,任何数据库的查询都要走索引,这个是底线,不能因为数据量暂时较小就不使用索引,久而久之可能数据量增大就导致了性能问题,一般每个开发者都有建立索引和使用索引的意识,然而,问题出现在开发者使用索引的方法上。我们要保证建立的索引 阅读全文
posted @ 2020-04-15 15:51 lupeng2010 阅读(1523) 评论(0) 推荐(0) 编辑
摘要: 笔者在做设计评审的过程中,总结了一些开发人员在设计缓存系统时的优秀实践。 最佳实践1 缓存系统主要消耗的是服务器的内存,因此,在使用缓存时必须先对应用需要缓存的数据大小进行评估,包括缓存的数据结构、缓存大小、缓存数量、缓存的失效时间,然后根据业务情况自行推算未来一定时间的容量的使用情况,根据容量评估 阅读全文
posted @ 2020-04-15 15:47 lupeng2010 阅读(553) 评论(0) 推荐(0) 编辑
摘要: 线上高并发的服务就像默默的屹立在大江大河旁边的大堤一样,随时准备着应对洪水带来了冲击,线上高并发服务的线程池导致的问题也颇多,例如:线程池涨满、CPU 利用率高、服务线程挂死等,这些都是因为线程池的使用不当,或者没有做好保护、降级的工作而导致的。 当然,有些小伙伴是有保护线程池的想法的,但是,大家是 阅读全文
posted @ 2020-04-15 15:45 lupeng2010 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 有关“双重检查锁定失效”的说明 原文地址 译者:丁一 双重检查锁定(以下称为DCL)已被广泛当做多线程环境下延迟初始化的一种高效手段。 遗憾的是,在Java中,如果没有额外的同步,它并不可靠。在其它语言中,如c++,实现DCL,需要依赖于处理器的内存模型、编译器实行的重排序以及编译器与同步库之间的交 阅读全文
posted @ 2018-01-09 18:48 lupeng2010 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 现象 ? 1 系统报警full gc次数过多,每2分钟达到了5~6次,这是不正常的现象 ? 1 在full gc报警时的gc.log如下: ? 1 ? 1 在full gc报警时的jstat如下: ? 1 sudo -u admin -H /opt/taobao/java/bin/jstat -gc 阅读全文
posted @ 2018-01-09 18:39 lupeng2010 阅读(4154) 评论(0) 推荐(0) 编辑
摘要: Minor GC、Major GC和Full GC之间的区别 Minor GC、Major GC和Full GC之间的区别 2015/04/24 | 分类: 基础技术 | 5 条评论 | 标签: JAVA GC 分享到:30 2015/04/24 | 分类: 基础技术 | 5 条评论 | 标签: J 阅读全文
posted @ 2018-01-09 18:39 lupeng2010 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 本文主要是针对MySQL/InnoDB的并发控制和加锁技术做一个比较深入的剖析,并且对其中涉及到的重要的概念,如多版本并发控制(MVCC),脏读(dirty read),幻读(phantom read),四种隔离级别(isolation level)等作详细的阐述,并且基于一个简单的例子,对MySQ 阅读全文
posted @ 2018-01-09 18:38 lupeng2010 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 全面理解Java内存模型 2016年09月21日 18:39:21 标签: 内存模型 / volatile / 并发编程 / 同步 46394 2016年09月21日 18:39:21 标签: 内存模型 / volatile / 并发编程 / 同步 46394 Java内存模型即Java Memor 阅读全文
posted @ 2018-01-09 17:24 lupeng2010 阅读(133) 评论(0) 推荐(0) 编辑
摘要: @Test public void testMap2List() throws Exception{ Map<String, String> map = new HashMap<String, String>(); map.put("1", "AA"); map.put("2", "BB"); ma 阅读全文
posted @ 2018-01-06 20:12 lupeng2010 阅读(25444) 评论(0) 推荐(1) 编辑