在线生成网页网站,wordpress极简中文主题,完整的网页设计代码,搜索引擎推广公司微服务 概述1.单体架构2.分布式架构3.微服务的架构特征#xff1a; 服务拆分和远程调用提供者与消费者 概述
1.单体架构
单体架构#xff1a;将业务的所有功能集中在一个项目中开发#xff0c;打成一个包部署。 单体架构的优缺点如下#xff1a;
优点#xff1a;
架构… 微服务 概述1.单体架构2.分布式架构3.微服务的架构特征 服务拆分和远程调用提供者与消费者 概述
1.单体架构
单体架构将业务的所有功能集中在一个项目中开发打成一个包部署。 单体架构的优缺点如下
优点
架构简单部署成本低
缺点
耦合度高维护困难、升级困难
2.分布式架构
分布式架构根据业务功能对系统做拆分每个业务功能模块作为独立项目开发称为一个服务。 分布式架构的优缺点
优点
降低服务耦合有利于服务升级和拓展
缺点
服务调用关系错综复杂
3.微服务的架构特征
单一职责微服务拆分粒度更小每一个服务都对应唯一的业务能力做到单一职责自治团队独立、技术独立、数据独立独立部署和交付面向服务服务提供统一标准的接口与语言和技术无关隔离性强服务调用做好隔离、容错、降级避免出现级联问题 服务拆分和远程调用
1.微服务拆分时的几个原则
不同微服务不要重复开发相同业务微服务数据独立不要访问其它微服务的数据库微服务可以将自己的业务暴露为接口供其它微服务调用
cloud-demo父工程管理依赖
order-service订单微服务负责订单相关业务user-service用户微服务负责用户相关业务
要求
订单微服务和用户微服务都必须有各自的数据库相互独立订单服务和用户服务都对外暴露Restful的接口订单服务如果需要查询用户信息只能调用用户服务的Restful接口不能查询用户数据库
2.远程调用
修改order-service中的根据id查询订单业务要求在查询订单的同时根据订单中包含的userId查询出用户信息一起返回。 因此我们需要在order-service中 向user-service发起一个http的请求调用http://localhost:8081/user/{userId}这个接口。
大概的步骤是这样的
注册一个RestTemplate的实例到Spring容器修改order-service服务中的OrderService类中的queryOrderById方法根据Order对象中的userId查询User将查询的User填充到Order对象一起返回
1.注册RestTemplate 1.在order-service服务中的OrderApplication启动类中注册RestTemplate实例 2.实现远程调用 修改order-service服务中的cn.itcast.order.service包下的OrderService类中的queryOrderById方法
提供者与消费者
在服务调用关系中会有两个不同的角色
服务提供者一次业务中被其它微服务调用的服务。提供接口给其它微服务服务消费者一次业务中调用其它微服务的服务。调用其它微服务提供的接口