04 2024 档案
摘要:一、controller /** * java并发查询数据实战 提高接口响应速度 * @param userId * @return */ @GetMapping("/get/data") @ResponseBody public UserBehaviorDataDTO getUserData(Lo
阅读全文
摘要:一、压测工具 Apache JMeter Gatling 二、代码测试 package com.woniu.demo.concurrent; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.CountDownLatch; i
阅读全文
摘要:一、redis有哪些数据结构及分别试用的业务场景? string,key-value接口,使用存储一些用户信息,token hash,key-map接口,可以存储一些字典信息 set,无序集合,里面的元素是不可重复的,去重的场景时可以用这种set数据结构 zset,有序集合,里面的zscore 可以
阅读全文
摘要:一、redis的底层数据结构是什么? 跳表 二、mysql底层数据结构是什么? b+树 三、为什么redis底层数据结构用跳表,而mysql底层数据结构用的是b+树? 跳表和b+树的查询复杂度都是O(logn),查询效率都差不多,核心问题是:redis的数据是存储在缓存中且数据量不是特别大,不用担心
阅读全文
摘要:一、自我介绍,自己会些什么? 处理过高并发问题 项目优化经验 排查OOM故障 jvm,mysql,redis底层有着深入的了解 项目负责人 熟悉项目开发流程 二、什么是并发问题? 多个线程同时操作一个公共变量,这个公共变量可以是java中的一个局部变量也可以是mysql中的一条数据,当a,b线程同时
阅读全文
摘要:一、线程池 线程池的基本参数:核心线程数、最大线程数、最大活跃时间,时间单位、队列长度、线程工厂、线程拒绝策略 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit
阅读全文
摘要:一、jvm默认设置参数 声明:基本的设置参数可以如下,但是你得根据你的实际业务场景进行调整 -Xms128m -Xmx2043m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50
阅读全文
摘要:在这里就不用再阐述我得使用过程了,因为有大佬写的已经很详细了,我会在附地址给大家查看,在这我分享一下使用过程中的一些注意事项。 需要手动安装你必要的插件,比如git,Publish Over SSH,maven 手动将maven,jdk的换件配置到你的jenkins目前中(你之前映射的目前下),图形
阅读全文
摘要:一、基础条件 1.系统:阿里云,Ubuntu:18.04 2.安装docker: 可以查看我之前的docker随笔笔记 这里说明一下docker-compose的安装,现在安装得也有点慢,大家可以根据个人的网络进行选择 下面是安装docker-compose的三种方式 sudo curl -L "h
阅读全文
摘要:一、为什么要做高并发 首先你得知道你当前的项目为什么要做高并发,之前的单体架构为什么不满足你的需求? 当前的系统架构已经远远不能满足你的业务需求? 当前的系统的并发数已经越来越多,加机器代理已经无法解决此问题? 当前系统用户数越来越多,数据量越来越大,数据库极可能在崩的边缘? 当前公司的业务数上来了
阅读全文