微服务项目的问题
-
业务板块:用户模块,商品模块,购物车模块,订单模块,支付模块
-
服务拆分原则
- 创业型项目:先采用单体架构,快速开发,快速试错。随着规模扩大,逐渐拆分。
- 确定的大型项目:资金充足,目标明确,可以直接选择微服务架构,避免后续拆分的麻烦。
- 高内聚:每个微服务的职责要尽量单一,包含的业务相互关联度高、完整度高。
- 低耦合:每个微服务的功能要相对独立,尽量减少对其它微服务的依赖。
- 纵向拆分:按照业务模块来拆分。
- 横向拆分:抽取公共服务,提高复用性。
-
拆分服务:父工程用maven聚合,拆分为多个微服务的项目,每个微服务用一个专属数据库,每个服务之间采用restTemplate来调用远程服务
-
RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。但若在高并发的条件下,每个微服务都有多个实例,你想调用的服务接口是不一定的,且会有接口宕机的问题,所以仅用restTemplate是不能解决以上问题的。
-
方便微服务之间的调用,用到nacos技术。将服务提供者注册到nacos注册中心中,服务调用者通过注册中心区调用服务,其中同样用到负载均衡策略。