背景最近在做一个项目(HttpDNS),简单说其中一个流程,客户端通过DNS协议构造好UDP包发给Akamai DNS Server,每个包都会带一个ID,做过网络通讯开发的同学应该都知道它的用处,把req和resp做关联映射,防止串包。那么在DNS协议里面有个限制,ID的大小不能超过65535,不然会报错误“DNS message ID 65536 is out of range”,那么ID只能
  • arick
  • 2020-06-02 16:43:41
Java不可重入锁和可重入锁理解最近正在阅读Java ReentrantLock源码,始终对可重入和不可重入概念理解不透彻,进行学习后记录在这里。基础知识Java多线程的wait()方法和notify()方法这两个方法是成对出现和使用的,要执行这两个方法,有一个前提就是,当前线程必须获其对象的monitor(俗称“锁”),否则会抛出IllegalMonitorStateException异常,所以
  • arick
  • 2019-09-24 22:08:31
rocketmq netty底层设计rocketmq底层网络使用的netty框架,类图如下 RecketMQ通信模块的顶层结构是RemotingServer和RemotingClient,分别对应通信的服务端和客户端首先看看RemotingServer 1 public interface RemotingServer extends RemotingService { 2 3 vo
  • arick
  • 2020-03-16 18:07:15
corePoolSize:核心池的大小,这个参数跟后面讲述的线程池的实现原理有非常大的关系。在创建了线程池后,默认情况下,线程池中并没有任何线程,而是等待有任务到来才创建线程去执行任务,除非调用了prestartAllCoreThreads()或者prestartCoreThread()方法,从这2个方法的名字就可以看出,是预创建线程的意思,即在没有任务到来之前就创建corePoolSize个线程
  • arick
  • 2020-03-26 17:41:58
一、Hive 基本面试1、什么是 metastore2、metastore 安装方式有什么区别3、什么是 Managed Table 跟 External Table?4、什么时候使用 Managed Table 跟 External Table?5、hive 有哪些复合数据类型?6、hive 分区有什么好处?7、hive 分区跟分桶的区别8、hive 如何动态分区9、map join 优化手段1
  • admin
  • 2019-06-25 21:53:56
Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。即使是普通的服务器,Kafka也可以轻松支持每秒百万级的写入请求,超过了大部分的消息中间件,这种特性也使得Kafka在日志处理等海量数据场景广泛应用。针对Kafka的基准测试可以参考,Apache Kafka基准测试:每秒写入2百万(在三台廉价机器上
  • admin
  • 2019-06-24 23:28:47
CMS:以获取最短回收停顿时间为目标的收集器,基于并发“标记清理”实现过程:1、初始标记:独占PUC,仅标记GCroots能直接关联的对象2、并发标记:可以和用户线程并行执行,标记所有可达对象3、重新标记:独占CPU(STW),对并发标记阶段用户线程运行产生的垃圾对象进行标记修正4、并发清理:可以和用户线程并行执行,清理垃圾优点:并发,低停顿缺点:1、对CPU非常敏感:在并发阶段虽然不会导致用户线
  • admin
  • 2019-06-24 23:22:56
一、背景在做玩法钱包项目时,其中一个场景,在使用账户资金创建红包时,先要预先判断账户资金是否充足,如果充足则冻结这笔资金,再创建红包,如果创建红包失败要取消冻结资金。这就涉及到了两个应用中红包库和资金库的跨应用跨库事务的问题。本打算采取处理失败后使用metaq消息重试机制来做补偿,保证最终一致性。这种方式的好处是不引用新的中间件,对系统性能和吞吐量影响不大。但缺点也很明显,为了对数据进行补偿,针对
  • arick
  • 2020-05-06 23:01:18
本文基于Netty4.1展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目方面提供参考。Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。JDK 原生 NIO 程序的问题JDK 原生也有一套网络应用程序 API,但是存在一系列问题,主要如下:NIO 的类库和 API 繁杂,使用麻烦。你需要熟练
  • admin
虫子有个服务器,没多久磁盘空间就被撑爆了,为了定位问题,我需要查找服务器中占用体积最大文件。 像df、du 或 ncdu 这些命令只会显示当前目录的文件,并不会显示整个系统范围的文件。经过查找,看到了网友分享的如下四种命令组合方法。操作步骤使用Xshell等软件连接服务器,全选复制下方4种命令合集中的任意一种,粘贴至Xshell执行,稍等即可列出最大的10个文件的位置。虫子通过这种方法,最终定位到
  • arick
  • 2019-09-29 14:49:45
Rick ©2018