该文章收录于:https:github.comDayuMM2021Java无意中在网上看到这么一个问题,一个consumer订阅两个topic,其中一个topic消息过多堆积了,会影响另一个topic消费吗对于RocketMQ这种,看源码如何方便,于是乎我就开始找相应的源码,然后一顿思考先给大家上结论,看堵塞的原因,如果原因是生产者瞬时产生大量的消息,比如秒杀,导致的消息堆积,基本不会影响;如果是消费者出现故障,消费速度变得奇慢无比,那就会影响,...
2023-08-15 11:43:35 3096浏览 0点赞 0回复 0收藏
Rocketmq和kafka这两个消息队列大家应该都比较熟悉吧,哪怕不是很熟悉,应该也听说过的吧,你别告诉我,作为一个资深的程序员,你没听过这两门技术我之前使用这两个消息队列的时候就遇到一个很奇怪的问题,就是在kafka里面弄了比较多的topic,性能下降的速度贼快,不知道大家遇到过没,而同样的场景切换到消息队列rocketmq中,下降速度却没有那么快不熟悉这俩消息队列结构的朋友,一听这个肯定还是不太清楚的,今天我来给大家分...
2023-08-15 11:42:57 2204浏览 0点赞 0回复 0收藏
同志们好,今天带着大家一起来复习python中的基础问题,我们都知道python属于解释性语言,效率也就相对其它语言来说较低一些,这个较低只是运行稍微低些,但是呢,在很多场景买这些都是微不足道的凭借着语法的易于理解和学习,可以在短时间内完成更多工作,开发效率也会变得更高同时,python自带了各种现成的库,供我们在开发程序中使用,python也比较容易维护Python为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、...
2023-08-15 11:41:42 1988浏览 0点赞 0回复 0收藏
是这样的,我在学习rocketmq的时候遇到了一个奇怪的问题,就是同一个消费者组内的消费者订阅同一个主题topic,不同的tag的时候看到一个消息丢失的问题这个问题我也是向《RocketMQ技术内幕》一书的作者丁威大哥,然后他给我解释了我对于这个问题的困惑,我来给大家解释一下先给大家描述一下这个具体的内容两个一样的ConsumerGroup的Consumer订阅同一个Topic,但是是不同的tag,Consumer1订阅Topic的tag1,Consumer2订阅Topic的ta...
2023-08-15 11:41:14 1896浏览 0点赞 0回复 0收藏
Django是一个python开发者都比较熟悉的一个框架,这个属于web方向的开发框架,而且Django是属于大而全的,最出名的应该属于其全自动化的管理后台了,我们只需要使用ORM,做一些简单的对象定义,就可以自动生成对应的数据库的表结构,以及全功能的管理后台Django框架的特点功能较为完善,有着较高的开发效率,但是呢,性能扩展比较有限,采用Django的项目,在流量达到一定的规模之后,需要对其进行重构,才能够满足性能的要求,...
2023-08-15 11:40:16 1299浏览 0点赞 0回复 0收藏
这一篇要说的select、poll、epoll这三个的区别,大家对于IO多路复用都了解吧,这个问题也是面试官最最爱问的问题之一了操作系统在处理IO的时候,主要客源分为两个阶段:等待数据传递到IO设备IO设备将数据复制到用户空间userspace也就可以将上述过程简化理解为:等待数据到kernel内核区域kernel内核区域将数据复制到用户区域userspace,用户区域可以理解为JVM区域,即进程或者线程的缓冲区BIO这是属于最简单的同步阻塞IO模型当应...
2023-08-15 11:39:40 1967浏览 0点赞 0回复 0收藏
Netty是什么?Netty是一个利用Java的高级网络能力,隐藏其(JavaAPI)背后的复杂性而提供一个易于使用的NIO客户端服务端框架。它极大地简化并优化了TCP和UDP套接字服务器等网络编程,并且性能以及安全性等很多方面甚至都要更好。支持多种协议如FTP,SMTP,HTTP以及各种二进制和基于文本的传统协议。用官方的总结就是:Netty成功地找到了一种在不妥协可维护性和性能的情况下实现易于开发,性能,稳定性和灵活性的方法。为什么要用Ne...
2023-08-15 11:39:11 1992浏览 0点赞 0回复 0收藏
其实我的重点呢,是来和大家一起学习接下来的Netty篇然而嘞,这个Netty又不太合适直接讲,为啥呢,我们学习一门技术必须知道这门技术的由来的初衷是啥,对吧先来给大家简单的介绍一下Netty是什么Netty是一个提供异步事件驱动的网络应用程序框架,用以快速开发高性能、高可靠的网络服务器和客户端程序Netty简化了网络程序的开发,属于BIO、NIO、AIO的演变中的产物,属于一种NIO框架在我们平时使用的很多中间件中,很多底层通信都...
2023-08-15 11:37:25 1702浏览 0点赞 0回复 0收藏
这一篇的主题是零拷贝这个技术点!我们接下来从下面这几个问题的角度来给全方面分析零拷贝这个技术点,一边读不懂的同学,赶紧收藏,读多几遍就懂了还有还有,收藏起来,等以后忘记了或者快要面试的时候,可以逃出来熟悉熟悉毕竟,好记性不如烂笔头的嘞为什么要有DMA技术我们先来看一下在没有DMA技术之前的IO过程:1、CPU发出对应的指令到磁盘系统,然后返回2、磁盘系统收到指令,把数据放入到磁盘系统的内部缓冲区中,然后产生...
2023-08-15 11:36:34 1981浏览 0点赞 0回复 0收藏
既然看到一致性哈希了,那就必然有不一致性哈希,我们平时说的哈希算法都是不一致的哈希,这个不用多说了,大家都熟悉的不能再熟悉了说不熟悉的拉出去打一顿哈希一般都是将一个大数字取模然后分散到不同的桶里,假设我们只有两个桶,有2、3、4、5四个数字,那么模2分桶的结果就是:这时我们嫌桶太少要给哈希表扩容加了一个新桶,这时候所有的数字就需要模3来确定分在哪个桶里,结果就变成了:可以看到新加了一个桶后所有数字的...
2023-08-15 11:35:13 1261浏览 0点赞 0回复 0收藏
1、什么是线程池线程的创建和销毁是一个“重”操作,所以我们需要避免线程频繁地创建与销毁,因此我们需要缓存一批线程,让它们时刻准备着执行任务目标已经很清晰了,弄一个池子,里面存放约定数量的线程,这就是线程池,一种池化技术如果线程数太少无法充分利用CPU,太多的话由于上下文切换的消耗又得不偿失,所以我们需要评估系统所要承载的并发量和所执行任务的特性,得出大致需要多少个线程数才能充分利用CPU,因此需要控制...
2023-08-11 14:41:00 1721浏览 0点赞 0回复 0收藏
本文缘起于一位读者的提问:插入一条记录,导致唯一索引冲突,为什么会对主键的supremum记录加nextkey排他锁?我在MySQL8.0.32复现了问题,并调试了加锁流程,写下来和大家分享。了解完整的加锁流程,有助于我们更深入的理解InnoDB的记录锁,希望大家有收获。本文基于MySQL8.0.32源码,存储引擎为InnoDB。目录1.准备工作2.问题复现3.前置知识点:隐式锁4.流程分析○4.1插入记录到主键、唯一索引○4.2唯一索引记录加锁○4.3回滚...
2023-06-27 16:58:07 2388浏览 0点赞 0回复 0收藏
经常关注慢查询日志的读者,和Locktime应该算是老相识了,大家对这位老相识了解有多少呢?研究Locktime之前,我对它的了解,仅限于它表示锁等待时间。至于它包含哪些锁等待时间、怎么计算得到的,我并不清楚。所以,我一直有个困惑:为什么有些SQL执行时间很长,Locktime却很小(例如:0.001秒)今天我们就一起来看看,Locktime包含哪些锁等待时间、以及是怎么计算得到的?本文基于MySQL8.0.32源码,存储引擎为InnoDB。1.整体介...
2023-06-27 16:56:36 1840浏览 0点赞 0回复 0收藏
源码分析系列的第3篇文章,我们来聊聊MySQL是怎么判断一条记录是否匹配where条件的。本文内容基于MySQL8.0.32源码。目录1.准备工作2.整体介绍3.源码分析○3.1ExecuteIteratorQuery()○3.2FilterIterator::Read()○3.3compareintsigned()○3.4Argcomparator::compare()○3.5Itemfuncgt::valint()○3.6Itemcondand::valint()○3.7Itemfunceq::valint()○3.8Itemcondor::valint()4.总结正文1.准备工作创建测试表:CREATETABLEt1(id...
2023-06-27 16:52:50 2478浏览 0点赞 0回复 0收藏
我因为工作的关系经常会用到翻译软件。传统的翻译软件在我的印象里,翻译个简单的字词句还行,进行一整段文章英译中时,语言总不是特别通畅。但是总体不影响理解。之前我的开源站点大量的文档需要中译英时,我对比了大量的翻译软件,对翻译结果也进行了比对,最后用了业内口碑比较好的DeepL,但是即便是DeepL出来的结果,我也不是特别满意,不能无脑复制粘贴。所以后来我对英文的结果进行了大量的修改和润色。整个文档翻译工作...
2023-06-05 16:54:24 1.2w浏览 0点赞 0回复 0收藏
首先,我不是标题党。我确确实实受到了震撼。其次,我今天要写的也不是在chatGPT里面叫AI写什么冒泡排序,鸡兔同笼等网上都已有大量代码示例的问题。我知道chatGPT已经火出圈了,本人也试验过叫AI写一些简单的程序,太简单的基本上都能写对,稍微复杂点的也能介绍个大致思路,代码也能给出,但是很多都无法正常跑起来,也有一些逻辑性的错误。最多也只能用来参考下。虽然我觉得目前AI能理解一些人类的意图,能给出大致的实现代...
2023-06-05 16:53:41 2220浏览 0点赞 0回复 0收藏
作者刘川川来源新钛云服(ID:newtyun)转载请联系授权(微信ID:zlm935177782)概述在复杂的分布式系统中,通常有诸多依赖。如果一个应用不能对来自依赖的故障进行隔离的话,那应用本身就有可能被拖垮。通常在高流量的网站中,某个后端一旦发生延迟,就有可能在短时间内导致所有的应用资源耗尽。如:秒杀、618、双十一等场景,在某一时刻会有爆发式的网络流量进来,如果没有很好的网络流量限制,就会对整个服务产生影响,甚至...
2022-08-26 16:21:06 5184浏览 0点赞 0回复 0收藏
作者刘川川来源新钛云服(ID:newtyun)转载请联系授权(微信ID:zlm935177782)通过SentinelDashboard配置熔断SentinelDashboard可以设置三种不同的熔断模式:慢调用比例、异常比例、异常数,下面我们分别介绍:慢调用比例(SLOWREQUESTRATIO):选择以慢调用比例作为阈值,需要设置允许的慢调用RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数...
2022-08-26 16:20:39 5046浏览 0点赞 0回复 0收藏
作者季广乾翻译来源新钛云服(ID:newtyun)转载请联系授权(微信ID:zlm935177782)云原生对您的业务意味着什么从制造到运输再到零售,几乎每个行业的公司都在通过迁移到基于云的基础设施来支持他们的数字化转型。从本地软件到云服务的转变对于应用程序开发和部署,尤其是软件即服务(SaaS)应用程序来说,是一场革命性的变革。但是仅仅使用云还不够。您需要利用云原生应用程序,从它们提供的改进的敏捷性、可用性、可扩展性和整...
2022-08-26 16:20:03 4077浏览 0点赞 0回复 0收藏
作者祝祥来源新钛云服(ID:newtyun)转载请联系授权(微信ID:zlm935177782)介绍Kubernetes是一个开源容器编排平台,可帮助编排您的容器化应用程序。使用Kubernetes之后,无需担心应用程序的扩展和可用性。在将应用程序迁移到Kubernetes集群之前,集群需要拥有灾难恢复的高可用性,以及安全、可扩展和优化的特性。Kubernetes利用来自底层虚拟机或物理机的资源,然后由各个容器使用。最常见的资源是CPU和RAM,还有其他资源。如...
2022-08-15 19:41:49 5114浏览 0点赞 0回复 0收藏