数码公司网站建设调查,学院网站开发网站定位,优化设计的答案,软件开发服务拆分对单体架构项目来说#xff1a;简单方便#xff0c;高度耦合#xff0c;扩展性差#xff0c;适合小型项目。而对于分布式架构来说#xff1a;低耦合#xff0c;扩展性好#xff0c;但架构复杂#xff0c;难度大。微服务就是一种良好的分布式架构方案#xff1…服务拆分对单体架构项目来说简单方便高度耦合扩展性差适合小型项目。而对于分布式架构来说低耦合扩展性好但架构复杂难度大。微服务就是一种良好的分布式架构方案①优点拆分粒度更小、服务更独立、耦合度更低②缺点架构非常复杂运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案集成了各种优秀微服务功能组件。微服务拆分时的几个原则不同微服务不要重复开发相同业务微服务数据独立不要访问其它微服务的数据库微服务可以将自己的业务暴露为接口供其它微服务调用拆分案列cloud-demo是父工程是用来管理依赖的。order-service订单微服务负责订单相关业务user-service用户微服务负责用户相关业务要求订单微服务和用户微服务都必须有各自的数据库相互独立订单服务和用户服务都对外暴露Restful的接口订单服务如果需要查询用户信息只能调用用户服务的Restful接口不能查询用户数据库实现远程调用在order-service服务中有一个根据id查询订单的接口根据id查询订单返回值是Order对象如图其中的user为null。在user-service中有一个根据id查询用户的接口查询结果现在通过实现远程调用在查询订单的同时根据订单中包含的userId查询出用户信息一起返回。因此我们需要在order-service中 向user-service发起一个http的请求调用http://localhost:8081/user/{userId}这个接口。大概的步骤是这样的注册一个RestTemplate的实例到Spring容器修改order-service服务中的OrderService类中的queryOrderById方法根据Order对象中的userId查询User将查询的User填充到Order对象一起返回注册RestTemplate在order-service服务中的OrderApplication启动类中注册RestTemplate实例修改order-service服务中的cn.itcast.order.service包下的OrderService类中的queryOrderById方法查询结果假如我们的服务提供者user-service部署了多个实例那么order-service在发起远程调用的时候该如何得知user-service实例的ip地址和端口有多个user-service实例地址order-service调用时该如何选择order-service如何得知某个user-service实例是否依然健康是不是已经宕机上述问题将在注册中心中可以得到解决接下来还会继续介绍关于Eureka注册中心和Nacos注册中心。