摘要: 链接: https://pan.baidu.com/s/13_vrsb3qdGO4DowBRYZHqQ?pwd=7291 提取码: 7291 阅读全文
posted @ 2023-01-05 22:23 小汪哥写代码 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 前面几篇文章分享了kafka 相关的实现逻辑,kafka在大吞吐量方面有较好的表现,但是有时候我们需要实现比较复杂的业务逻辑从而对于吞吐量方面要求不是太高,这个时候我们就可以选择RocketMQ. 我们知道kafka 的性能非常好,吞吐量也非常大。Kafka单机写入 TPS 号称在百万条/秒;追求性 阅读全文
posted @ 2021-07-19 17:02 小汪哥写代码 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 前文了解了 RocketMQ消息存储的相关原理,本文将讲讲消息消费的过程及相关概念。 公众号回复:长轮询,获取测试代码 关于消息消费,消费者组这些概念,基本和kafka 是类似的,比如: 一个消费组内可以包含多个消费者,1个消费组可订阅多个主题。消费组之间有集群模式与广播模式两种。 集群模式下,主题 阅读全文
posted @ 2021-07-19 16:51 小汪哥写代码 阅读(509) 评论(0) 推荐(0) 编辑
摘要: 上一篇了解了RocketMQ消息发送,本文开始聊聊消息发送到Broker端后,消息存储相关的逻辑。 RocketMQ存储概要设计 — RocketMQ主要存储的文件包括commitlog文件、consumeQueue文件、IndexFile文件。 CommitLog是消息存储文件,所有消息主题的消息 阅读全文
posted @ 2021-07-15 19:25 小汪哥写代码 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 前言 在 JDK 版本的世界里,从来都是 Oracle 发他的新版本,我们继续用我们的老版本。 JDK7 用了 很久一段时间后,终于升级到JDK8。自从升级没多久,JDK 就开始了半年发一个新版本的节奏,陆续发布了 9 、10、11、12、13...直到今年3月16日,甲骨文正式发布 Java 16 阅读全文
posted @ 2021-05-27 17:14 小汪哥写代码 阅读(158) 评论(0) 推荐(0) 编辑
摘要: ThreadLoclc初衷是线程并发时,解决变量共享问题,但是由于过度设计,比如弱引用的和哈希碰撞,导致理解难度大、使用成本高,反而成为故障高发点,容易出现内存泄露,脏数据、贡献对象更新等问题。单从ThreadLoacl命名来看人们认为只要用它就对了,包治变量共享问题,然而并不是。一下以内存模型、弱 阅读全文
posted @ 2019-01-15 15:24 小汪哥写代码 阅读(1639) 评论(0) 推荐(0) 编辑
摘要: 在ThreadPoolExecutor的属性定义中频繁地用位移运算来表示线程池状态,位移运算是改变当前值的一种高效手段,包括左移和右移。下面从属性定义开始阅读ThreadPoolExecutor的源码。 第一处说明,线程池状态用高3位表示,其中包括了符号位。五种状态的十进制值按小道大依次排序为: R 阅读全文
posted @ 2019-01-09 14:47 小汪哥写代码 阅读(991) 评论(0) 推荐(0) 编辑
摘要: 1.线程池的好处。 线程使应用能够更加充分合理的协调利用cpu 、内存、网络、i/o等系统资源。 线程的创建需要开辟虚拟机栈,本地方法栈、程序计数器等线程私有的内存空间。 在线程的销毁时需要回收这些系统资源。频繁的创建和销毁线程会浪费大量的系统资源,增加并发编程的风险。 另外,在服务器负载过大的时候 阅读全文
posted @ 2019-01-06 23:09 小汪哥写代码 阅读(13445) 评论(0) 推荐(1) 编辑
摘要: 前言自 JPA 伴随 Java EE 5 发布以来,受到了各大厂商及开源社区的追捧,各种商用的和开源的 JPA 框架如雨后春笋般出现,为开发者提供了丰富的选择。它一改之前 EJB 2.x 中实体 Bean 笨重且难以使用的形象,充分吸收了在开源社区已经相对成熟的 ORM 思想。另外,它并不依赖于 E... 阅读全文
posted @ 2015-01-29 21:42 小汪哥写代码 阅读(138536) 评论(13) 推荐(16) 编辑
摘要: 动态作用域无论是with表达式还是try-catch表达式的catch子句,以及包含()的函数,都被认为是动态作用域。一个动态作用域只因为代码运行而存在。因此无法通过静态分析(查看代码机构)来确定(是否存在作用域)。例如:function execute(code) {(code);function subroutine(){return window;}var w = subroutine();//what value is w?};execute()函数看上去像一个动态作用域,因为它使用了()。w变量的值与code有关。大多数情况下,w将等价于全局变量window对象,但是请考虑如下情况: 阅读全文
posted @ 2014-01-25 23:37 小汪哥写代码 阅读(1787) 评论(0) 推荐(5) 编辑
摘要: 写在前面JavaScript在浏览器中的性能,可认为是开发者所要面对的最重要的可用性的问题,此问题因JavaScript的阻塞特征而复杂,也就是说JavaScript运行时其他的事情不能被浏览器处理,事实上,大多数浏览器使用单进程处理UI更新和JavaScript运行等多个任务,而同一时间只能有一个任务被执行。JavaScript运行了多长时间,那么浏览器空闲下来响应用户输入之前的等待时间就有多长。从基本层面说,这就意味着 6 7 8 9 10 11 Hello world!12 13 虽然这些代码看起来没什么问题,但是在〈head〉部分加载了三个JavaScript文件。每个〈scri... 阅读全文
posted @ 2014-01-10 21:28 小汪哥写代码 阅读(2567) 评论(2) 推荐(3) 编辑
摘要: 写在前面自从运用了.NET Remoting 之后,就想系统的学习下WCF,因为WCF是对现有分布式通信技术的整合。主要以 《WCF全面解析》 这本书为主,园子的资料和网上资料为辅,来学习下WCF,记录分享自己的理解,欢迎指点。了解SOA面向服务的体系结构(service-oriented architecture,SOA),面向服务 代表的是一种设计理念,和面向对象,面向组件一样,体现的是一种对观点进行分解的思想,面向服务和技术无关。web服务(广义的web服务,既包括微软平台下的ASP.NET .asmx web服务和WCF,也包括其他平台下的web服务)是实现SOA理想的技术手段,但实现 阅读全文
posted @ 2014-01-05 22:43 小汪哥写代码 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 前言项目中运用到.NET Remoting ,前段时间也看了下.NET Remoting的相关资料,感觉自己应该动手写个实例来梳理下对.NET Remoting认识和理解,不足的地方请大家指正。简单介绍,使用Visual Studio 2010 ,在.NET Framework 4.0框架下,开发的ASP.NET web 应用程序。使用IIS 7.5。基本构思结合自己再项目中的运用,构建如下解决方案。Buseniess:业务逻辑层MyInterface:接口,类似WCF中的契约NetRemotingWeb:表现层RemotingClient:客户端RemotingServer:服务端基本原理: 阅读全文
posted @ 2014-01-02 14:14 小汪哥写代码 阅读(4770) 评论(23) 推荐(2) 编辑
摘要: 动态生成雷达图--Radar效果图:aspx页面代码:1 2 3 4 因为是动态生成图,所以只需要一个容器装载(Panel);aspx.cs代码 1 [DirectMethod(Timeout = 2000000)]//限制执行超时时间 2 protected void ReloadData(object sender, DirectEventArgs e) 3 { 4 Dictionary> data = GenerateChartBySingleCorp(); 5 ResultP... 阅读全文
posted @ 2014-01-01 12:33 小汪哥写代码 阅读(2065) 评论(0) 推荐(1) 编辑
摘要: 写在前面从事码农这个行业已经有一段时间了,总在想人生的意义是什么,自己有什么价值,当然,这个问题我现在还是没有想明白。呵呵,这是一个哲学的问题。写博客,是一种自我总结,知识分享的过程,写的过程中能够巩固自己掌握的知识,同时也能提高自己的语言表达能力,培养自己敏捷清晰的思维能力。所以,马上到来的2014,我要坚持写博客,这里,算是给自己一个激励吧。以前混CSDN,随着阅历逐渐广泛,发现博客园才是码农的天堂。当然,CSDN也是一个优秀的平台,只是觉得博客园比较纯净,而且一些疑难问题,大部分是在这里找到答案。希望博客园能越办越好,把优质的传统继续发扬。回顾2013现在是2013-12-31 21:2 阅读全文
posted @ 2013-12-31 22:30 小汪哥写代码 阅读(1036) 评论(4) 推荐(0) 编辑
摘要: 前言 我们经常都会碰到延迟任务,定时任务这种需求。在网络连接的场景中,常常会出现一些超时控制。随着连接数量的增加,这些超时任务的数量往往也是很庞大的。实现对大量任务的超时管理并不是一个容易的事情。 几种定时任务的实现 java.util.Timer JDK 在 1.3 的时候引入了Timer数据结构 阅读全文
posted @ 2021-08-19 10:07 小汪哥写代码 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。例如在大型电商系统中,下单接口通常会扣减库存、减去优惠、生成订单 id, 而订单服务与库存、优惠、订单 id 都是不同的服务,下单接口的成功与否,不仅取决于本地的 db 操作,而且依赖第三方 阅读全文
posted @ 2021-07-27 15:21 小汪哥写代码 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 前言 你知道索引长什么样吗? 当磁盘剩余空间较小时,为什么我们加了索引会导致磁盘空间不足? 为什么多加了几个索引,mysql 插入和删除的效率反而下降了呢? 带着这些问题,我们开始今天的话题。 什么是索引? 索引(Index)是帮助数据库系统高效获取数据的数据结构,数据库索引本质上是以增加额外的写操 阅读全文
posted @ 2021-06-03 21:03 小汪哥写代码 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 前言 上篇《VARCHAR(M) 到底占用多少个字节?|mysql系列(2)》分享了VARCHAR(M) 占用多少个字节,那VARCHAR 最大能存多少个字符呢?以及了解这些对我们平时的开发工作中有什么帮助呢?那我们就要了解下存储引擎中是怎么来处理数据的。这里我们还是以InnoDB 为例。 Inno 阅读全文
posted @ 2021-05-30 13:17 小汪哥写代码 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 1 public V put(K key, V value) { 2 //t 表示当前节点,记住这个很重要!先把TreeMap 的根节点root 的引用赋值给当前节点 3 TreeMap.Entry t = root; 4 //如果当前节点为null ,即是空树,新增的KV 形成的节点就是根节点 5 if (t == nu... 阅读全文
posted @ 2019-01-28 18:46 小汪哥写代码 阅读(821) 评论(0) 推荐(0) 编辑