目前我的项目就是一个jar包,所有功能都在里面。现在实习也接触到了一些微服务的知识。准备把我的单机项目简单按照我的理解进行一个微服务拆分。
什么是微服务
微服务核心就是把传统的单机应用,根据业务将单机应用拆分为一个一个的服务,彻底的解耦,每一个服务都是提供特定的功能,一个服务只做一件事,类似进程,每个服务都能够单独部署,甚至可以拥有自己的数据库。这样的一个一个的小服务就是微服务。
单机架构
那么我先回忆下我现在项目的架构
单机架构,用户端和后台管理端放在同一个服务里面。更别提更小的服务:订单服务、商品服务、库存服务、会员服务、支付服务这些精细的。我想如果这个项目要扩展,只能做横向扩展,加机器。
微服务架构
我准备抽取出,后台管理服务(就是现有的管理端),用户端服务(就是现有的用户端),鉴权服务(做各种用户的权限设置),数据服务(做用户的行为统计,异步做),Es搜索服务。
优点
- 各个服务独立,不会牵一发而动全身。修改代码也方便,功能内聚。
- 这样还可以按需伸缩,比如只对用户服务做扩展。
- 各个服务都可以拥有自己的数据,也可以用同一个。目前打算用同一个
缺点
- 明显要麻烦许多。
- 服务之间的相互调用,不能像本地方法那样没成本的调用了。打算用RPC来搞。
- 数据一致性问题,暂时还没遇到。
- 系统性能监控、问题定位。
遇到的问题与解决
目前还没开始
版权声明:本文为weixin_45862170原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。