现如今大家在工作中使用比较多的就是微服务了,例如现在的spring cloud系列。在spring cloud系列里面目前比较流行的主要就是spring cloud netfix和spring cloud alibaba了。但是在这些微服务里面,服务之间的相互调用主要还是通过feign这种http的方式进行调用的。那么在一些大厂的宣讲会里面,大家应该都听过主要还是使用rpc来进行调用的。所以集合现在的云原生开发,我们来介绍下Grpc框架的使用。并且以Grpc框架来实现微服务之间的调用。
既然使用到了grpc,我们来看看grpc的整体框架形式:
在我们使用rpc框架的时候,一般大家建议的创建项目的形式是在主pom下,创建一个api的项目,再创建一个client项目,再创建一个server项目。那么整个的项目情况示例如下:
例如上面的代码module形式就是主项目下有:
client api server
一般我们在api的module层定义接口相关的信息,然后client及server端需要共享这个api的接口定义部分。
然后我们又来看看现在比较流行的领域模型。说到领域模型,我们来看看传统的经典三层架构,如下图:
那么相对于这个三层架构,领域驱动设计的分层架构是怎么样的呢? 如下图:
我们比较下两个图,可以看到领域驱动设计的分层架构吧原来的业务逻辑层转变成了应用层和领域层。
然后我们思路回到这个rpc上,是不是可以看到很好的参照:应用层就是rpc的client,领域层就是rpc的server。最后我们可以看到整个的服务框架调用形式如下:
1、前端js与应用层之间,使用http进行连接。 2、后端应用层与领域层使用rpc进行通信。
这个形式就差不多算是目前使用rpc框架做研发的整体思路。
目前来说,国内和国外相关的rpc框架非常多,但是由于我们在前面介绍的云原生相关的文章《云原生相关的文章》还没写完,写这里的文章主要也是为了辅助云原生相关的文章,因此这里我们使用谷歌开源的grpc来完成这里的rpc项目的的实战演示。
还没有评论,来说两句吧...