写点什么

架构师 0 期 Week10 作业 2

用户头像
Nan Jiang
关注
发布于: 2020 年 08 月 12 日

微服务开展的原因:

1、项目编译难:公司业务发展快,代码量成几何级数增加动辄几百G,增改几行代码需要编译整个项目往往耗时半天。

2、项目部署难:

项目大了,依赖错综复杂,一次发布前调试需要几十几百号开发在线待命,随时准备调整自己负责的那几行代码,待发布完成后才能下班,造成严重人力资源浪费。

3、几行代码修改就涉及一个版本更新,不同人提交的代码存在潜在的版本冲突。再一个几十上百人开发的项目中,代码提交频繁,冲突解决起来很费时间。

4、项目中各业务线使用同一数据库集群,随着业务增加逻辑复杂,数据库访问容易成为瓶颈。

5、项目中老代码坑多维护困难,增加新代码的时候容易影响老代码的使用,出现不可预知的bug。



微服务的功能:

1、拆分业务,将模块独立部署,降低系统耦合性。包括纵向拆分,一个大应用拆分成多个小应用和横向拆分,将可复用业务拆分出来独立部署成微服务。

2、失效转移:某服务所在服务器宕机后注册中心将服务转移至新服务器,不影响服务调用。

3、负载均衡:某服务由一个服务集群提供,每个服务器上均衡负载。

4、对应用侵入较少:服务通信和业务逻辑分开,开发业务逻辑时无需考虑部署方式。

5、版本管理方便:每个服务独立维护版本,服务间的依赖可以不同步,服务A可依赖服务B最新版本,也可依赖仍在维护的历史版本。



微服务落地的注意事项:

1、应业务先行,理顺业务边界和依赖关系先拆出独立模块再做分布式服务

2、谨慎将耦合严重、逻辑复杂的系统做成微服务

3、搞清楚实施微服务的目的,业务复用?开发边界清晰?还是做成分布式集群提升稳定性?



用户头像

Nan Jiang

关注

还未添加个人签名 2019.04.26 加入

还未添加个人简介

评论

发布
暂无评论
架构师0期Week10作业2