微服务拆分是为了解决问题,将服务拆分隔离使开发工作简单直接、排查问题有更强的针对性、迭代升级影响范围可控,节约维护系统运行人力成本。
01服务拆分的原则
单一服务内部功能高内聚低耦合。根据业务模块拆分,做到单一职责,不要重复开发相同的业务
服务自治、接口隔离。不同微服务都应该有自己独立的数据库,尽量减少对其他服务的强依赖,使得服务可以独立开发、测试、部署、运行,以服务为单位持续交付。
服务接口的定义具备可扩展性。微服务将业务暴露为接口,供其他微服务使用,服务之间通信就不再是进程内部的方法调用而是跨进程的网络通信。
避免环形依赖与双向依赖。一旦出现环形依赖或者双向依赖,说明在业务上的拆分是有问题的,单独的服务功能边界不清晰,通用功能实现方式模糊。
02Springcloud微服务远程调用方式
基于RestTemplate发起的http请求实现远程调用
http请求做远程调用是与语言无关的调用,只要知道对方的IP、端口、接口路径、请求参数即可
springcloud中远程调用实现过程
注册RestTemplate
服务远程调用RestTemplate
————————————————————
关注微信公众号「BaseJ」,收看更多专题内容