zoukankan      html  css  js  c++  java
  • 微服务演进

    抽象图

     

    从单体到微服务,这些年架构的演变

    单体架构存在的缺点

    企业服务总线ESB

     

     微服务架构图示

    SOA和微服务的对比

    • SOA主要针对企业级,采用ESB服务(ESB企业服务总线),非常重,需要序列化和反序列化,采用XML格式传输
    • 微服务架构主要用于互联网公司,轻量级,小巧,独立运行,基于HTTP+REST+JSON格式传输
    • ESB也可以说是传统中间件技术与XML,Web服务等技术相互结合的产物

    你必须了解微服务架构的10个要点

    微服务的八大特征

    微服务具备的特性

    • 每个微服务可独立运行在自己的进程里
    • 一系列独立运行的微服务共同构建起了整个系统
    • 每个服务为独立的业务开发,一个微服务一般完成某个特定功能,比如订单管理,用户管理等
    • 微服务之间通过一些轻量级的通信机制进行通信,例如通过REST API或者RPC的方式进行调用

    微服务拆分示例

    服务拆分与架构演进

    微服务设计原则

    • 单一职责原则
    • 服务自治原则
    • 轻量级通信原则
    • 接口明确原则

    微服务的4个设计原则和19个解决方案

    微服务和SOA

    微服务概念的提出

    微服务概念的定义

    原文:

    In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery.There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

    翻译 :
    简而言之,微服务架构风格[1]这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。

    微服务的九大特征

    • 特性一:“组件化”与“多服务”
    • 特性二:围绕“业务功能”组织团队
    • 特性三:“做产品”而不是“做项目”
    • 特性四:“智能端点”与“傻瓜管道”
    • 特性五:“去中心化”地治理技术
    • 特性六:“去中心化”地管理数据
    • 特性七:“基础设施”自动化
    • 特性八:“容错”设计
    • 特性九:“演进式”设计

    微服务的优劣

    好处

    • 强模块边界:微服务增强了模块化结构,这对大型团队尤为重要。
    • 独立部署:简单的服务更易于部署,并且由于它们是自治的,因此在出错时不太可能导致系统故障。
    • 技术多样性:通过微服务,您可以混合使用多种语言,开发框架和数据存储技术。

    开销

    • 分布:分布式系统更难编程,因为远程调用很慢并且始终存在故障风险。
    • 最终一致性:对于分布式系统来说,保持强一致性是非常困难的,这意味着每个人都必须管理最终的一致性。
    • 运营复杂性:您需要一个成熟的运营团队来管理定期重新部署的大量服务。

    SOA

    微服务和SOA比较

     

     

     

     

  • 相关阅读:
    20145105 《Java程序设计》第4周学习总结
    调查问卷
    20145105 《Java程序设计》第3周学习总结
    20145105 《Java程序设计》实验一总结
    20145105 《Java程序设计》第5周学习总结
    【linux配置】VMware安装Redhat6.5
    【eclipse】解决:eclipse或STS运行maven工程出现Missing artifact jdk.tools:jdk.tools:jar:1.7问题
    【linux配置】在VMware中为Redhat HAT配置本地yum源
    【linux配置】虚拟机配置静态IP地址
    【linux配置】Linux系统下安装rz/sz命令以及使用说明
  • 原文地址:https://www.cnblogs.com/fubinhnust/p/11956104.html
Copyright © 2011-2022 走看看