摘要:
摘要 在上一篇文章中,我们聊了聊gRPC是怎么管理一条从Client到Server的连接的。 我们聊到了gRPC拥有Resolver,用来解析地址;拥有Balancer,用来做负载均衡。 在这一篇文章中,我们将从代码的角度来分析gRPC是怎么设计Resolver和Balancer的,并会从头到尾的梳 阅读全文
摘要:
1 写在前面 在这个系列的文章中,我们将会从源码的层面学习和理解gRPC。 整个系列的文章的计划大概是这样的:我们会先从客户端开始,沿着调用路径逐步分析到服务端,以模块为粒度进行学习,考虑这个模块是为了解决什么问题,然后思考gRPC应该怎么去解决这个问题。在分析完这部分的架构设计后,我们会在接下来的 阅读全文
摘要:
写在前面 无论是在你看各种中间件在IO方面的优化,还是在各种面试题中,IO模型都是占了举足轻重的地位。然而,什么同步阻塞,同步非阻塞,异步阻塞,异步非阻塞等等,都会让你晕头转向。当你Google这些区别,你总能查到各种各样的生活中的例子来帮助你理解,那一刻你懂了,但是回过头来好像又觉得差了点意思。 阅读全文
摘要:
摘要 在这篇文章中,主要是跟你介绍一下gRPC这个东西。 然后,我会创建一个简单的练习项目,作为gRPC的Hello World项目。 在这个项目中,只有很简单的一个RPC函数,用于说明gRPC的工作方式。 此外,我也会跟你分享一下我初次接触gRPC所遇到的一些坑,主要是在protocol buff 阅读全文
摘要:
摘要 在这一篇文章中,我将向你介绍消费者的一些参数。 这些参数影响了每次poll()请求的数据量,以及等待时间。 在这之后,我将向你介绍Kafka用来保证消费者扩展性以及可用性的设计——消费者组。 在消费者组的介绍中,我将重点放在了Rebalance的过程上,因为这是一个很重要又经常发生,还会导致消 阅读全文
摘要:
摘要 在这一篇的文章中,我将从Sarama的同步生产者和异步生产者怎么创建开始讲起,然后我将向你介绍生产者中的各个参数是什么,怎么使用。 然后我将从创建生产者的代码开始,按照代码的调用流程慢慢深入,直到发送消息并接收到响应。 这个过程跟上面的文章说到的kafka各个层次其实是有对应关系的。 1.如何 阅读全文
摘要:
摘要 在这篇文章中,我将从消息在Kafka中的物理存储方式讲起,介绍分区-日志段-日志的各个层次。 然后我将接着上一篇文章的内容,把消费者的内容展开讲一讲,区分消费者与消费者组,以及这么设计有什么用。 根据消费者的消费可能引发的问题,我将介绍Kafka中的位移主题,以及消费者要怎么提交位移到这个位移 阅读全文
摘要:
摘要 在本文中,我将从为什么需要消息队列开始讲起,举两个小例子,跟你聊聊目前消息队列的一些使用场景。 比如消息队列在复杂系统中的解耦,又比如消息队列在高并发下的场景如果让流量变得更平缓。 随后我会跟你介绍一下Kafka中的一些重要的名词,比如主题、Broker、分区等。 注意,Kafka不仅仅是消息 阅读全文
摘要:
1.摘要 在这篇文章中,我将介绍一下为什么需要虚拟化的环境。 然后我将介绍耳熟能详的虚拟化技术:虚拟机,并大致的介绍一下虚拟机的原理,希望能够让你知道虚拟机的优劣。 在之后,针对虚拟机存在的问题,引出Docker是怎么提高性能的。 最后,我将简单的介绍一下Docker中比较重要的三个概念,镜像、容器 阅读全文
摘要:
摘要 在这篇文章中,我将从MySQL为什么需要主从复制开始讲起,然后会提到MySQL复制的前提, 。 在这里会说明三种格式的 分别会有什么优缺点。 随后会讲到主从延迟方面的问题,我将从几个角度出发,提供一些可能造成延迟的思路。 1 为什么需要复制 MySQL内建的复制功能是构建大型,高性能应用程序的 阅读全文