Nicksxs's Blog https://nicksxs.me/icon.png What hurts more, the pain of hard work or the pain of regret? 2020-07-19T13:49:39.193Z https://nicksxs.me/ Nicksxs Hexo 聊聊 RocketMQ 的 Broker 源码 https://nicksxs.me/2020/07/19/%E8%81%8A%E8%81%8A-RocketMQ-%E7%9A%84-Broker-%E6%BA%90%E7%A0%81/ 2020-07-19T13:48:48.000Z 2020-07-19T13:49:39.193Z <p>broker 的启动形式有点类似于 NameServer,都是服务类型的,跟 Consumer 差别比较大,</p> <p>首先是org.apache.rocketmq.broker.BrokerStartup中的 main 2020年中总结 https://nicksxs.me/2020/07/11/2020%E5%B9%B4%E4%B8%AD%E6%80%BB%E7%BB%93/ 2020-07-11T15:20:38.000Z 2020-07-11T15:21:22.299Z <p>很快2020 聊一下 RocketMQ 的 NameServer 源码 https://nicksxs.me/2020/07/05/%E8%81%8A%E4%B8%80%E4%B8%8B-RocketMQ-%E7%9A%84-NameServer-%E6%BA%90%E7%A0%81/ 2020-07-05T13:01:47.000Z 2020-07-05T13:03:29.036Z <p>前面介绍了,nameserver相当于dubbo的注册中心,用与管理broker,broker会在启动的时候注册到nameserver,并且会发送心跳给namaserver,nameserver负责保存活跃的broker,包括master和slave,同时保存topic和t 聊一下 RocketMQ 的 DefaultMQPushConsumer 源码 https://nicksxs.me/2020/06/26/%E8%81%8A%E4%B8%80%E4%B8%8B-RocketMQ-%E7%9A%84-Consumer/ 2020-06-26T14:21:20.000Z 2020-07-05T13:03:52.441Z <p>首先看下官方的小 demo</p> <figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span 介绍一下 RocketMQ https://nicksxs.me/2020/06/21/%E4%BB%8B%E7%BB%8D%E4%B8%80%E4%B8%8B-RocketMQ/ 2020-06-21T13:25:22.000Z 2020-06-21T13:35:12.826Z <p>说起消息队列一般Web后端做过一段时间开发的肯定会用过,在前司的时候用的是改良版的 NSQ,有点像 NOSQL 的简写版🙄,其实是个go 语言写的消息队列,<a href="https://github.com/nsqio/nsq" target="_blank" 聊聊一次 brew update 引发的血案 https://nicksxs.me/2020/06/13/%E8%81%8A%E8%81%8A%E4%B8%80%E6%AC%A1-brew-update-%E5%BC%95%E5%8F%91%E7%9A%84%E8%A1%80%E6%A1%88/ 2020-06-13T14:28:56.000Z 2020-06-13T14:31:35.522Z <p>熟悉我的人(谁熟悉你啊🙄)知道我以前写过 PHP,虽然现在在工作中没用到了,但是自己的一些小工具还是会用 PHP 来写,但是在 Mac 碰到了一个环境相关的问题,因为我也是个更新狂魔,用了 brew 之后因为 gfw 聊聊 Dubbo 的 SPI 续之自适应拓展 https://nicksxs.me/2020/06/06/%E8%81%8A%E8%81%8A-Dubbo-%E7%9A%84-SPI-%E7%BB%AD%E4%B9%8B%E8%87%AA%E9%80%82%E5%BA%94%E6%8B%93%E5%B1%95/ 2020-06-06T14:39:38.000Z 2020-06-06T14:48:09.324Z <h2 id="Adaptive"><a href="#Adaptive" class="headerlink" title="Adaptive"></a>Adaptive</h2><p>这个应该是 Dubbo SPI 聊聊 Dubbo 的 SPI https://nicksxs.me/2020/05/31/%E8%81%8A%E8%81%8A-Dubbo-%E7%9A%84-SPI/ 2020-05-31T13:06:13.000Z 2020-05-31T13:09:38.605Z <p>SPI全称是Service Provider Interface,咋眼看跟api是不是有点相似,api是application interface,这两个其实在某些方面有类似的地方,也有蛮大的区别,比如我们基于 dubbo 聊聊我刚学会的应用诊断方法 https://nicksxs.me/2020/05/22/%E8%81%8A%E8%81%8A%E6%88%91%E5%88%9A%E5%AD%A6%E4%BC%9A%E7%9A%84%E5%BA%94%E7%94%A8%E8%AF%8A%E6%96%AD%E6%96%B9%E6%B3%95/ 2020-05-22T15:26:50.000Z 2020-05-24T13:51:43.115Z <p>因为传说中的出身问题,我以前写的是PHP,在使用 swoole 之前,基本的应用调试手段就是简单粗暴的 var_dump,exit,对于单进程模型的 PHP 也是简单有效,技术栈换成 Java 之后,就变得没那么容易,一方面是需要编译,另一方面是一般都是基于 spring 聊聊我理解的分布式事务 https://nicksxs.me/2020/05/17/%E8%81%8A%E8%81%8A%E6%88%91%E7%90%86%E8%A7%A3%E7%9A%84%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1/ 2020-05-17T15:56:01.000Z 2020-05-24T14:18:43.082Z <p>前面说了mysql数据库的事务相关的,那事务是用来干嘛的,这里得补一下ACID,</p> <blockquote> <p><a href="https://zh.wikipedia.org/wiki/ACID" target="_blank" 聊聊 mysql 的 MVCC 续续篇之锁分析 https://nicksxs.me/2020/05/10/%E8%81%8A%E8%81%8A-mysql-%E7%9A%84-MVCC-%E7%BB%AD%E7%BB%AD%E7%AF%87%E4%B9%8B%E5%8A%A0%E9%94%81%E5%88%86%E6%9E%90/ 2020-05-10T01:55:10.000Z 2020-05-10T14:26:13.027Z <p>看完前面两篇水文之后,感觉不得不来分析下 mysql 的锁了,其实前面说到幻读的时候是有个前提没提到的,比如一个<code>select * from table1 where id = 1</code>这种查询语句其实是不会加传说中的锁的,当然这里是指在 RR 或者 聊聊 mysql 的 MVCC 续篇 https://nicksxs.me/2020/05/02/%E8%81%8A%E8%81%8A-mysql-%E7%9A%84-MVCC-%E7%BB%AD%E7%AF%87/ 2020-05-02T06:46:35.000Z 2020-05-03T14:26:29.291Z <p>上一篇聊了mysql 的 innodb 引擎基于 read view 实现的 mvcc 和事务隔离级别,可能有些细心的小伙伴会发现一些问题,第一个是在 RC 聊聊 mysql 的 MVCC https://nicksxs.me/2020/04/26/%E8%81%8A%E8%81%8A-mysql-%E7%9A%84-MVCC/ 2020-04-26T14:14:01.000Z 2020-05-02T11:46:21.370Z <p>很久以前,有位面试官问到,你知道 mysql 的事务隔离级别吗,“额 O__O …,不太清楚”,完了之后我就去网上找相关的文章,找到了这篇<a href="https://www.cnblogs.com/zhoujinyi/p/3437475.html" redis系列介绍八-淘汰策略 https://nicksxs.me/2020/04/18/redis%E7%B3%BB%E5%88%97%E4%BB%8B%E7%BB%8D%E5%85%AB/ 2020-04-18T15:23:41.000Z 2020-04-19T09:28:42.555Z <h3 id="LRU"><a href="#LRU" class="headerlink" title="LRU"></a>LRU</h3><p>说完了过期策略再说下淘汰策略,redis 使用的策略是近似的 lru 策略,为什么是近似的呢,先来看下什么是 lru,看下 redis系列介绍七-过期策略 https://nicksxs.me/2020/04/12/redis%E7%B3%BB%E5%88%97%E4%BB%8B%E7%BB%8D%E4%B8%83/ 2020-04-12T13:22:00.000Z 2020-04-12T14:57:42.769Z <p>这一篇不再是数据结构介绍了,大致的数据结构基本都介绍了,这一篇主要是查漏补缺,或者说讲一些重要且基本的概念,也可能是经常被忽略的,很多讲 redis 的系列文章可能都会忽略,学习 redis Comparator使用小记 https://nicksxs.me/2020/04/05/Comparator%E4%BD%BF%E7%94%A8%E5%B0%8F%E8%AE%B0/ 2020-04-05T13:41:41.000Z 2020-04-05T13:42:20.733Z <p>在Java8的stream之前,将对象进行排序的时候,可能需要对象实现Comparable接口,或者自己实现一个Comparator,</p> <p>比如这样子</p> <p>我的对象是Entity</p> <figure class="highlight docker使用中发现的echo命令的一个小技巧及其他 https://nicksxs.me/2020/03/29/echo%E5%91%BD%E4%BB%A4%E7%9A%84%E4%B8%80%E4%B8%AA%E5%B0%8F%E6%8A%80%E5%B7%A7/ 2020-03-29T13:48:50.000Z 2020-03-29T13:48:50.198Z <p>最近做 docker 系列,会经常进到 docker 内部,如上一篇介绍的,这些镜像一般都有用 ubuntu 或者alpine 这样的 Linux 系统作为底包,如果构建镜像的时候没有替换源的话,因为你懂的原因,在内部想编辑下东西要安装 vim docker比一般多一点的初学者介绍三 https://nicksxs.me/2020/03/21/docker%E6%AF%94%E4%B8%80%E8%88%AC%E5%A4%9A%E4%B8%80%E7%82%B9%E7%9A%84%E5%88%9D%E5%AD%A6%E8%80%85%E4%BB%8B%E7%BB%8D%E4%B8%89/ 2020-03-21T06:43:39.000Z 2020-03-21T08:19:01.533Z <h2 id="运行第一个-Dockerfile"><a href="#运行第一个-Dockerfile" class="headerlink" title="运行第一个 Dockerfile"></a>运行第一个 Dockerfile</h2><p>上一篇的 docker比一般多一点的初学者介绍二 https://nicksxs.me/2020/03/15/docker%E6%AF%94%E4%B8%80%E8%88%AC%E5%A4%9A%E4%B8%80%E7%82%B9%E7%9A%84%E5%88%9D%E5%AD%A6%E8%80%85%E4%BB%8B%E7%BB%8D%E4%BA%8C/ 2020-03-15T14:33:55.000Z 2020-03-16T14:16:28.120Z <h2 id="限制下-docker-的-cpu-使用率"><a href="#限制下-docker-的-cpu-使用率" class="headerlink" title="限制下 docker 的 cpu 使用率"></a>限制下 docker 的 cpu docker比一般多一点的初学者介绍 https://nicksxs.me/2020/03/08/docker%E6%AF%94%E4%B8%80%E8%88%AC%E5%A4%9A%E4%B8%80%E7%82%B9%E7%9A%84%E5%88%9D%E5%AD%A6%E8%80%85%E4%BB%8B%E7%BB%8D/ 2020-03-08T15:25:40.000Z 2020-03-15T12:25:02.990Z <p>因为最近想搭一个phabricator用来做看板和任务管理,一开始了解这个是Easy大大有在微博推荐过,后来苏洋也在群里和博客里说到了,看上去还不错的样子,因为主角是docker所以就不介绍太多,后面有机会写一下。</p> <p>docker最开始是之前在某位大佬的博客看到