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

Java

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

later阅读(96)评论(0)

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

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

later阅读(68)评论(0)

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

Java中的static关键字解析

later阅读(58)评论(0)

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

比较全面的JVM调优总结

later阅读(71)评论(0)

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

JVM性能调优之jmap命令使用

later阅读(147)评论(0)

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

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

later阅读(66)评论(0)

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

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

later阅读(119)评论(0)

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

Vert.x 科普贴

later阅读(341)评论(0)

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

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

later阅读(182)评论(0)

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

Java遍历Map对象的四种方式

later阅读(104)评论(0)

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

Spring cloud架构中利用zuul网关实现灰度发布功能

later阅读(1169)评论(0)

蓝绿发布、金丝雀发布(灰度发布)、AB测试 首先,了解下这几种发布方式的基础概念。 目前常见的发布策略有蓝绿发布、金丝雀发布(灰度发布)、AB测试这几种,在国内的开发者中,对这几个概念有独立的理解。蓝绿发布通常被大家成为热部署;金丝雀发布在...

BlockingQueue(阻塞队列)详解

later阅读(195)评论(0)

一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQ...

Spring Cloud学习第二课:Spring boot学习

later阅读(687)评论(1)

创建一个restful接口的Spring boot项目 如果使用SPRING INITIALIZR之类的插件的话,很容易就会创建出来了,不过大家可能就不容易理解了,而且,插件不是哪里都有的,配置好插件也是个麻烦的事情。为了方便理解,我从最基...