想设计一个高并发的消息中间件前,先熟悉一下这些知识点-编程思维

本文分享自华为云社区《面试必问 | 如何设计一款高并发的消息中间件?》,作者:冰 河。 消息中间件涉及的知识点 要想设计一个具有高并发的消息中间件,那么首先就要了解下消息中间件涉及哪些具体的知识点。通常,设计一个良好的消息中间件最少需要满足如下条件: 生产者、消费者模型。 支持分布式架构。 数据的高可用。 消息数据不丢失。 接下来,我们就针对消息中间件来分别谈谈这些技术点。 生产者消费者模型

根据实际工作经验总结一下个人.net高并发处理做法-编程思维

场景描述 1.用户下单,商品库存已经不足了,但还是扣减了 2.医生开方,药品不足了,但还是被开了出去 ··· 类似场景(这个场景有局限性,解决的问题只是高并发带来的数据异常问题) 解决思路 思路1:预扣库存 用户下单时,系统先进行预扣库存操作,然后后将“下单业务”发布到MQ(消息队列)进行处理,成功通知,失败回滚预扣库存操作 对于预扣库存时可能出现的“超卖”现象,可以采用针对数据库表的悲观/乐

高并发过程中遇到的各项名词解释-编程思维

QPS(最大/最小/平均) Queries Per Second 是每秒查询率 ,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。 QPS(TPS)=并发数/平均响应时间 TPS(最大/最小/平均) Transactions Per Second 也就是事务数/秒。一个事

实战:工作中对并发问题的处理-编程思维

1. 问题背景 问题发生在快递分拣的流程中,我尽可能将业务背景简化,让大家只关注并发问题本身。 分拣业务针对每个快递包裹都会生成一个任务,我们称它为 task。task 中有两个字段需要关注,一个是分拣中发生的异常(exp_type),另一个是分拣任务的状态(status)。另外,需要关注分拣状态上报接口,通过它来记录分拣过程中的异常和状态变更。 一般情况下,分拣机在分拣异常发生时会及时调用接

ci+junit5并发单测机制创新实践-编程思维

一. 现状·问题 针对现如今高并发场景的业务系统,“并发问题” 终归是必不可少的一类(占比接近10%),每次出现问题和事故后,需要耗费大量人力成本排查分析并修复。那如果能在事前尽可能避免岂不是很香? 二. 分析原因 当前并发测试多数依赖测试人员进行脚本测试,同时还依赖了研发和产品识别出并发操作的场景用例。 对于并发测试,大概两条路子: 所有修改同样数据的命令式接口都测一遍?【耗费巨大测试

5个高并发场景优化的衡量指标-编程思维

本文分享自华为云社区《【高并发】性能优化有哪些衡量指标?需要注意什么?》,作者: 冰 河 。 面试官:平时工作中有没有做过一些性能优化相关的工作呢? 首先,我们来分析下面试官的这个问题。其实,以我本人招聘面试的经验来说,如果面试官问出了这样的一个问题。本质上不只是想让面试者简单的回答:做过或者没做过。而是想通过这个简单的问题来考察下面试者的思考能力和对于问题的理解能力。面试官本质上是想让面试者通

jdk1.6在生产环境引起的坑-编程思维

本文分享自华为云社区《【高并发】记一次JDK1.6在生产环境引起的坑!》,作者: 冰 河 。 最近有朋友遇到一个困惑:他写的程序在测试环境一点问题没有,但是发到生产环境却会频繁出现内存溢出的情况。这个问题都困扰他一周多了。 后来在排查问题的过程中,我发现这位小伙伴使用的JDK还是1.6版本。开始,我也没想那么多,继续排查他写的代码,也没找出什么问题。但是一旦启动生产环境的程序,没过多久,JVM就

百亿规模京东实时浏览记录系统的设计与实现-编程思维

1. 系统介绍 浏览记录系统主要用来记录京东用户的实时浏览记录,并提供实时查询浏览数据的功能。在线用户访问一次商品详情页,浏览记录系统就会记录用户的一条浏览数据,并针对该浏览数据进行商品维度去重等一系列处理并存储。然后用户可以通过我的京东或其他入口查询用户的实时浏览商品记录,实时性可以达到毫秒级。目前本系统可以为京东每个用户提供最近200条的浏览记录查询展示。 2. 系统设计与实现 2.1 系统

