极客技术

geek的技术日志,记录每一次技术思考的闪光点。
并发编程

12306火车票秒杀系统架构优化思路

later阅读(204)评论(0)

一、秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息); 2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据; 3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多...

Java

Java并发包中ExecutorService 的几种线程池比较

later阅读(125)评论(0)

一:newCachedThreadPool (1)缓存型池子,先查看池中有没有以前建立的线程,如果有,就reuse,如果没有,就建立一个新的线程加入池中; (2)缓存型池子,通常用于执行一些生存周期很短的异步型任务;因此一些面向连接的dae...

core java

Java中的static关键字解析

later阅读(89)评论(0)

static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static...

Java

比较全面的JVM调优总结

later阅读(106)评论(0)

堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows ...

Java

JVM性能调优之jmap命令使用

later阅读(279)评论(0)

jdk安装后会自带一些小工具,jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。 jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分...

Java

JVM性能调优之生成和分析堆的dump文件

later阅读(113)评论(0)

最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录。 一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和T...

Mybatis

Mybatis工作原理解析

later阅读(164)评论(0)

工作原理解析 mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件(也可以用Java文件配置的方式,需要添加@Configuration)中构建出SqlSessionFac...

Mybatis

mybatis一级和二级缓存机制详解

later阅读(219)评论(0)

mybatis提供了缓存机制减轻数据库压力,提高数据库性能 mybatis的缓存分为两级:一级缓存、二级缓存 一级缓存是SqlSession级别的缓存,缓存的数据只在SqlSession内有效 二级缓存是mapper级别的缓存,同一个nam...

Mybatis

Spring Cloud/Spring Boot Mybatis 多数据源配置

later阅读(179)评论(0)

实际开发场景中,通常情况下单个微服务会配置多个数据源。这里主要介绍 项目使用多数据源 配置步骤。 一、数据源自动配置禁用 1、将spring boot自带的DataSourceAutoConfiguration禁掉,防止自动配置数据源。在@...

架构

带管理界面的分布式配置中心:Apollo

later阅读(327)评论(0)

1、What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机...

redis

如何查询redis命中率

later阅读(490)评论(0)

redis提供了INFO这个命令,能够随时监控服务器的状态,只用telnet到对应服务器的端口,执行命令即可: 在输出的信息里面有这几项和缓存的状态比较有关系: 查询命中数: 查询的命中个数,对应 keyspace_hits 字段。 查询未...

直达链接
Java

Vert.x 科普贴

later阅读(580)评论(0)

前言 早上有人在群上吐槽说Spring 成本高,入手难,新手才用Spring啥啥的。我就怼了他们,然后顺便了解了一下,假如没有Spring,有什么是可以替代的。 如上图,Vert.x是仅次于SpringMVC的(做这图的人有点傻逼,居然吧S...

Java

使用jmeter对restful API接口进行压力测试

later阅读(424)评论(0)

常见的接口测试方法 手工测试的话可以用postman ,自动化测试多是用到 Jmeter(开源)、soupUI(开源&商业版)。 要进行压力测试肯定要依靠自动化测试工具了,手工点击一秒钟也点击不了多少次。 Jmeter的安装 安装很...

core java

Java遍历Map对象的四种方式

later阅读(150)评论(0)

关于java中遍历map主要有四种方式 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。 1 2 3 4 Map<Integer, Integer> map = new HashMap<In...