单机项目进行微服务拆分

  • Post author:
  • Post category:其他


目前我的项目就是一个jar包,所有功能都在里面。现在实习也接触到了一些微服务的知识。准备把我的单机项目简单按照我的理解进行一个微服务拆分。



什么是微服务

微服务核心就是把传统的单机应用,根据业务将单机应用拆分为一个一个的服务,彻底的解耦,每一个服务都是提供特定的功能,一个服务只做一件事,类似进程,每个服务都能够单独部署,甚至可以拥有自己的数据库。这样的一个一个的小服务就是微服务。



单机架构

那么我先回忆下我现在项目的架构

在这里插入图片描述

单机架构,用户端和后台管理端放在同一个服务里面。更别提更小的服务:订单服务、商品服务、库存服务、会员服务、支付服务这些精细的。我想如果这个项目要扩展,只能做横向扩展,加机器。

微服务架构

我准备抽取出,后台管理服务(就是现有的管理端),用户端服务(就是现有的用户端),鉴权服务(做各种用户的权限设置),数据服务(做用户的行为统计,异步做),Es搜索服务。

在这里插入图片描述



优点

  1. 各个服务独立,不会牵一发而动全身。修改代码也方便,功能内聚。
  2. 这样还可以按需伸缩,比如只对用户服务做扩展。
  3. 各个服务都可以拥有自己的数据,也可以用同一个。目前打算用同一个



缺点

  1. 明显要麻烦许多。
  2. 服务之间的相互调用,不能像本地方法那样没成本的调用了。打算用RPC来搞。
  3. 数据一致性问题,暂时还没遇到。
  4. 系统性能监控、问题定位。



遇到的问题与解决

目前还没开始



版权声明:本文为weixin_45862170原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。