美文网首页面试题总结
单体项目改造演变成微服务项目,具体会涉及到哪些方面的改动?会有些

单体项目改造演变成微服务项目,具体会涉及到哪些方面的改动?会有些

作者: 程序员阿奇 | 来源:发表于2022-01-13 11:37 被阅读0次

问题:单体项目改造演变成微服务项目,具体会涉及到哪些方面的改动?会有些什么难点?

1.传统架构有什么问题?
  1. 维护性:团队维护困难、部署项目臃肿、耦合性太强
  2. 扩展性:扩展能力差,单机问题严重
  3. 技术层次:技术陈旧,没办法提升技术含金量
  4. 高性能:单体服务相对容易到达瓶颈
  5. 人员水平:人员难招
2.我们需要准备什么?

填坑:旧系统中不完善的代码,需要进行拆分重构、推翻等

架构:拆分成哪几个微服务,是否合理?技术选型?如何统一定制规范?出现问题如何及时收到通知?

组织调整:哪些人负责哪个微服务

3.拆分思路:我们按照什么纬度进行拆分?

先局部拆分,找出能够提前上的技术点

由点到线再到面,再将业务部分由简单到难

比如:用到消息中间件,那么可以提前进行搭建

再比如:一个业务已经很久没新的需求了,且与其他业务关联性不大,很适合拆分出先做微服务,那么先找两个人拆分出来重构,提前上到微服务。

具体拆分步骤
步骤1:
数据库:

将一个数据库,根据业务逻辑垂直拆分成多个库。数据模型需要定义合理;避免微服务之间业务耦合,不然容易引发多次重构、返工。拆分核心:高内聚、松耦合。

第一步是拆分数据库,服务依然是单体的此时应改成多数据源连接。

步骤2:
中间件的搭建:如MQ 注册中心、配置中心、统一网关等。

这样做的目的是:在后边坐业务模块拆分时。可以很好的鱼原有业务进行通信,避免拆分出来没有用处。

步骤3

日志规范:新老系统日志格式统一。

例如:

统一将微服务集成到ELK

步骤4

监控配套,新老系统替换,监控需要与第一次上线微服务一起准备,不然出现问题,不易发现。

步骤5 业务拆分 结合人员分配,并行开发。
步骤6 准备微服务的配套文档。
可能遇到的难点:
  1. 新老系统替换,在途的订单数据如何处理?

    新老系统并行一段时间,老系统入口封死,没有新的流量进入创建,西系统入口打开,结合数据状态,增加回掉,当老系统收到单据数据改变时,同步到新系统,使业务闭环。

  2. 切换到新系统后,如何保证数据正确性,不丢失?
    定时筛查,类似对账,数据迁移完,通过sql 表对表比对

相关文章

  • 单体项目改造演变成微服务项目,具体会涉及到哪些方面的改动?会有些

    问题:单体项目改造演变成微服务项目,具体会涉及到哪些方面的改动?会有些什么难点? 1.传统架构有什么问题? 维护性...

  • 子应用共享http请求对象

    背景 项目为旧单体项目, 改造为微前端项目。所以原项目存在大量共享工具及组件。当前方案是将这些共享代码根据功能,拆...

  • 服务监控

    微服务项目由于服务数量较多,所以相对于单体项目而言出错的可能性较大,因此为了运维工作更加方便,需要对各个服务进行监...

  • 几个相关的服务项目放在一个套餐里还是分成几个不同的套餐?

    在云初起微方案中,一个套餐至少要包含一个服务项目,也可包含多个服务项目。一个服务项目可添加一个或多个选项,也可以没...

  • 分布式事务在积分商城里的应用

    引言 最近在做会员体系的时候,涉及到了积分商城订单体系,既然设计到订单体系,因为现在的项目架构体系基本都是微服务分...

  • 微服务架构Day31-Dubbo之持续集成2021-03-25

    概念 服务治理遇到的问题在微服务项目中每个服务都是独立运行的项目不可能对每个项目进行手动部署,涉及到自动化运维的问...

  • 微服务项目和单体系统的思考

    单体系统 单体系统优点 所谓单体系统,就是项目启动后只存在一个服务,对外也只提供一个URL访问(这里只讨论Java...

  • 微服务-数据聚合

    数据聚合 1.问题 微服务的难点: 微服务将单体服务中功能模块按功能拆分成多个微服务项目,已达到功能解耦的目的。但...

  • 今日复盘

    01.目标 在线服务项目销售情况跟踪。 02.记录 001.周一例行晨会; 002.在线服务项目销售情况跟踪; 0...

  • 今日复盘

    01.目标 服务项目电话沟通销售情况,制定对应计划。 02.记录 001.周一例行晨会; 002.服务项目电话沟通...

网友评论

    本文标题:单体项目改造演变成微服务项目,具体会涉及到哪些方面的改动?会有些

    本文链接:https://www.haomeiwen.com/subject/xojncrtx.html