聊聊算法--堆的构建和调整

先提个问题,完全二叉树/满二叉树,区别?前者是指每一层都是紧凑靠左排列,最后一层可能未排满,后者是一种特殊的完全二叉树, 每层都是满的,即节点总数和深度满足N=(2^n) -1。堆Heap,一堆苹果,为了卖相好,越好看的越往上放,就是大顶堆;为了苹果堆 的稳定,质量越小越往上放,就是小顶堆;堆首先是 ... »

DevOps系列——Jenkins/Gitlab自动打包部署

前面只说了DevOps的两个基础组件Jenkins和GitLab,客官也不要着急,我们玩就玩的深入一点,Gitlab和Jenkins的各种配置和 插件很多,也够啃一阵子的,不要照着操作一通就感觉万事大吉了,多做些边缘测试,多玩点不一样的操作,那今天我们来点 实战整合加强训练。 作者原创文章,谢绝一切 ... »

聊聊算法——滑动窗口

有看到一句话,我深以为然:“所有算法的终极数据结构只有两种:数组和链表!”其他所有数据结构都是数组或链表的衍生品, 不管是树还是图或者栈,至于算法就最终都落到了这两种结构的操作上,滑动窗口也不例外!滑动窗口的应用场景还是很多的: HTTP的帧传输,滑动窗口限流算法、Flink中的滑动窗口等,今天,我 ... »

聊聊算法——回溯算法

“递归只应天上有,迭代还须在人间”,从这句话我们可以看出递归的精妙,确实厉害,递归是将问题规模逐渐减小, 然后再反推回去,但本质上是从最小的规模开始,直到目标值,思想就是数学归纳法,举个例子,求阶乘 N!=(N-1)!*N , 而迭代是数学中的极限思想,利用前次的结果,逐渐靠近目标值,迭代的过程中规 ... »

聊聊算法——BFS和DFS

如果面试字节跳动和腾讯,上来就是先撕算法,阿里就是会突然给你电话,而且不太在意是周末还是深夜, 别问我怎么知道的,想确认的可以亲自去试试。说到算法,直接力扣hard三百题也是可以的,但似乎会比较伤脑, 有没一些深入浅出系列呢,看了些经典的算法,发现其实很多算法是有框架的,今天就先说下很具代表的树 算 ... »

微服务通信方式——gRPC

微服务设计的原则是单一职责、轻量级通信、服务粒度适当,而说到服务通信,我们熟知的有MQ通信,还有REST、Dubbo和Thrift等,这次我来说说gRPC, 谷歌开发的一种数据交换格式,说不定哪天就需要上了呢,多学习总是件好事。 准备: Idea2019.03/Gradle6.0.1/Maven3. ... »

Dubbo学习系列之十八(Skywalking服务跟踪)

我们知道,微服务不是独立的存在,否则就不需要微服务这个架构了,那么当发起一次请求,如何知道这次请求的轨迹,或者说遇到响应缓慢、 请求出错的情况,我们该如何定位呢?这就涉及到APM(Application Performance Management)组件了,主流的选型有Zipkin、Pinpoint ... »

Spring优雅整合Redis缓存

“小明,多系统的session共享,怎么处理?”“Redis缓存啊!” “小明,我想实现一个简单的消息队列?”“Redis缓存啊!” “小明,分布式锁这玩意有什么方案?”“Redis缓存啊!” “小明,公司系统响应如蜗牛,咋整?”“Redis缓存啊!” 本着研究的精神,我们来分析下小明的第四个问题。 ... »

SOFARPC模式下的Consul注册中心

Consul大家不陌生,就是和Zookeeper、Nacos一伙的,能够作为微服务基础架构的注册中心,算是比较成熟的组件,和Springcloud集成顺滑, 考虑到Eureka已经停止更新,所以有必要了解下Consul,看看有啥不一样的风景。 准备: Idea2019.03/Maven3.6.3/G ... »

八种控制线程顺序的方法

各位看官,我去年路过陈家村时,听到大神们在讨论一些排序算法,比如猴子排序法、睡眠排序法等,猴子排序法就是给猴子一堆乱序的数, 让它自己玩,最后总有一个顺序是对的!睡眠排序法,按数的大小分配线程睡眠时间,数越大睡眠时间就越长,然后同时启动全部线程,按 先后输出排序即成!想想也不无道理,那我就展开说说睡 ... »

Dubbo学习系列之十七(微服务Soul网关)

论起微服务,哪能不谈网关,老将有Zuul,后继有Gateway,但这些都和SpringCloud关系密切,其他网关如Kong,因Lua原因,玩起来略不顺手。这不,就来了个Soul,我顺便拿来整进了我在写的项目中,感觉还行,也发现了些问题,表现有待观察,另一方面发现Soul资料略少,我就出点实例供看官 ... »

流式计算(三)-Flink Stream 篇一

​流的世界,有点乱,群雄逐鹿,流实在太多,看完这个马上又冒出一个,也不知哪个才是真正的牛,据说Flink是位重量级选手,能流计算,还能批处理,和其他伙伴关系也融洽的很,与HDFS/File/SQL/MQ往来都不在话下,今天我们就来实战一把。 环境:Idea2019.03/Gradle6.0.1/JD ... »

Dubbo学习系列之七(分布式订单ID方案)

既然选择,就注定风雨兼程! 开始吧! 准备:Idea201902/JDK11/ZK3.5.5/Gradle5.4.1/RabbitMQ3.7.13/Mysql8.0.11/Lombok0.26/Erlang21.2/postman7.5.0 难度:新手--战士--老兵--大师 目标:1,使用“雪花算 ... »

Dubbo学习系列之十六(ELK海量日志分析框架)

外卖公司如何匹配骑手和订单?淘宝如何进行商品推荐?或者读者兴趣匹配?还有海量数据存储搜索、实时日志分析、应用程序监控等场景,Elasticsearch或许可以提供一些思路,作为业界最具影响力的海量搜索与分析产品,搜索软件公司 Elastic 上市了!首日市值翻倍!Elastic 从小工具「逆袭」成为 ... »

Dubbo学习系列之十三(Mycat数据库代理)

软件界有只猫,不用我说,各位看官肯定知道是哪只,那就是大名鼎鼎的Tomcat,现在又来了一只猫,据说是位东方萌妹子,暂且认作Tom猫的表妹,本来叫OpencloudDB,后又改名为Mycat,或许Cat更亲切?那现在就来认识下这只小猫吧。 数据库的核心地位就不说了,但现在的问题是,各种RDB,... ... »