1 什么是微服务架构
- 一组小的服务
传统架构属于单体服务,所以的模块业务都写在了一个服务里,微服务将一个项目中的多个模块进行拆分,拆分成多个小服务。
小服务:什么是小服务,根据具体业务进行拆分,并没有规范确认多少代码,多少东西
- 独立的进程
每个小的服务都是一个独立的进程,比如服务部署到tomcat,这就是一个进程,微服务也可以部署在容器里,实际上也是一种进程
- 轻量级通信
没有什么特殊的理解,因为目前使用的通信方式都是http通信方式
- 基于业务能力
拆分成微服务时候,会根据具体的业务能力,比如说登录模块可以拆分成一个微服务
- 独立部署
单体的项目,如果多团队或者多人开发,没有办法做到自己的业务ok了就可以部署,必须等到涉及人员全部开发完毕,才可以进行部署。
而微服务不一样,一个团队负责的一微服务,或者一个人负责的一个微服务,当完成自己的任务就可以进行独立的部署
- 无集中式的管理
单体项目,如果我们选择了java开发,那么我们所有开发人员就必须使用java语言,但微服务不一样,我们每个微服务的开发语言可以不是一致的,可以根据不同的业务选择最优的开发语言进行开发
- 多数据源
每个微服务可以连接不通的数据源,A服务可以连接mysql-A库,B服务可以连接mysql——B库,C服务可以连接orcal等等。
2 问答环节
- 独立部署带来了什么好处?
提高了开发效率
在实际项目中,如果有一个服务挂了,不会影响到其他服务运行
- 每个微服务可以有自己独立的数据源,这种方式会带来什么弊端?
数据可能保证不了一致性;
比如我们A服务中管控整个微服务架构的用户数据。
我们B服务是掌控订单数据,订单数据需要冗余下单用户的用户名昵称等,当A服务中的用户数据变更,B服务中,不会发生变更,这就是一个弊端。当然我们可以通过mq等,发生用户数据变化时,通过消息队列进行数据同步,保证一致性!