软件开发与架构领域 -体系化知识分享

理清软件领域各种似是而非的概念,深刻理解本质

排序:
默认
按更新时间
按访问量

HyperLedger - 序列6 - X.509 与 五花八门的证书文件.crt/.cer./.pem/.key...

跟安全相关的领域,有各种专业名词:X.509,CSR,LDAP,CA,PKI,MSP。。以及五花八门的各种证书。初接触者往往会眼花缭乱,理不清楚这些东西之间的关系。 这1篇将在序列5的基础上,进一步介绍跟安全相关的各种内容。 3个核心概念 在序列5,介绍了证书的概念;同时,在比特币的序列,也...

2018-06-21 13:28:00

阅读数:136

评论数:0

带你一步步走入Paxos的世界 -- 序列4 -- Multi-Paxos

在前面的序列中,我们知道Basic Paxos可以用来确定1条日志。而Multi-Paxos就是针对每条日志都执行1个2PC的Paxos协议,从而确定多条日志,也就是一个日志流。有了日志流,就能基于日志流建立一个”复制状态机“模型。 有兴趣朋友可以关注公众号“架构之道与术”, 获取最新文章。 ...

2017-06-30 12:12:05

阅读数:771

评论数:0

带你一步步走入Paxos的世界 -- 序列3 -- Basic Paxos

在前面的序列2中,我们引出了Basic Paxos,其目的就是为了确定1条日志,1条日志对应到Basic Paxos里面就是一个value。 有兴趣朋友可以关注公众号“架构之道与术”, 获取最新文章。 或扫描如下二维码: 2个角色:Proposer和Acceptor 在前面的场景中,我...

2017-06-05 20:25:28

阅读数:714

评论数:5

带你一步步走入Paxos的世界 -- 序列2

在上一篇我们谈到了复制日志的问题,每个node上面存储日志序列,node之间保证日志完全一样。 可能有人会疑问:为啥我要存储日志,直接存储最终的数据不就行了吗? 有兴趣朋友可以关注公众号“架构之道与术”, 获取最新文章。 或扫描如下二维码: 复制状态机 日志与状态机 我们可以把...

2017-06-01 21:46:18

阅读数:641

评论数:0

带你一步步走入Paxos的世界 -- 序列1

说起Paxos,很多人都知道,并且大家对它的看法基本都是“晦涩难懂”。除了Lamport那2篇鼎鼎大名的原生paper,网上文章也很多。但看来看去,总觉得“云山雾罩”,也不知道为什么要这么做,以及它到底能解决什么问题。 我觉得究其原因,一方面是很多Paxos的资料,都是在通过形式化的证明,去论证...

2017-06-01 18:53:06

阅读数:922

评论数:0

"分布式事务"解决方案汇总 -- 2PC/TCC/事务消息/1PC

说到分布式事务,网上的文章汗牛充栋,理论很多,实践也多。有的清晰的说明了问题,有些越看越糊涂。 之前我也写过一篇分布式事务的文章《分布式消息队列RocketMQ–事务消息–解决分布式事务的最佳实践》,里面主要讲了“事务消息”这1种解决方案的2种实现方式。本文将在那篇文章的基础上,把我认为的其他靠...

2017-05-10 13:56:40

阅读数:6994

评论数:0

DDD -- 领域驱动设计 -- 面向对象(OOA/OOD)的缺陷

OOA/OOD/OOP中,尤其是OOD/OOP,大家都不陌生,用了很多年。并且大部分人,都是从OOP开始,到了一定阶段,会再去接触OOD, 之后是OOA。 这样用久了,自然而然会觉得“面向对象”是天经地义的,不太会去想面向对象有什么问题所在。 而DDD里面,就很明确的指出了面向对象的2个问题,...

2017-05-08 12:48:55

阅读数:1484

评论数:0

DDD -- 领域驱动设计 -- 到底啥叫“建模”?

在软件领域,说到“建模”,就会蹦出各种各样的名词:面向对象建模、业务建模、领域建模、UML建模、ER实体建模、4色建模法、DCI。。 这些方法之间有区别,又互相有交叉;有的比较新,有的是以前的老方法。混在一起,很容易让人”云山雾罩“,讲来讲去,不知所云。 然后学的人,很容易照葫芦画瓢,画各种看...

2017-05-08 12:17:59

阅读数:1945

评论数:1

DDD -- 领域驱动设计 -- 6步成诗法

记得很多年以前读Evans的《领域驱动设计 – 软件复杂性核心应对之道》,那个时候DDD还很少人知道,更不用说实践了,这本书呢也在我的书柜里沉睡了很多年。而最近发现,不光传统重业务的软件公司,就连很多互联网公司也在推DDD。 然后呢,在不同地方听了一些DDD的分享,也看了一些DDD的博客,但整体...

2017-05-06 21:02:53

阅读数:3429

评论数:2

技术管理序列3 -- 技术的价值究竟何在?-- 价值模型

作为一个程序员,特别是有技术追求的程序员,最经常关注的就是:技术有多么牛,多么复杂,多么酷炫。。可当被问到你做的东西,有什么“价值”时,往往却很难说清楚。在这里,我想抛出这样一个终极问题:技术的价值到底是什么?我们都知道Github上有很多开源项目,那么这些项目的价值大小,是如何衡量的呢?下面有一...

