在语聊软件开发过程中我们可能会遇到各种各样的问题,但也总会找到各种各样的解决办法。就像为了应对高并发场景,语聊软件开发了分布式系统。但在分布式系统架构下,服务调用方式的选择也成为了一大难题。
一、服务调用的两种方式
1、RPC方式
主要是指远程函数调用,是一种同步的、可马上得到结果的、紧耦合的服务调用方式。为了减少RPC调用的耦合度,可以将多个微服务组合成一个完整功能的服务组合,再对外提供统一的服务接口。不过这样的服务组合共享价值不高,适用场景有限。
2、事件驱动方式
在语聊软件开发的分布式系统中,事件驱动方式有两种,分别是事件通知和事件溯源。
(1)事件通知:通过发送消息的方式将彼此不能直接调用的微服务进行合作,事件通知是一种微服务调用方式。
(2)事件溯源:将所有事件记录下来作为**存储层,并以其为基础构建程序,事件溯源是一种存储数据的方式。
二、耦合种类
在语聊软件开发过程中我们经常会谈及耦合问题,像RPC服务调用方式就是紧耦合,事件驱动方式就是松耦合,那在语聊软件开发中都有哪些耦合类型呢?这些耦合类型又有什么影响呢?
1、时间耦合
在时间耦合下语聊软件开发客户端和服务端必须同时上线才能工作,发消息时,接收消息队列必须运行,后台处理程序可以不运行。但对于大多数应用来说,要想立即得到回应,就得保证接收消息队列运行的同时,后台处理程序也在运行。
2、容量耦合
主要是指客户端和服务端的处理容量必须匹配。发消息时,见后台处理能力不足也能凭借消息队列实现缓冲,但对回复时间要求比较高,则消息队列中缓冲的作用就不大了。
3、接口耦合
RPC调用有函数标签,消息队列只有一个消息。
4、发送方式耦合
RPC是点对点方式,需要对方是谁才能进行服务调用,可以实现返回值的传回。
语聊软件开发会受到各种各样的因素影响,为了保证其开发效率需要提前掌握相关的知识点,只有这样才能在遇到问题时快速采取正确的方式应对。在保证语聊软件开发质量的同时提升语聊软件的开发效率,这并不是一件容易的事。