概述
服务之间通讯(进程间通信)有多种规范,通常设计到几个方面的问题:
通讯协议
最常用的有WebServices,http+restful方式等等。也有为了提高性能和效率特别定制的方式,比如:阿里的dubbo。
数据格式
数据格式可以认为对象的序列化方式,通常有:XML、json 或者专用的格式比如Dubbo,Protobuf, Thrift, Hessian 等等。
服务组册与发现
有很多成熟的解决方案,比如 spring cloud套件中eureka,ZooKeeper等等。
先腾框架中服务
先腾框架完全基于spring 开发,可以无缝的迁移到spring boot 和 spring cloud中,所以服务框架可以使用 spring cloud的套件。但是我们时常碰到的政府业务,其功能比较复杂需要划分很多服务单独开发,但是这些服务的访问压力并不大,所以绝大多数情况下服务都只启动一个实例,如果引入微服务架构运维服务压力将会大增,并且没有必要。先腾框架引入了一个服务调用的方式,其解决:
- 服务之间调用http+restful+json的方式。
- 服务之间用户认证的方式。
先腾提供的所有服务组件,比如:文件服务、工作流服务都提供一个基于这个appClient开发的client包用于直接访问这个服务。