bjmayor 发布于 2021-08-29

区块链技术细节:哈希算法

区块链技术细节:哈希算法

本文来自《极客时间》,左耳听风 付费专栏。只有部分内容,我个人感觉讲的通俗易懂,摘抄下来慢慢品,更有意思的其实是评论内容,想看完整内容的请自行前往购买。

对于计算机来说,区块链就像一个单向链表,一个数据块中保存着三个信息。

  • 真正的数据。
  • 自己的地址(或是 ID)。
  • 前一个数据块的地址。

这样,通过追溯前一个块的地址,把所有的数据块存成了一条链。所以,我们叫其 BlockChain。如下图所示。

阅读全文 »

bjmayor 发布于 2021-08-29

区块链技术的本质

区块链技术的本质

本文来自《极客时间》,左耳听风 付费专栏。只有部分内容,我个人感觉讲的通俗易懂,摘抄下来慢慢品,更有意思的其实是评论内容,想看完整内容的请自行前往购买。

区块链技术的革命性

你一定看过太多的文章用各式各样的比喻来讲区块链技术是什么,以及为什么它是未来。在这里,我尝试用我的话来说明一下区块链技术的革命性。

说区块链必然要谈比特币,比特币是一种数字货币。但最令人叫绝的是,比特币号称有下面几个特性。

  • 去中心化。这意味着没有中心的服务器,不受某个人的控制,整个系统直接由用户端的电脑构成。这样的技术难度是非常大的,并不像手机 App 或是小网站一样,你想发布就发布,这需要有人来跟你一起玩。

  • 数据防篡改。所有交易记录全量保存,并公开给所有的人,而且还被加密和校验。并不是数据不能被篡改,而是数据被篡改的成本非常大。(有人借此说区块链的不可篡改可以解决人类的信任问题,这个并不一定。)

  • 固定的发行量。不会像国家中央银行那样乱印钞票,造成通货膨胀。

阅读全文 »

bjmayor 发布于 2021-08-29

微服务缓存原理与最佳实践

微服务缓存原理与最佳实践

[TOC]

为什么需要缓存?

先从一个老生常谈的问题开始谈起:我们的程序是如何运行起来的?

  1. 程序存储在 disk
  2. 程序是运行在 RAM 之中,也就是我们所说的 main memory
  3. 程序的计算逻辑在 CPU 中执行

阅读全文 »

bjmayor 发布于 2021-08-29

如何让gRPC具备微服务治理能力

如何让gRPC具备微服务治理能力

[TOC]

近期比较火的开源项目go-zero是一个集成了各种工程实践的包含了Web和RPC协议的功能完善的微服务框架,今天我们就一起来分析一下其中的RPC部分zRPC。

zRPC底层依赖gRPC,内置了服务注册、负载均衡、拦截器等模块,其中还包括自适应降载,自适应熔断,限流等微服务治理方案,是一个简单易用的可直接用于生产的企业级RPC框架。

阅读全文 »

bjmayor 发布于 2021-08-29

基于gRPC的注册发现与负载均衡的原理和实战

基于gRPC的注册发现与负载均衡的原理和实战

[TOC]

gRPC是一个现代的、高性能、开源的和语言无关的通用RPC框架,基于HTTP2协议设计,序列化使用PB(Protocol Buffer),PB是一种语言无关的高性能序列化框架,基于HTTP2+PB保证了的高性能。go-zero是一个开源的微服务框架,支持http和rpc协议,其中rpc底层依赖gRPC,本文会结合gRPC和go-zero源码从实战的角度和大家一起分析下服务注册与发现和负载均衡的实现原理。

阅读全文 »

bjmayor 发布于 2021-08-29

熔断原理与实现Golang版

熔断原理与实现Golang版

[TOC]

在微服务中服务间依赖非常常见,比如评论服务依赖审核服务而审核服务又依赖反垃圾服务,当评论服务调用审核服务时,审核服务又调用反垃圾服务,而这时反垃圾服务超时了,由于审核服务依赖反垃圾服务,反垃圾服务超时导致审核服务逻辑一直等待,而这个时候评论服务又在一直调用审核服务,审核服务就有可能因为堆积了大量请求而导致服务宕机

阅读全文 »