12 2019 档案
摘要:消息发送一致性 微服务架构下,需要通过网络进行通信,就自然引入了数据传输的不确定性,也就是CAP原理中的P-分区容错,而这里的消息发送一致性是可靠消息的保证。 生成消息的业务动作与消息发送的一致(e.g: 如果业务操作成功,那么由这个业务操作所产生的消息一定会成功投递出去,否则就丢失消息) 如上图,
阅读全文
摘要:1. 规避分布式事务——业务整合 业务整合方案主要采用将接口整合到本地执行的方法。拿问题场景来说,则可以将服务 A、B、C 整合为一个服务 D 给业务,这个服务 D 再通过转换为本地事务的方式,比如服务 D 包含本地服务和服务 E,而服务 E 是本地服务 A ~ C 的整合。 优点:解决(规避)了分
阅读全文
摘要:分布式事务协议 下面介绍几种实现分布式事务的协议。 两阶段提交协议 2PC 分布式系统的一个难点是如何保证架构下多个节点在进行事务性操作的时候保持一致性。为实现这个目的,二阶段提交算法的成立基于以下假设: 该分布式系统中,存在一个节点作为协调者(Coordinator),其他节点作为参与者(Coho
阅读全文
摘要:前言 不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。
阅读全文
摘要:go modules 是 golang 1.11 新加的特性。现在1.13 已经发布了,是时候用起来了。Modules官方定义为: 模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于G
阅读全文
摘要:GO111MODULE="off"GOARCH="amd64"GOBIN=""GOCACHE="/Users/js/Library/Caches/go-build"GOENV="/Users/js/Library/Application Support/go/env"GOEXE=""GOFLAGS=
阅读全文
摘要:GCC是一个功能强大的编译器,不仅可以编译我们很熟悉的C/C++,也可以做为Fortran、Pascal、Objective-C等语言的编译器。而GCCGO则是GCC专门用来编译Golang语言的。 GC,全称Golang Compiler,是Go语言官方编译器,也是自带的,通常我们使用的go bu
阅读全文
摘要:转自:51CTO博客作者曹林华,https://blog.51cto.com/13527416/2085258 业务介绍 什么是秒杀?通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 业务特点 瞬时并发量大 秒杀时会有大量用户在同一时间进行抢购,瞬时并发访问量突增 10 倍,甚至 100 倍
阅读全文
摘要:1.内因: A.api或数据结构使用不合理: 如:对一个包含上万元素的hash结构执行hgetall操作,数据量大且命令复杂度O(n),必然阻塞 B.慢查询:前面有介绍 C.大对象: 执行./redis-cli -h {ip} -p {port} --bigkeys命令可找出当前最大对象出来,接着便
阅读全文
摘要:一、微博核心业务图 二、微博的架构设计图 三、简述 先来看看Feed流中的一些概念: Feed:Feed流中的每一条状态或者消息都是Feed,比如微博中的一条微博就是一个Feed。 Feed流:持续更新并呈现给用户内容的信息流。每个人微博关注页等等都是一个Feed流。 Timeline:Timeli
阅读全文