微服务和SpringCloud入门

限于喜欢 提交于 2019-11-29 09:27:15

微服务和SpringCloud入门

微服务是什么

微服务的核心是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底去耦合,每个微服务提供单个业务功能的服务,一个服务做一件事情,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够进行单独启动和销毁,可以拥有独立的数据库。

微服务与微服务架构的区别

  • 微服务:它强调的事服务的大小,它关注的是某个点,是具体解决某一个问题/提供落地对应服务的一个服务应用
  • 微服务架构:它是一种架构模式,它提成将单一应用程序划分成一组小的服务,服务之间相互配合协调,为服务提供最终价值。每个服务运行在其独立的进程中,服务之间采用轻量级的通信机制相互协作。

微服务的优缺点

  1. 优点
    • 每个服务足够内聚,足够小,代码容易理解,聚焦一个指定业务需求或功能。
    • 代码松耦合,无论在开发阶段或是部署阶段都是独立的
    • 可以用不同的语言开发
    • 易于和第三方集成
    • 微服务只是业务逻辑的代码,不会和HTML\CSS或其他界面组件混合
    • 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库
  2. 缺点
    • 相比单体应用,整体技术难度有所加大。
    • 运维人员工作量提升
    • 服务间通信成本增加
    • 性能监控复杂
    • 等等

微服务技术栈有哪些

  1. 服务开发
  2. 服务配置和管理
  3. 服务注册与发现
  4. 服务调用
  5. 服务熔断器
  6. 负载均衡
  7. 服务接口调用
  8. 消息队列
  9. 服务配置中心管理
  10. 服务路由
  11. 服务监控
  12. 全链路追踪
  13. 服务部署
  14. 数据流操作开发包
  15. 事件消息总线

SpringCloud是什么

  • 概述:它是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。
  • 详细介绍:
    SpringCloud基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的组件。
    SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括:配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以利用SpringBoot的开发风格做到一键启动和部署
    SpringCloud没有重复造轮子,它只是将目前各个公司开发的比较成熟、经得起实践检验的服务框架组合起来,通过Springboot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂,易部署和易维护的分布式系统开发工具包。

SpringCloud和SpringBoot是什么关系

  • Springboot专注于快速方便的开发单个个体微服务。
  • SpringCloud专注于全局的微服务协调整理治理框架,它将SpringBoot开发的一个个微服务管理起来,为各个微服务之间提供服务。

SpringCloud和Dubbo的比较

Dubbo在2012年被阿里停止更新和维护,期间SpringCloud却在飞速发展,2017年Dubbo由阿里宣布重新更新和维护。由上图可以看出两者的差距。剔除dubbo功能支持不完善来说,二者最大的区别是服务调用方式不同,Dubbo采用RPC通信,SpringCloud采用基于HTTP的REST方式通信。REST牺牲了性能,但却更灵活,在快速演化的微服务环境下更加适用。

以下是阿里刘军,Dubbo重启维护的负责人对二者的比较

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!