当前位置: 首页> 游戏> 评测 > web网页设计教程_汕头网站制作哪家强_网站排名优化推广_怎么接app推广的单子

web网页设计教程_汕头网站制作哪家强_网站排名优化推广_怎么接app推广的单子

时间:2025/8/4 5:37:26来源:https://blog.csdn.net/qq_57882997/article/details/144981156 浏览次数:0次
web网页设计教程_汕头网站制作哪家强_网站排名优化推广_怎么接app推广的单子

单体架构

业务的所有功能集中在一个项目中开发,打包成一个包部署。
在这里插入图片描述
优点:架构简单、部署成本低。
缺点:团队协作成本高、系统发布效率低、系统可用性差。

由于tomcat资源有限,同一个时间可能的并发量不大,如果有一个线程有大量的请求访问,其他的线程也会收到影响。

微服务架构

微服务架构是服务化思想指导下的一套最佳实践架构方案。服务化思想:把单体架构中的功能模块拆分为多个独立的项目。
在这里插入图片描述

SpringCloud

是最广泛的微服务框架。
在这里插入图片描述

微服务拆分

拆分原则

  1. 创业型项目:先采用单体项目快速开发,随着规模扩大,逐渐拆分。
  2. 确定的大型项目:资金充足,目标明确,可以直接选择微服务项目,避免后续拆分麻烦。

要做到:高内聚、低耦合。
高内聚:每个微服务的职责单一,包含的业务关联度高、完整度高。
低耦合:每个微服务的功能相对独立,尽量减少对其他服务的依赖。

拆分方式:

  • 横向拆分:抽取公共服务,提高复用性。
  • 纵向拆分:按照业务模块来拆分。

拆分服务

工程结构有两种:

  1. 独立Project:一个Project下多个Project
  2. Maven聚合:一个Project下多个module

远程调用

购物车服务里需要用到商品服务里的接口,但是此时是这两个服务已经拆分了,所以需要购物车服务向商品服务发送请求【类似于前端页面向后端发请求】

方法1.RestTemplate

在这里插入图片描述

// 单体服务:
// List<ItemDTO> items = itemService.queryItemByIds(itemIds);// 微服务远程调用:
// 1. 利用restTemplate发起http请求,得到http响应
ResponseEntity<List<ItemDTO>> response = restTemplate.exchange("http://localhost:8081/items?ids={ids}",HttpMethod.GET,null,new ParameterizedTypeReference<List<ItemDTO>>() {}, // 泛型的引用Map.of("ids", CollUtil.join(itemIds, ",")));// 2.解析响应if(!response.getStatusCode().is2xxSuccessful()){return;}List<ItemDTO> items = response.getBody();

存在的问题:服务的调用者,在写代码的时候,还不知道服务提供者的地址。例如:商品微服务那边部署在了多台服务器,写url时,就不知道怎么写了。
在这里插入图片描述

方法2.注册中心

通过注册中心进行服务治理,通过订阅服务和注册服务,实现服务之间的远程调用;再通过OpenFeign来发送http请求。

// 方法2.使用nacos + openFeign
// 根据服务名称,获取服务的实例列表List<ServiceInstance> instances = discoveryClient.getInstances("item-service"); // 实例列表if(CollUtils.isEmpty(instances)){return;}List<ItemDTO> items = itemClient.queryItemByIds(itemIds);

(详细操作看:nacos注册中心 + OpenFeign远程调用)【还在制作中!!!明天就出!!!】

关键字:web网页设计教程_汕头网站制作哪家强_网站排名优化推广_怎么接app推广的单子

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: