
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发技术,而本文我们就通过案例分析来简单了解一下,服务化编程开发应用分析。
1、服务化存在的优势
服务化后可做到资源隔离,互不影响,对调用方隐藏内部细节,可独立进行开发部署,提升开发效率;
相比组件化来说可维护性更好,服务化之后各个模块服务之间是解耦的,不管是调用其他服务的逻辑方法需要变动,还是三方提供的jar包需要升级,只需要该服务本身升级即可,只要接口协议不发生变化,调用了该服务的其他服务都不需要变动,维护起来非常的方便;
服务升级成本低且风险可控,不管依赖了该服务的系统有多少,我们只需要处理好这一个服务的升级,开发维护升级成本、测试验证的成本及运维的成本相对组件化来说都极大的降低,风险也小,在现在各类jar包安全问题频发需要及时升级修复的情景下,服务化的优势显得更为明显。
2、服务化存在的劣势
服务性能相对组件化来说较差一些,服务化拆分的越多,服务之间的相互调用越复杂,调用链路也会变的更长,服务之间的网络请求调用越多性能越差;
服务化后多服务多节点部署,会带来一些天然的分布式系统固有的问题,比如一致性、分布式事务处理等,另外就是节点变多、服务链路变长带来的服务整体稳定性下降问题等;
服务化后会增加更多的服务器资源成本,在服务调用链路上每独立化部署一个服务,为了确保服务性能,对应的就会增加原有服务相应的机器资源数量或者更多,服务拆分越细成本越高;
3、服务化适用的场景
那么哪些场景适合使用服务化的方式来部署呢?符合以下场景特点的建议使用服务化的方式:
针对自己系统内部的一些公共功能模块,如果涉及到了数据库层面的资源调用,建议使用服务化的方式提供,避免所有依赖该公共功能模块的服务都要配置维护对应的数据库资源信息,后面维护起来会非常痛苦,比如数据库变更、机房迁移等;
针对外部的系统服务调用,如果有很多内部系统都对外部服务有依赖,但是服务并发量较小对性能要求不高,服务调用链路变长影响也不大,对并发量和性能要求不高的业务通畅也不需要太多的服务器资源,这种情况下建议把对外部系统接口调用封装成独立的服务,当对外部系统调用逻辑发生变化或相关jar包升级场景下我们只需要升级这一个服务,不需要自己系统内部所有相关服务都升级。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。