分布式与微服务
我们经常说的分布式与微服务有什么关系?
微服务是一种良好设计的分布式架构方案。
单体架构
特点:所有功能都集成在一个项目中开发,代码冗余高,不利于后期迭代及其维护。
优点:架构简单,成本低
缺点:代码冗余高,不利于后期迭代及其维护。
分布式架构
特点:将项目差分为一个个模块(服务),各个模块之间独立开发
优点:模块之间耦合低,易于维护拓展
缺点:服务之间调用关系复杂。
思考:
- 服务拆分的粒度如何界定?
- 各个服务之间如何调用?
服务远程调用,通过Dubbo或http协议交互,底层使用netty。
微服务
微服务特征
- 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
- 自治:团队独立、技术独立、数据独立,独立部署和交付
- 面向服务:服务提供统一标准的接口,与语言和技术无关
- 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
微服务问题
网关:请求的认证,及其负载均衡等
服务集群:调高服务效率及其容错性
注册中心:对服务进行管理
配置中心:对服务配置作统一管理
消息队列:提高异步
分布式缓存:提高系统效率
分布式搜索:提高数据查找效率
分布式日志服务:保存日志
系统监控链路追踪
参考SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,史上最全面的springclound 微服务技术栈