暂时未有相关云产品技术能力~
暂无个人介绍
大家好,我是楼仔! MySQL 主从一直是面试常客,里面的知识点虽然基础,但是能回答全的同学不多。 比如我之前面试小米,就被问到过主从复制的原理,以及主从延迟的解决方案,你之前面试,有遇到过哪些 MySQL 主从的问题呢?
大家好,我是楼仔! 去年倒腾了一个半月,写过一篇 DDD 的文章,当时没有推广,完全自嗨,为了不让这篇好文被埋没,现重新整理,突出重点,可读性更强!
大家好,我是楼仔! 去年倒腾了一个半月,写过一篇 DDD 的文章,当时没有推广,完全自嗨,为了不让这篇好文被埋没,现重新整理,突出重点,可读性更强!
大家好,我是楼仔! 今天写的这个主题内容,其实非常基础,但是作为高并发非常重要的几个场景,绝对绕不开,估计大家面试时,也经常会遇到。 这个主题的文章,网上非常多,本来想直接转载一篇,但是感觉没有合适的,要么文章不够精炼,要么就是精简过头,所以还是自己写一篇吧。 内容虽然基础,但我还是秉承以往的写作风格,参考众多优秀的博客后,打算写一篇能通俗易懂,又不失全面的文章。
常用的消息队列主要这 4 种,分别为 Kafka、RabbitMQ、RocketMQ 和 ActiveMQ,主要介绍前三,不BB,上思维导图!
之前也看了很多相关的文章,但是感觉讲的都不好,很多文章都会去讲各种策略,比如(旁路缓存)策略、(读穿 / 写穿)策略和(写回)策略等,感觉意义真的不大,然后有的文章也只讲了部分情况,也没有告诉最优解。
这篇文章,会先讲述 @Transactional 的 4 种不生效的 Case,然后再通过源码解读,分析 @Transactional 的执行原理,以及部分 Case 不生效的真正原因。
Raft 是一种更为简单方便易于理解的分布式算法,主要解决了分布式中的一致性问题。相比传统的 Paxos 算法,Raft 将大量的计算问题分解成为了一些简单的相对独立的子问题,并有着和 Multi-Paxos 同样的性能,下面我们通过动图,以后还原 Raft 内部原理。
那我们是否有一种方法,可以让任务在多机同时执行,然后又可以避免多机同时处理相同数据的问题呢?这里给大家介绍一种多机分片的方式,也是最近在公司Get到的新技能。
敏捷开发的文章,我之前也写过,不过那是为了应付领导用的,写的忒死板,现在打算重新给大家写一篇,应该是我关于项目管理方面的最后一篇,是不是要祭奠一下~~
学完注册中心,再看配置中心这块,感觉简单很多,因为很多知识原理是相辅相成的
经过近2周的学习,原来注册中心除了ETCD和Zookeeper,常用的还有Eureka、Nacos、Consul,下面我们就对这些常用的注册中心,初探它们的异同,便于后续技术选型。
经过近2周的学习,原来注册中心除了ETCD和Zookeeper,常用的还有Eureka、Nacos、Consul,下面我们就对这些常用的注册中心,初探它们的异同,便于后续技术选型。
JVM的学习轨迹,可以先通过该文章学习,然后对照《深入理解Java虚拟机》书籍把重点知识过一遍,最后最好能实战一下
JVM的学习轨迹,可以先通过该文章学习,然后对照《深入理解Java虚拟机》书籍把重点知识过一遍,最后最好能实战一下
JVM的学习轨迹,可以先通过该文章学习,然后对照《深入理解Java虚拟机》书籍把重点知识过一遍,最后最好能实战一下
注册中心主要有三种角色: • 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。 • 服务消费者(RPC Client):在启动时,向 Registry 订阅服务,把 Registry 返回的服务节点列表缓存在本地内存中,并与 RPC Sever 建立连接。 • 服务注册中心(Registry):用于保存 RPC Server 的注册信息,当 RPC Server 节点发生变更时,Registry 会同步变更,RPC Client 感知后会刷新本地 内存中缓存的服务节点列表。
RPC系列的文章是我去年写的,当时写的比较散,现在重新进行整理。对于想学习RPC框架的同学,通过这篇文章,让你知其然并知其所以然,便于以后技术选型
RPC系列的文章是我去年写的,当时写的比较散,现在重新进行整理。对于想学习RPC框架的同学,通过这篇文章,让你知其然并知其所以然,便于以后技术选型
RPC系列的文章是我去年写的,当时写的比较散,现在重新进行整理。对于想学习RPC框架的同学,通过这篇文章,让你知其然并知其所以然,便于以后技术选型
最开始学习设计模式,是读研期间,买了本最经典的《设计模式:可复用面向对象软件的基础》,风风火火搞起来,第一遍没看懂,又来一遍,23个设计模式,前后反复看了3遍,还做了笔记,后来。。。嗯嗯。。。好像全忘了
消息队列中间件重要吗?面试必问问题之一,你说重不重要。我有时会问同事,为啥你用RabbitMQ,不用Kafka,或者RocketMQ呢,他给我的回答“因为公司用的就是这个,大家都这么用”,如果你去面试,直接就被Pass,今天这篇文章,告诉你如何回答。 这篇文章纯理论,主要整理网络资料,肝了我整整一个月!文章依然延续上几篇的风格,很长,长到我只整理排版,手都整麻了。全文2.5万字,建议先收藏,后续面试、或者技术选型,再拿出来喵喵,不BB,上思维导图!
消息队列中间件重要吗?面试必问问题之一,你说重不重要。我有时会问同事,为啥你用RabbitMQ,不用Kafka,或者RocketMQ呢,他给我的回答“因为公司用的就是这个,大家都这么用”,如果你去面试,直接就被Pass,今天这篇文章,告诉你如何回答。 这篇文章纯理论,主要整理网络资料,肝了我整整一个月!文章依然延续上几篇的风格,很长,长到我只整理排版,手都整麻了。全文2.5万字,建议先收藏,后续面试、或者技术选型,再拿出来喵喵,不BB,上思维导图!
消息队列中间件重要吗?面试必问问题之一,你说重不重要。我有时会问同事,为啥你用RabbitMQ,不用Kafka,或者RocketMQ呢,他给我的回答“因为公司用的就是这个,大家都这么用”,如果你去面试,直接就被Pass,今天这篇文章,告诉你如何回答。 这篇文章纯理论,主要整理网络资料,肝了我整整一个月!文章依然延续上几篇的风格,很长,长到我只整理排版,手都整麻了。全文2.5万字,建议先收藏,后续面试、或者技术选型,再拿出来喵喵,不BB,上思维导图!
常见的消息队列很多,主要包括RabbitMQ、Kafka、RocketMQ和ActiveMQ。这篇文章只讲RabbitMQ,属于基础入门篇,但是肯定不Low,太Low的文章我也不会写。 如果你是RabbitMQ大牛,这篇文章不适合你,如果你对RabbitMQ只停留在使用,或者初步了解,甚至完全不了解,这篇文章对你来说就非常适用。
常见的消息队列很多,主要包括RabbitMQ、Kafka、RocketMQ和ActiveMQ。这篇文章只讲RabbitMQ,属于基础入门篇,但是肯定不Low,太Low的文章我也不会写。 如果你是RabbitMQ大牛,这篇文章不适合你,如果你对RabbitMQ只停留在使用,或者初步了解,甚至完全不了解,这篇文章对你来说就非常适用。
常见的消息队列很多,主要包括RabbitMQ、Kafka、RocketMQ和ActiveMQ。这篇文章只讲RabbitMQ,属于基础入门篇,但是肯定不Low,太Low的文章我也不会写。 如果你是RabbitMQ大牛,这篇文章不适合你,如果你对RabbitMQ只停留在使用,或者初步了解,甚至完全不了解,这篇文章对你来说就非常适用。
高能预警,本文是我今年年初写了,当时花了一个月时间,所以内容会比较长,其中的Raft协议非常硬核,由于当时对文章排版不熟练,所以可读性不高,现在对文章重新整理,提炼了比较核心的内容。
高能预警,本文是我今年年初写了,当时花了一个月时间,所以内容会比较长,其中的Raft协议非常硬核,由于当时对文章排版不熟练,所以可读性不高,现在对文章重新整理,提炼了比较核心的内容。
高能预警,本文是我今年年初写了,当时花了一个月时间,所以内容会比较长,其中的Raft协议非常硬核,由于当时对文章排版不熟练,所以可读性不高,现在对文章重新整理,提炼了比较核心的内容。
学习DDD一个半月,最开始学习DDD的原因是因为我负责的业务线,涉及的系统非常多,想借鉴领域驱动设计的思想,看后续如何对系统进行重构。在没有学习DDD之前,感觉DDD可能属于那种“虚头巴脑”的东西,学完DDD之后,感觉。。。嗯。。。真香!
在前面的《一文带你学习DDD,全是干货!》文章中,里面讲述了一个Demo,虽然有DDD的思想,但是感觉整体很乱,每一层都没有做好隔离,所以我参考小米内部的DDD脚手架,对这个Demo进行了重构,也就诞生了我这个版本,代码已经上传到GitHub中,大家可以自取:https://github.com/lml200701158/ddd-framework
Java代码写的其实不多,上周写List和Map的遍历,需要删除里面的元素时,直接就抛出异常,因为接触Java时间并不长,这种方式之前也很少使用,所以感觉这里肯定有坑,然后Java对List和Map的遍历方式也是五花八门,今天想花点时间研究了一下。
之前给自己立了一个Flag,也就是在12月底学完领域驱动设计,目前基础的知识都基本学完了,就差一个完整的Demo,打算还是通过两篇文章完善DDD的基础知识,等DDD的Demo写完后,在出1-2篇文章去讲解这个Demo,这个系列就结束了。 上一篇DDD的文章《一文带你学习DDD,全是干货!》,里面包含了DDD的重要基本概念,想学习DDD的同学,可以先看看这篇文章。
前两个月一直写PHP去了,感觉好久没有写Java代码,因为最近要重构公司的Java项目,又把Java捡起来。在写代码过程中,有一个点之前其实没太注意,差点踩一脚,就通过这篇文章简单记录一下。
说一下我为什么突然想学习DDD,这个肯定不是为了装X,也不是为了以后好跳槽,虽然转到人事团队也快3个月,由于之前一直做其它项目,所以现在才开始接触招聘相关的业务。因为招聘业务涉及的系统非常多,想借鉴领域驱动设计的思想,看后续如何对系统进行重构,这个就是我想学习DDD的主要原因。
说一下我为什么突然想学习DDD,这个肯定不是为了装X,也不是为了以后好跳槽,虽然转到人事团队也快3个月,由于之前一直做其它项目,所以现在才开始接触招聘相关的业务。因为招聘业务涉及的系统非常多,想借鉴领域驱动设计的思想,看后续如何对系统进行重构,这个就是我想学习DDD的主要原因。
目前也工作了很长时间,实际项目中其实还没有真正去使用过责任链模式,也没有看别人用过,所以感觉这个模式比较小众。 这篇文章没啥技术含量,纯粹写了个demo,记录一下这个模式的用法。
讲解Docker常用的命令。
Docker和K8s是我一直想学习的两个系列,之前在工作中虽然接触过相关知识,但是都不怎么深入,也不够系统,所以打算花2个月时间,把这两块内容补齐。 Docker是时下热门的容器技术,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种不同的计算机虚拟化技术,也有很多人会觉得,有了虚拟机,那为什么还要使用Docker呢?带着心里的一点点疑问,让我们一起来学习Docker吧。
我理解JVM应该属于Java高阶的知识,之前是通过博客学习这块知识,后来对照着《深入理解Java虚拟机》书籍把重点知识又过了一遍。经过大半个月的学习,我给出我学习的感受。
我理解JVM应该属于Java高阶的知识,之前是通过博客学习这块知识,后来对照着《深入理解Java虚拟机》书籍把重点知识又过了一遍。经过大半个月的学习,我给出我学习的感受。
这段时间因为要忙项目,有近2周没有更新文章了,现在项目的前期工作都准备完毕,今天开始进入正轨,也就稍有余力开始学习一些知识。
这篇文章是结合上一篇文章《【JVM系列4】JVM常用命令》来讲的,上一篇文章讲的是JVM一些常用的命令,但是通过命令的方式查看JVM的指标非常费劲,还是图形化工具香,如果在跟进线上机器的JVM问题时,可能还是离不开JVM命令。
JVM比较重要的知识,在前面三篇文章都将完了,GC日志在第一篇文章中也有所提及,这篇文章主要讲解JVM常用的命令,虽然jvm调优成熟的工具已经有很多,但是所有的工具几乎都是依赖于jdk的接口和底层的这些命令,研究这些命令的使用也让我们更能了解jvm构成和特性。 Sun JDK监控和故障处理命令有jps、jstat、jmap、jhat、jstack、jinfo,下面做一一介绍。
其实类的加载过程应该放到JVM的第一个系列,因为我接触JVM是从JVM内存结构开始,所以就先通过2篇文章完成这块内容的讲解。对于Java类的加载过程,我感觉里面的内容其实不多,也不那么重要,就把网上的资料简单整理了一下,作为了解即可。
上一篇文章《【JVM系列1】JVM内存结构》已经讲述了JVM的内存结构,其实这个讲解的并不全,只讲解了Java堆的部分,现在将其它部分也进行补充。
JVM系列应该属于Java高阶的内容,本来是想等Java基础知识积累一段时候之后再学习,但是因为工作中需要跟进线上问题,所以急需补充这块知识,本文主要是对学习的知识简单做个记录,然后再记录分析问题的过程。
上周五转岗到小米其它部门,第一件事情就是需要搭建环境,周围同事本来想用Intellij IDEA来搭建环境,但是都失败了,结果后来都用Eclipse,所以想自己倒腾一下,花了3个小时终于把环境搭建好了,特此记录一下。
主要讲述RabbitMQ常用的使用姿势。