流(stream)是怎么一回事

—— 对这个问题的思考来源于前几天对 Java Socket 编程的尝试,TCP 协议要求建立一个 Socket 连接(著名的三次握手)之后才能进行通信,而连接双方进行数据的发送与接受,都是通过对输入输出流的机制来完成的。

流的概念

流作为概念应该是语言无关的。文件IO流,Unix系统标准输入输出流,标准错误流(stdin, stdout, stderr),还有一开始提到的 TCP 流,还有一些 Web 后台技术(如Nodejs)对HTTP请求/响应流的抽象,都可以见到流的概念。…

通信协议——Http、TCP、UDP

TCP   HTTP   UDP:

 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务。

TCP   HTTP   UDP三者的关系:

TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。…

    

分布式系统的一致性探讨

随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在《初识分布式系统》一文中简单介绍了分布式的基本概念,本文将在上篇文章的基础上继续学习分布式的一致性问题。主要介绍分布式一致性的基本概念、重要性、一致性模型等。…

小米抢购限流峰值系统「大秒」架构解密

马利超

小米科技的系统研发与大数据工程师,2013年毕业于大连理工大学,毕业后有幸加入小米抢购系统团队,并参与了小米抢购系统开发、重构与调优。其人热爱技术,对分布式系统架构、高并发峰值系统、大数据领域、反作弊领域、搜索/广告/推荐系统有浓厚的兴趣。

整合的抢购限流峰值系统——「大秒」

2014年初,公司决定举办一场“米粉节”活动,全天6轮活动,多个国家、多款爆品同时参与抢购。业务场景将变得更加复杂,当天的并发压力也会有一个量级的提升,原有的抢购系统已经不能适应如此复杂的业务场景了。为此,小米网技术团队基于对 golang 应对高并发、大规模分布式系统能力的肯定,完全基于 golang,重新设计了抢购系统,也就是我们目前使用的抢购限流峰值系统——“大秒”。…

OpenResty的现状、趋势、使用及学习方法

我个人之前主要是用 Python 来完成开发工作,包括云查杀和反钓鱼系统,都是 Python 完成的。在 2011 年左右接触到 nginx 的 C Module 开发,被异步的高性能颠覆了三观,只是门槛太高,一直想找一个像 Python 一样简单,像 nginx C Module 一样高效的技术。
所以在 2012 年,得知 OpenResty 这个项目的时候,我就在企业安全一个新项目里面,使用它作为服务端的主要技术。…

当Unikernel遇上Docker,会发生什么?

在欧盟巴塞罗那举办的DockerCon大会上,Unikernel闪亮登场!到底什么是Unikernel,请阅读《到底什么是Unikernel?》。

作为闭幕黑科技主题keynote的一部分, Anil Madhavapeddy(MirageOS项目负责人),展示了如何像其他任何容器一样使用Unikernel。他先用Docker创建了一个Unikernel微服务,然后接着部署了一个真正的Web应用,数据库、Web服务和PHP代码运行在使用Rump Kernels构建的隔离的Unikernel微服务上。Docker像管理Linux容器一样管理Unikernel,但是不用再部署一个传统的操作系统!…