分布式系统基础学习(04)--Nginx

Nginx不管是在单机部署还是在集群部署下, 都起着非常重要的作用。 底层由C语言编写, 并且采用事件驱动模型对Socket连接进行管理, 所以有着非常高效的请求处理能力, 并且支持海量的并发。 本篇文章不会对Nginx的底层原理进行深究, 而是整理自己在工作中所遇到的一些问题和积累的经验。 »

分布式系统基础学习(03)--消息队列(RabbitMQ)

消息队列常常被用于跨进程通信, 异步调用, 系统解耦以及流量削峰等场景下。 目前市场上的消息队列种类繁多, 有LinkedIn开源的kafka, 阿里开源的RocketMQ, 以及使用较为广泛的RabbiMQ。 Redis虽然也可以做消息队列, 但是更多的是用来做缓存和其它工具使用。 但是随着Redis 5.0 版本的发布, Redis的功能越来越丰富, 也不排除在未来的某一天也能够占据消息队列的重要一席。 »

分布式系统基础学习(02)--应用间通信(gRPC)

我始终认为, 随着语言和计算机技术的发展, 分布式系统才是互联网技术的未来。 而现在众多的分布式开源技术, 如Zookeper, SpringCloud等的蓬勃发展也证明这一点。 在分布式的系统中, A服务可能由Java编写, B服务可能由Python编写, C服务可能由PHP编写, 服务于服务之间的通信固然可以使用HTTP协议以RESTful-API的方式进行通信, 但是由于许多不必要的数据传输, 例如HTTP请求头, 会降低服务之间的通信速度, 在高并发的场景下极有可能成为系统瓶颈。 所以, 就有了RPC通信机制。 »

分布式系统基础学习(01)--通信(TCP/UDP)

分布式系统是一个很庞大的话题, 在我个人的知识版图中, 也仅仅只是对一小部分土地进行了开荒。 不管是分布式系统, 还是单机应用系统, 都是建立在互联网通信机制之上的。 而提到通信, 就不得不提到TCP/UDP这两个非常经典的协议。 »