分布式
Static_lin
热爱技术热爱学习的程序猿
展开
-
学习分布式一致性协议:自己实现一个Raft算法
前言MIT6.824是麻省理工学院开设的一个很棒的分布式系统公开课程,课程的Schedule在这里 ,这门课程的学习方式主要是通过教授的 lecture 讲解、Paper阅读、FAQ答疑,以及实践lab来完成的,是一个学习理论知识,然后动手实践的过程,个人认为是很好的学习方式,而MIT6.824公开课让更多不是麻省理工的学生也能很好的学习分布式系统知识,免费学习MIT课程学到就是赚到!MIT6.824主要围绕以下4个lab进行学习lab1->MapReduce:实现一个MapReduce系统原创 2020-07-01 13:35:19 · 1549 阅读 · 3 评论 -
Reactive声明式响应式编程到底带给我们什么?
前言希望有reactive库的使用经验的小伙伴阅读,会比较有体会记得我第一次接触Reactive是在读一本知秋大佬写的RxJava书的时候,书名叫《Java编程方法论:响应式RxJava与代码设计实战》,这本书让我初识了Reactive的底层实现范式,如果有读过RxJava的源码就可以知道,其底层类似扩展了面向对象的设计模式 — 观察者模式,一个事件数据流从生产者发射,一个个消费者(观察者...原创 2020-05-04 10:10:06 · 2146 阅读 · 0 评论 -
从分布式CAP理论到分布式一致性协议
文章目录前言CAP理论分布式一致性协议协议的几个规则数据复制领导者选举如何保证一致性总结回答开篇前言在分布式开发中,我认为具备CAP理论与了解Raft、Zab等分布式一致性协议是十分有必要的,例如分布式锁的选择,你是选择Redis的主备集群(AP模型)还是选择ZK、etcd(CP模型)呢?关于分布式锁的文章 点击这里查看 ,如果不具备这些理论知识,我觉得是无法灵活选择且用好分布式锁的,不同业务...原创 2020-04-10 09:33:28 · 997 阅读 · 1 评论 -
从分布式理论到如何做一个生产级别的分布式锁
最全的分布式锁要点原创 2020-04-10 23:55:48 · 1680 阅读 · 0 评论 -
高性能MySQL优化要点整合
本篇文章为《高性能MySQL》一书的读书笔记,主要提取了几点在开发中会用到的高性能的做法与一些MySQL的介绍1. MySQL架构MySQL最重要、最与众不同的特性是它的存储引擎架构。这种架构的设计将查询处理及其他系统任务和数据的存储/提取相分离。此时可以根据性能、特性以及其他需求来定制化数据存储的方式(存储引擎)1.1 MySQL逻辑架构[外链图片转存失败,源站可能有防盗链机制,...原创 2019-11-09 20:05:44 · 394 阅读 · 0 评论 -
分析FastJSON为何那么快与字节码增强技术揭秘
文章目录前言1. FastJSON为什么这么快1.1 字符数组的处理1.1.1 减少容量检查1.1.2 减少内存分配开销1.2 序列化顺序输出1.3 使用ASM避免反射开销2. 自定义实现简易序列化工具2.1 ASM字节码增强总结前言JSON作为一种序列化协议,它有可读性强的特点,其越来越流行,越来越成为一个不同进程交换数据的序列化普遍使用的一个协议,其也不需要配置schama,JSON协议有...原创 2019-10-18 10:48:11 · 1693 阅读 · 3 评论 -
Netty之基于长度域的动态解码
文章目录前言基于长度域的动态解码器使用介绍源码分析丢弃模式前言这篇文章算是上篇文章 Netty解码器源码分析 的扩展篇 ,这里单独开一篇讲解这个特殊的解码器LengthFieldBasedFrameDecoder。首先,它有什么用呢?有什么应用场景吗?这边我举一个例子,dubbo底层使用了Netty做了服务间通信来完成远程调用,其中应用层协议使用了自定义dubbo协议[外链图片转存失败(i...原创 2019-07-06 20:11:22 · 1749 阅读 · 0 评论 -
Netty源码解析之解码器
文章目录前言解码器基石解决读半包问题具体解码器例子基于行分隔的解码器丢弃数据前言在前面,我们介绍了Netty的三大组件:服务端启动代码分析Reactor线程模型源码分析pipeline事件传播机制源码分析在这篇文章中,我们将介绍Netty中的通用基类的解码器ByteToMessageDecoder,在大部分的协议解码中,大量的使用了此基类来构造特定的解码器,可以说是大部分的解码器的...原创 2019-07-05 22:06:51 · 390 阅读 · 0 评论 -
Netty源码解析之pipeline传播事件机制
文章目录前言Pipeline初始化Pipeline数据结构传播事件头尾传播Context传播传播粒度传播事件从Pipeline传播从Context传播头节点Conetxt绑定channel激活时自动读写出数据尾节点Context兜底操作前言在分析过前两节(服务端启动、Reactor线程模型)之后,我们再来介绍一下,pipeline的传播机制。在前两篇的分析中,不断的出现了pipeline,出...原创 2019-07-05 14:26:35 · 1728 阅读 · 0 评论 -
Netty源码解析之Reactor线程模型
文章目录前言线程组的初始化发动机线程的初始化发动机启动select流程:轮询Channel上的事件selector空轮询BUGprocessSelectedKeys:处理事件服务端Channel处理事件一个新连接到服务端之后会发生什么事?客户端Channel处理事件runAllTasks:运行所有任务拿到定时任务执行任务Reactor线程模型前言个人认为,Netty中最核心的就是它的线程模型了...原创 2019-07-04 23:00:11 · 465 阅读 · 0 评论 -
Netty学习笔记(前言)
文章目录什么是Netty?NIO与BIO的对比BIO的劣势NIO的优势为什么要学习Netty?Netty大纲什么是Netty?在Netty官网有这么一句话:Netty is an asynchronous event-driven network application frameworkfor rapid development of maintainable high perform...原创 2019-06-29 16:05:26 · 387 阅读 · 0 评论 -
Netty源码解析之服务端启动
文章目录前言Sample引导类的启动线程池的设置Channel的设置Hanlder的设置引导类正式启动channel的初始化与注册工作实例化Channel总结初始化Channel总结注册Channel总结channel绑定监听端口总结前言从本篇文章开始,将开启一系列的Netty源码分析。Netty的版本均基于4.1.37.Final作分析。Netty的各个版本的一些实现可能不同,但大致的思想...原创 2019-07-04 00:00:24 · 350 阅读 · 0 评论 -
Netty实现一个小应用服务器 +消息收发推送系统
文章目录1. Servlet容器1.1 介绍1.2 协议1.3 Servlet映射关系初始化1.4 HTTP协议的编解码1.5 服务端的启动1.6 请求的业务逻辑处理1.7 Servlet处理具体业务逻辑1.7.1 响应View(html页面)的Servlet1.7.2 响应RESTful API(JSON或简单文本)的Servlet1.8 测试使用情况2. 仿支付功能1.1 介绍1.2 协议与编...原创 2019-07-03 11:03:14 · 1372 阅读 · 4 评论 -
分析Dubbo中的扩展机制
文章目录Dubbo SPI扩展机制示例源码分析IOC依赖注入机制包装类装饰Dubbo 自适应扩展机制自适应扩展介绍源码分析在dubbo框架中,Extension扩展机制可谓是一大设计亮点,此扩展机制贯穿了dubbo源码,几乎很多地方都有用到,例如配合dubbo的URL机制去动态选择类,可以做到在配置中动态选择,比如在dubbo中的registry,可以选择zk,可以选择redis,只需要在配置...原创 2019-06-12 22:39:08 · 1042 阅读 · 0 评论