简单了解微服务!!!

什么是微服务?

微服务,又叫微服务架构,是一种软件架构方式
它将应用构建成一系列按业务领域划分模块的、小的自治服务

在微服务架构中,每个服务都是自我包含的,并且实现了单一的业务功能

简单来说,就是将一个系统按业务划分成多个子系统,每个子系统都是完整的,可独立运行的,子系统间的交互可通过HTTP协议进行通信(也可以采用消息队列来通信,如RoocketMQ、Kafaka等)

所以,不同子系统可以使用不同的编程语言实现,使用不同的存储技术,但是,因为子系统服务数量越多,管理起来越复杂,因此,需要采用集中化管理,例如Eureka、Zookeeper等都是比较常见的服务集中化管理框架,同时,使用自动化部署(如Jenkins)减少人为控制,降低出错概率,提高效率。

场景

购物车应用

传统的一体化架构实现:
所有功能都被放在一个代码库中,业务都开展在一个基础性的数据库之下,功能包括:品牌管理、商品管理、接受付款、客服服务等。
当需要添加新品牌的详细信息时(有别于旧品牌设置的结构),此时开发者不仅需要为这个服务添加新的标签而修改代码,而且还要重构整个系统并进行部署

微服务架构:
可以帮助开发者解决使用旧架构时所面临的问题,并且是的这个购物车应用很容易被构建、部署、扩展。

因为他为搜索、推荐、品牌管理、商品管理、客户服务等业务分别创建不同的微服务、当需求来临时,它只需要修改并更新对应的微服务即可。

微服务的特点

  • 解耦
    同一系统内的服务大部分可以被解耦,因此作为一个整体,可以轻易的被构建、修改、扩展
  • 组件化
    微服务可以被看成相互独立的组件,这些组件可以被轻易的替换和升级
  • 业务能力
    微服务很小,它们可以专注于某种单一的能力
  • 自治
    开发者和团队可以独立的工作、提高开发速度
  • 持续交付
    允许持续发布软件新版本,通过系统化的自动手段来创建、测试和批准新版本
  • 职责明确
    微服务不把应用看成一个一个的项目,相反,他们把应用当成了自己需要负责的项目
  • 去中心化管理
    关注于使用正确的工具来完成正确的工作,没有标准化的方式或者技术模式,开发者有权选择最好的工具解决问题
  • 敏捷性
    微服务支持敏捷开发,任何新功能都可以被快速开发或丢弃

微服务的优势

  • 独立开发
    基于各个微服务所独有的功能,他们可以被轻易开发出来
  • 独立部署
    基于他们所提供的服务,他们可以被独立的部署到应用中
  • 错误隔离
    即便其中某个服务发生了故障,整个系统还可以继续工作
  • 混合技术栈
    可以使用不同的语言和技术来为同一个应用构建不同的服务
  • 按粒度扩展
    可以根据需求扩展某一个组件,不需要将所有组件全部扩展

版权声明:本文为weixin_45058888原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。