本篇内容主要讲解的是redis分布式锁,这个在各大厂面试几乎都是必备的,下面结合模拟抢单的场景来使用她;本篇不涉及到的redis环境搭建,快速搭建个人测试环境,这里建议使用docker;本篇内容节点如下:Jedis的nx生成锁如何删除锁模拟抢单动作(10w个人开抢)jedis的nx生成锁对于java中想操作redis,好的方式是使用jedis,首先pom中引入依赖:<dependency&g
转载 2023-08-25 18:28:07
71阅读
最近公司在做一个数据报表的功能,其中需要导入原来的手动操作的数据到现在的系统中,经过整理,数据以excel的格式导入。在处理的过程中发现,需要读取解析的数据大概10W+,以原有的处理方式,读取excel中的数据需要消耗时间2分钟,插入到数据库中需要消耗时间高达20分钟。结果就是直接系统卡死了。后来想到的处理方式有2种:1.使用队列中间件  。 2.多线程考虑中间件要调整的还挺多,就选择第
转载 2023-09-06 15:16:59
20阅读
前言在开发十万博客系统的的过程中,前面主要分享了爬虫、缓存穿透以及文章阅读量计数等等。爬虫的目的就是解决十万+问题;缓存穿透是为了保护后端数据库查询服务;计数服务解决了接近真实阅读数以及数据库服务的压力。架构图限流就拿十万博客来说,如果存在热点文章,可能会有数十万级别的并发用户参与阅读。如果想让这些用户正常访问,无非就是加机器横向扩展各种服务,但凡事都有一个利益平衡点,有时候只需要少量的机器保证大
转载 2024-03-06 16:29:03
66阅读
一、线程池配置@Configuration @EnableAsync public class ExecutorConfig { private static final Logger logger = LoggerFactory.getLogger(ExecutorConfig.class); @Value("${async.executor.thread.core_pool
转载 2023-07-04 15:59:21
14阅读
前言开发目的:提高百万级数据插入效率。采取方案:利用ThreadPoolTaskExecutor多线程批量插入。采用技术:springboot2.1.1mybatisPlus3.0.6swagger2.5.0Lombok1.18.4postgresqlThreadPoolTaskExecutor具体实现细节application-dev.properties添加线程池配置信息# 异步线程配置 #
转载 2024-03-29 15:39:05
284阅读
Spring Boot 框架中,我们使用最多的是Tomcat,这是 Spring Boot 默认的容器技术,而且是内嵌式的 Tomcat。Tomcat 是 Apache 基金下的一个轻量级的Servlet 容 器 , 支 持 Servlet 和 JSP 。Tomcat服务器本身具有Web服务器的功能,可以作为独立的Web服务器来使用。一、Spring Boot应用中Tomcat建议配置Spri
1、springboot项目聚合websockert代码。代码如下:/** * 开启WebSocket支持 * */ @Configuration public class WebSocketConfig { /** * 扫描并注册带有@ServerEndpoint注解的所有服务端 * @return */ @Bean public Se
转载 2023-10-06 19:05:17
3阅读
我们都知道,SpringBoot默认的内嵌容器是Tomcat,也就是我们的程序实际上是运行在Tomcat里的。所以与其说SpringBoot可以处理多少请求,倒不如说Tomcat可以处理多少请求。关于Tomcat的默认配置,都在spring-configuration-metadata.json文件中,对应的配置类则是org.springframework.boot.autoconfigure.w
批量插入(Batch Insert) 批量处理:将多条数据合并成一个 INSERT 语句,一次性批量插入。这样可以显著减少数据库的交互次数,提高性能。 INSERT INTO your_table (column1, column2, ...) VALUES (value1, value2, ...
原创 2024-09-03 16:27:20
143阅读
一、一般来说nginx 配置文件中对优化比较有作用的为以下几项:1.  worker_processes 8;nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。2.  worker_cpu_affinity 00000001 0000001000000100 00001000 00010000 00100000 01000000 1
前言我们都知道初创公司一开始都是以单体应用为首要架构,一般都是单体单库的形式。但是版本以及版本的迭代,数据库需要承受更多的高并发已经成了架构设计需要考虑的点。那么解决问题,就得说到方案。但是方案有很多,我们该怎么选择呢?优化与方案基本上,我们优化要从几个关键字入手:短距离,少数据,分散压力。短距离所谓的短距离,指的是从前端到数据库的路径要短。 页面静态。有些页面的数据是在某些时段是不变的
转载 2023-07-24 14:23:26
101阅读
前言我们知道,高并发代表着大流量,高并发系统设计的魅力就在于我们能够凭借自己的聪明才 智设计巧妙的方案,从而抵抗巨大流量的冲击,带给用户更好的使用体验。这些方案好似能操纵流量,让流量更加平稳得被系统中的服务和组件处理。简单举个例子来说,淘宝双十一大抢购,全球那么多用户在同一时间下单,多的不说这流量级别都涉及到全球了,但是淘宝并没有出现系统崩掉的情况,这就是高并发存在的作用了。这需要我们在遇到高并发
一 multiprocessing模块介绍    python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。Python提供了multiprocessing。    multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模
转载 10月前
63阅读
10w并发架构 10亿并发系统设计手册 下载 在日益增长的用户需求与数据爆发式增长的背景下,“10w并发架构”与“10亿并发系统设计”被广泛关注。搭建一个可以支持百万级别用户同时访问的系统,并非易事,需要合理的架构设计、丰富的技术栈以及持续的优化策略。本文旨在为您提供一份详细的设计手册,涵盖了环境准备、分步指南、配置详解、验证测试、优化技巧和扩展应用等多个方面,助力您在这一复杂领域更进一步。
原创 5月前
28阅读
作者 |神牛003来源 |www.cnblogs.com/wangrudong003/p/10627539.html本篇内容主要讲解的是redis分布式锁,这个在各大厂面试几乎都是必备...
转载 2021-12-04 11:30:29
784阅读
SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。在pom文件里加入这个插件即可:org.springframework.bootspring-boot-maven-plugin打包完生成的executable-jar-1.0-SNAPSHOT.jar内部的结构如下:├── META-INF │ ├── MANIFEST.M
本节内容:mysql中的锁、事务、并发控制1、并发控制 无论何时,只要不止一个查询同时修改数据,都会产生并发控制问题--并发读和并发写。 读锁(Read Lock)/写锁(Write Lock) 锁系统是用于处理并发读或并发写时出现的数据不一致等问题。也称为共享锁(Share Lock)和排他锁(Exclusive Lock)。锁的概念: 某一资源上的读锁是共享的,或者说是互不阻塞的。在同一时间,
转载 2023-06-13 21:55:51
45阅读
本篇内容主要讲解的是redis分布式锁,这个在各大厂面试几乎都是必备的,下面结合模拟抢单的场景来使用她;本篇不涉及到的redis环境搭建,快速搭建个人测试环境,这里建议使用docker
转载 2022-01-05 16:41:54
123阅读
作者 | 神牛003本篇内容主要讲解的是redis分布式锁,这个在各大厂面试几乎都是必备的,下面结合模拟抢单的场景来使用她;本篇不涉及到的redis环境搭建,快速搭建个人测试环境,这里建议使用docker;本篇内容节点如下:Jedis的nx生成锁如何删除锁模拟抢单动作(10w个人开抢)jedis的nx生成锁对于java中想操作redis,好的方式是使用jedis,首先pom中引入依赖:<de
转载 2022-02-08 10:04:49
196阅读
# 如何实现“redis key 10w” ## 介绍 欢迎来到本篇文章,本文将教会你如何使用Redis实现"redis key 10w"的需求。Redis是一个开源的内存数据库,提供了丰富的数据结构和功能,非常适合用于缓存和存储关键数据。本文将以一个经验丰富的开发者的角度,通过详细的步骤和代码示例,帮助你实现这个需求。 ## 整体流程 下面是整个实现过程的流程图,我们将通过以下几个步骤来实现
原创 2023-10-21 10:21:40
25阅读
  • 1
  • 2
  • 3
  • 4
  • 5