文章目录
一. 什么是微服务
根据业务将应用拆分成一个个小的服务,每个微服务提供单个业务功能,即一个服务只做一件事,运行在单独的进程里,并拥有自己独立的数据库
二.微服务与微服务架构区别
微服务强调的是服务的大小,关注的是某一个点,是具体解决某个问题/提供落地对应服务的一个服务应用,而微服务架构是一种架构模式,提倡将单一应用程序划分为一组小的服务,服务之间互相协调。服务之间采用轻量级的通信机制(通常是HTTP协议的Restful API)互相协作,
三. 微服务的优缺点
优点
- 每个微服务都有自己的存储能力,可以有自己的数据库,也可有统一数据库
- 只有业务逻辑代码,不会和HTML,CSS或其他界面组件混合
- 每个服务足够内聚,足够小
- 开发简单,开发效率高,一个服务只做一件事
缺点
- 开发人员要处理分布式系统的复杂性
- 运维难度加大,系统部署依赖
- 服务间通信成本增大
- 数据一致性
- 系统集成测试
四. 微服务技术栈
五. 为什么选择springCloud
当时我们公司选用springcloud的原因有以下几点:
- 近年来社区活跃度比较高
- 自身提供了很多功能,传说springcloud是个全家桶
- 公司是个鼓励员工学习的公司,也想让员工学习下前沿技术
六. springCloud与Dubbo的区别
通过上面对比,可以发现SpringCloud功能更强大,它与Spring Framework、Spring Boot等Spring项目完美融合,但是使用Dubbo的话,就要组装各种功能的插件,其中可能会存在版本不兼容等问题,但是SpringCloud就不用组装,不会出现这样的问题。最大区别SpringCloud采用基于HTTP的REST方式通信,而Dubbo采用RPC通信,Rest 与 RPC区别:https://baijiahao.baidu.com/s?id=1617168792520937104&wfr=spider&for=pc ; http 与 tcp的区别: https://www.cnblogs.com/xianlei/p/tcpip_http.html ; https://blog.csdn.net/weixin_38366182/article/details/80880530
七. springBoot和SpringCloud的关系
- springBoot专注于快速方便的开发单个个体微服务
- sringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务
SpringBoot可离开SpringCloud独立使用开发项目,但是SpringCloud离不开springboot,属于依赖关系
SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架