微服务是什么
简单来说就是把一个应用程序当做一些列服务的一部分,每个服务运行与自己独立的进程中,服务之间通信可以是http也可以是RPC,每个服务都是你业务的一部分,比如游戏服务器,用户登录是一个服务,角色选择是一个服务,PVE打副本是一个服务,聊天是一个服务器,PVP是一个服务等等,而且都是独立部署,很少有集中式的管理,而且每个服务可以是异构平台的,比如A服务可以用JAVA语言,B服务可以用Python,数据存储也是可以用不同的技术。比如我登录服务只需要mysql,信息不会有太多的频繁更改,但是游戏里面我可能要redis,因为游戏数据更改频繁,我需要缓存。
单体架构的缺点
- 随着功能的增多复杂性会越来越高。
- 越庞大越复杂启动和部署速度也慢。
- 很难更新某个模块的新技术,可能牵一发而动全身。
- 没办法把各个功能用异构的语言来实现。
- 无法按照需求进行伸缩。
- 只能横向扩展。
微服务架构的优缺点
优点
- 开发相对简单。
- 可以选择的不同的技术栈。
- 每个微服务之间都是独立的部署,更新维护容易部署。
- 可以按需扩展。
- 功能之间耦合性没那么强。
缺点
- 运维相对复杂。
- 有数据一致性问题
- 继承测试比较复杂。
- 可能会有重复代码。
- 监控困难。
具体的一些信息可以查阅下面的资料,都是比较经典的:
马丁大神的网站
Introduction to Microservices
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。