2017-04-19 16:35:20

阅读数:738

评论数:0

技术管理系列2 -- 如何在一个团队塑造自己的影响力?

刚入职场时,大家都很青涩,能力也都差不多。然后几年之后,有的人升成了leader,负责更大的事情;有的人还在原地踏步,没有多大提升。影响一个人职业生涯的因素有很多,有公司业务问题,有运气问题,有跟的人/团队是不是靠谱的问题,有个人和领导性格是否合拍的问题。这些问题呢,很多超出了一个技术人的掌控范围...

2017-04-19 15:42:39

阅读数:792

评论数:8

技术管理序列1 -- “不确定性”&风险把控

作为一个程序员,在其职业生涯发展过程中,随着工作年限的增长,项目经验和技术能力会不断提升。而在这个过程中,都绕不开一个问题:技术管理。技术管理,说的通俗一点,就是你如何带领一个团队完成一次次的产品迭代,一个个的项目开发。这里面牵涉的东西很多很杂,包括研发、测试、运维、产品、项目管理、数据分析。。不...

2017-04-19 14:09:36

阅读数:794

评论数:0

Java并发编程 -- 再论锁的问题 -- 无锁与锁优化

在前面JUC源码分析和Disruptor分析序列中,我们已经反复讨论了锁与无锁的问题。众所周知,在多线程程序中,锁是性能杀手。因此“锁优化”一直是多线程中被频繁探讨的一个问题。本文将从“锁优化”这个应用层面,把前面的诸多东西串起来,探讨一下锁优化的一系列策略。策略1:业务和设计层面 – 单线程或去...

2017-01-20 19:04:59

阅读数:974

评论数:3

分布式消息队列RocketMQ源码分析之4 -- Consumer负载均衡与Kafka的Consumer负载均衡之不同点

在上1篇里,我们主要从使用层面介绍了Consumer的负载均衡机制。这一篇,我们将深入到源码内部,深入分析负载均衡的过程。 如果把RocketMQ的负载均衡和Kafka的对比一下,我们会发现有一些重要的不同之处。Kafka的负载均衡,参见: http://blog.csdn.net/chunl...

2017-01-20 13:31:35

阅读数:3400

评论数:0

分布式消息队列RocketMQ源码分析之3 -- Consumer负载均衡机制 -- Rebalance

同Kafka一样,RocketMQ也需要探讨一个问题:如何把一个topic的多个queue分摊给不同的consumer,也就是负载均衡问题。 有兴趣朋友可以关注公众号“架构之道与术”, 获取最新文章。 或扫描如下二维码: 在讨论这个问题之前,我们先看一下Client的整体架构。 Pro...

2017-01-17 17:35:44

阅读数:3306

评论数:0

分布式消息队列RocketMQ与Kafka架构上的巨大差异之2 -- CommitLog与ConsumeQueue

在前面Rocket与Kafka的对比之“拨乱反正”续篇中,我们已经提到了RocketMQ和Kafka在架构上面的一个巨大差异:Kafka是每个partition对应一个文件,而RocketMQ是把所有topic的所有queue的消息存储在一个文件里面,然后再分发给ConsumeQueue。 有兴...

2017-01-16 19:01:49

阅读数:3997

评论数:3

分布式消息队列Kafka & RocketMQ 深度学习资料精选

http://blog.csdn.net/a417930422/article/category/6086259 http://blog.csdn.net/lizhitao http://www.cnblogs.com/huxi2b http://blog.csdn.net/u0143939...

2017-01-13 13:09:40

阅读数:1892

评论数:0

分布式消息队列RocketMQ源码分析之2 -- Broker与NameServer心跳机制

我们知道,Kafka是通过ZK的临时节点来监测Broker的死亡的。当一个Broker挂了之后,ZK上面对应的临时节点被删除,同时其他Broker收到通知。 那么在RocketMQ中,对应的NameServer是如何判断一个Broker的死亡呢? 有兴趣朋友可以关注公众号“架构之道与术”, 获...

2017-01-12 18:34:05

阅读数:1683

评论数:0

分布式消息队列RocketMQ源码分析之1 -- Topic路由数据结构解析 -- topicRoute与topicPublishInfo与queueId

在前1篇RokcetMQ与Kafka架构差异一文中,我们已经讨论了2者在Topic的路由结构,也即topic/partition与物理机器的映射关系上的巨大差异。这个差异也是2者在架构上的一个巨大差异点,也是导致RocketMQ可以去除ZK依赖的一个重要原因。 本篇将接着这个话题,进一步从源码角...

2017-01-12 12:55:06

阅读数:4417

评论数:1

分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?

我们知道,在早期的RocketMQ版本中,是有依赖ZK的。而现在的版本中,是去掉了对ZK的依赖,转而使用自己开发的NameSrv。 并且这个NameSrv是无状态的,你可以随意的部署多台,其代码也非常简单,非常轻量。 那不禁要问了:ZooKeeper是业界用来管理集群的一个非常常用的中间件,比...

2017-01-04 13:24:00

阅读数:14719

评论数:9

提示
确定要删除当前文章?
取消 删除
关闭
关闭