追寻思考的“过程”,寻我所想

created by ShanSan

受传统提交规范和 Angular 约定的启发,让我们来解释语义化提交术语,并演示提交信息的实际示例。

许多项目决定以某种约定方式来标准化它们的提交信息。这种做法并不是新出现的,但在最近几年中越来越多地得到了应用。而且很可能您已经在某些项目中遇到过这样的提交消息。

最近读了波网络 I/O 相关的文章,做下总结、摘录。(未完)

经典 I/O 模型

  • 阻塞式 I/O(blocking I/O)

  • 非阻塞式 I/O(non-blocking I/O)

  • I/O 多路复用(I/O multiplexing)

  • 信号驱动式 I/O(signal driven I/O)

  • 异步 I/O(asynchronous I/O)

阻塞式 I/O 模型

对于阻塞式 I/O,以套接字(Socket)的输入操作为例。

  • 1、首先应用进程发起 I/O 系统调用后,应用进程阻塞,转到内核空间处理。
  • 2、之后,内核开始等待数据,等待数据到达之后,将内核中的数据拷贝到用户的缓冲区中,整个 I/O 处理完毕后返回进程。最后应用进程解除阻塞状态,处理数据。

前言

众所周知,开发低耦合系统是软件开发的终极目标之一。低耦合的系统更加容易扩展,低耦合的模块更加容易复用,更易于维护和管理。我们知道,消息队列的主要功能就是收发消息,但是它的作用不仅仅只是解决应用之间的通信问题这么简单。消息队列作为常用的中间件,经常被用来对系统解耦,对模块解耦。增强系统的可扩展性和模块的可复用性。

除了对用于对系统、模块解耦,消息队列还有以下几种通途:

  • 服务异步处理
  • 流量控制
  • 作为发布 / 订阅系统实现一个微服务级系统间的观察者模式
  • 连接流计算任务和数据
  • 用于将消息广播给大量接收者

事物的存在总会有对立的一面,引入消息队列可能会带来延迟问题、产生数据不一致的问题、增加系统复杂度的问题等等。