高并发场景下,6种解决simpledateformat类的线程安全问题方法-编程思维

摘要:解决SimpleDateFormat类在高并发场景下的线程安全问题可以有多种方式,这里,就列举几个常用的方式供参考。 本文分享自华为云社区《【高并发】更正SimpleDateFormat类线程不安全问题分析的错误》,作者: 冰 河 。 解决SimpleDateFormat类在高并发场景下的线程安全问题可以有多种方式,这里,就列举几个常用的方式供参考,大家也可以在评论区给出更多的解决方案。

线程池使用小结-编程思维

转载请注明出处:   在Java中,Executors是一个线程池的工厂类,它可以创建不同类型的线程池。下面是几种常见的Executors线程池,以及它们的使用区别: FixedThreadPool:这种类型的线程池有一个固定的线程数量,一旦线程池中的全部线程都在处理任务,那么后续提交的任务将会等待。如果应用程序需要限制线程数量,以便于限制系统资源的使用总量,适用于大量耗时较长的任务。

学了这么久的高并发编程,连java中的并发原子类都不知道?-编程思维

摘要:保证线程安全是 Java 并发编程必须要解决的重要问题,本文和大家聊聊Java中的并发原子类,看它如何确保多线程的数据一致性。 本文分享自华为云社区《学了这么久的高并发编程,连Java中的并发原子类都不知道?这也太Low了吧》,作者:冰 河。 今天我们一起来聊聊Java中的并发原子类。在 java.util.concurrent.atomic包下有很多支持并发的原子类,某种程度上,我们可以

6步带你用spring boot开发出商城高并发秒杀系统-编程思维

摘要:本博客将介绍如何使用 Spring Boot 实现一个简单的商城秒杀系统,并通过使用 Redis 和 MySQL 来增强其性能和可靠性。 本文分享自华为云社区《Spring Boot实现商城高并发秒杀案例》,作者:林欣。 随着经济的发展和人们消费观念的转变,电子商务逐渐成为人们购物的主要方式之一。高并发是电子商务网站面临的一个重要挑战。本博客将介绍如何使用 Spring Boot 实现一个

交易系统之数据库弱依赖解决方案-编程思维

作者:京东科技 杜晓玉 前言 数据库,交易系统中最核心依赖,数据持久化属于最核心服务。 随着互联网的普及,大流量高并发的场景越来越多,7*24的交易系统对高可用要求越来越高,同时在“数据为王”大环境下,交易数据最终通过数据库进行持久化存储,数据库成为整个系统最终重要服务,不能出一点问题,尤其核心P0系统哪怕瞬间的DB操作异常可能造成大量异常交易,可能产生致命的问题,所以核心系统弱依赖数据库都是必

5个高并发导致数仓资源类报错分析-编程思维

摘要:集群运行过程中,有时候会执行并发量比较高的业务场景,一些数据库没有为这种高并发作业配置合适的参数,会导致作业大量报错,这篇文章让你玩转并发作业。 本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】在线运维 - 高并发导致资源类报错分析解决》,作者:323老四。 集群运行过程中,有时候会执行并发量比较高的业务场景,一些数据库没有为这种高并发作业配置合适的参数,会导致作业大量报错

java原子操作保证方案-编程思维

引言 原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。通常所说的原子操作包括对非long和double型的primitive进行赋值,以及返回这两者之外的primitive。之所以要把它们排除在外是因为它们都比较大,而JVM的设计规范又没有要求读操作和赋值操作必须是原子操作(JVM可以试着去这么做,

java线程常见的几种方法-编程思维

线程常见的几种方法 标签(空格分隔): 多线程 Thread静态方法 1. Thread.sleep(misseconeds) 睡眠:当前线程暂停一段时间让给别的线程去运行。Sleep复活时间,根据你传入的睡眠时间而定,等到睡眠到规定的时间后,线程自动复活,它不会释放锁资源。 2. Thread.yield() 让当前正在执行线程停下来一下,把执行机会让给别的在等待的线程,自己回到等待的就绪队

java线程的park unpark方法-编程思维

标签(空格分隔): 多线程 park 和 unpark的使用 park和unpark并不是线程的方法,而是LockSupport的静态方法 暂停当前线程 LockSupport.park();//所在的线程调用 恢复某个线程的运行 LockSupport.unpark(暂停线程对象)//由另外的线程调用, park/unpark与wait/notify的区别 wait/notify必须在有