为什么需要实现服务化架构:随着用户规模逐渐庞大,需求更加复杂,我们一定会对藕合在一个Web 容器中
的业务系统进行垂直化改造,以业务功能为维度拆分出多个子系统,这样做就是为了能够更清晰地规划和体现出每个子系统的职责,降低业务稠合,以及提升容错性。但是在多元化的业务需求下,子系统中一定会存在较多的共享业务,这些共享业务肯定会被重复建设,产生较多的冗余业务代码。而且,业务系统中数据库连接之类的底层资源必然会限制业务系统所允许横扩的节点数量,因为在横扩过程中,连接数是机器数的平方。除了共享业务重复建设和资源连接受限,还有一个不容忽视的问题,当业务做大时,技术团队的人员规模也开始膨胀,太多人共同维护一个系统肯定会坏事,尤其是那些“手潮”的同学,经常会导致SVN 中的版本冲突。因此为了避免这些问题,服务化架构( SOA )改造刻不容缓。
SOA好处:原本共享的业务被拆分,形成可复用的服务,可以在最大程度上避免共享业务的重复建设、资源连接瓶颈等问题出现
什么是微服务:所谓的微服务架构,从宏观上来看,无非就是细化了服务拆分过程中的粒度,粒度越细,业务稠合越小,容错性越好,并且后期扩展会越容易
RPC调用过程:·1、底层的网络通信协议处理。2、解决寻址问题。3、请求/响应过程中参数的序列化和反序列化工作。RPC 的本质就是屏蔽上述复杂的底层处理细节,让服务提供方和服务调用方都能够以一种极其简单的方式(甚至简单到就像是在实现一个本地方法和调用一个本地方法一样)