微服务与分布式面试题
什么是RPC远程调用?
RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。
它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即无论是调用本地接口/服务的还是远程的接口/服务,本质上编写的调用代码基本相同。
比如两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数或者方法,由于不在一个内存空间,不能直接调用,这时候需要通过就可以应用RPC框架的实现来解决
什么是SOA?与SOAP区别是什么?
SOA是一种面向服务架构,是将相同业务逻辑抽取出来组成单独服务。
SOAP是WebService面向服务协议, 采用xml,因为比较中,现在不是特别流行。
什么是微服务架构
微服务架构师一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相
协调、互相配合没用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的同学机制互相沟通(通畅采用Http+restful API),每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生成环境、类生存环境等。另外,应尽量避免同一的、集中式服务管理机制。
微服务与SOA区别
SOA基于WebService和ESP实现,底层基于HTTP协议和使用XML方式传输,XML在网络传输过程中会产生大量冗余。微服务由SOA架构演变而来,继承了SOA架构的优点,同时对SOA架构缺点进行改善,数据传输采用JSON格式,相比于XML更轻量和快捷,粒度更细,更加便于敏捷开发。SOA数据库会存在共享,微服务提倡每个服务连接独立的数据库。