导读 | 通信即是连接
一、通信即是连接,事务与事务的交流就是通过通信传输的
【定义】 通信,指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递,从广义上指需要信息的双方或多方在不违背各自意愿的情况下采用任意方法,任意媒质,将信息从某方准确安全地传送到另方。
二、哪调用或交互都有哪些风格呢?
【什么是IPC】首先要了解什么是是IPC?
IPC(Inter-Process Communication,进程间通信)。重要就是理解IPC就是进程之间的相互通信。类似于上面图说的一样,我们可以把进程比拟一个个体,个体与个体是要相互交流的,没有交流个体也没有存在的意义了。
那再引申一下个体与个体交流都需要什么方式呢?拿咱们人类举例子说明,人与人交流要靠语言、文字、通过书信、邮件、电话、短信等方式进行表达交流。那同样服务与服务间交流通信也是要有具体的方式和机制的:
三、如何定义API
通常来说,使用 API 是更好的解决方式。API是服务与客户之间的契约。所以需要程序员使用一些接口定义语言interface definition language (IDL)准确定义服务API。
使用异步基于消息的通信模式,比如AMQP、STOMP。
当然,也可以,服务可以使用基于请求/响应的同步通信模式,比如基于Http的REST或者Thrift。
四、消息格式
这些通信模式有不同的消息格式,服务可以使用基于文本格式、方便阅读的JSON 或者 XML格式,也可以使用效率更高的二进制格式(比如Avro或Protocol Buffers)。
如果你是要消息机制,API就由消息频道和消息类型组成;
如果你使用http,API就是由URLs以及request/response格式组成。
五、总结
微服务需要使用进程间通信的机制进行交互,当设计你的服务如何通信的时候,需要考虑。
【注明】:本文有一些文字和图引用了,世界著名的软件大师 Chris Richardson微服务系列博客中的内容。(这位大师写的微服务非常好,在此表示敬意)。
声明:文章属于个人原创,转载请注明文章出处