1. 什么是软件架构?
软件架构是一个包含各种组织的系统组织,这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。
2.什么是微服务架构?
微服务是指开发一个单个 小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。
微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说,如果每个服务都要同时修改,那么它们就不是微服务,因为它们紧耦合在一起;如果你需要掌握一个服务太多的上下文场景使用条件,那么它就是一个有上下文边界的服务,这个定义来自DDD领域驱动设计。
3. 微服务优点是什么?
-
每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。
-
微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。
-
微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。
-
微服务能使用不同的语言开发。
-
微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins, Hudson, bamboo 。
-
一个团队的新成员能够更快投入生产。
-
微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。
-
微服务允许你利用融合最新技术。
-
微服务只是业务逻辑的代码,不会和HTML,CSS 或其他界面组件混合。
-
微服务能够即时被要求扩展。
-
微服务能部署中低端配置的服务器上。
-
易于和第三方集成。
-
每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一数据库。
4. 微服务架构的缺点是什么?
-
微服务架构可能带来过多的操作。
-
需要DevOps技巧 (http://en.wikipedia.org/wiki/DevOps).
-
可能双倍的努力。
-
分布式系统可能复杂难以管理。
-
因为分布部署跟踪问题难。
-
当服务数量增加,管理复杂性增加。
5. 微服务适合哪种情况?
当你需要支持桌面 web 移动 智能电视 可穿戴时都是可以的,甚至将来你可能不知道但需要支持的某种环境。
6. 哪个公司或产品使用微服务架构?
大部分大型网站系统如Twitter, Netflix, Amazon 和 eBay都已经从传统整体型架构monolithic architecture迁移到微服务架构
7. 微服务之间是如何独立通讯的?
这依赖需求,通过使用HTTP/REST,数据格式使用JSON 或 Protobuf(Binary protocol),通讯协议是自由的。
8. 为什么现在每个人都在谈论微服务?
自从SOA面试15年来,随着RESTful web服务和JSON数据交换格式流行,简单快速建立一个可连接的服务已经越来越方便了。
开发方式影响
随着持续交付概念推广以及Docker容器普及,微服务将这两种理念和技术结合起来,形成新的微服务+API + 平台的开发模式,提出了容器化微服务的持续交付概念。
下图传统Monolithic的DevOps开发队伍方式:
这种整体型架构要求产品队伍横跨产品管理 Dev开发 QA DBA 以及系统运营管理,而微服务架构引入以后,如下图:
微服务促进了DevOps方式的重组,将一个大臃肿的整体产品开发队伍切分为根据不同微服务的划分的产品队伍,以及一个大的整体的平台队伍负责运营管理,两者之间通过API交互,做到了松耦合隔绝。
由于Docker引入,不同的微服务可以使用不同的技术架构,比如Node.js Java Ruby Python等等,这些单个的服务都可以独立完成交付生命周期,如下:
微服务案例
Netflix的微服务架构如下,着重全球分发 高可扩展性和可用性:
Twitter的微服务架构,注重高效的可扩展的数据中心:
http://my.oschina.net/u/1441440/blog/414592
相关推荐
为了更加轻松地开始使用容器和微服务,本指南重点介绍一个容器化和基于微服务的参考应用程序(用户可获取该应用程序)。 可通过 eShopOnContainers GitHub 存储库获取该示例应用程序。 本指南主要在开发环境级别...
总之,《微服务架构:原则、实践和文化一致》是一本深入分析微服务架构的综合指南,无论是对初学者还是有一定基础的读者,都提供了宝贵的参考和实践指导。通过这本书,读者能够更全面地理解微服务架构,并能够更有效...
"Microservice 架构中的测试策略" 在 Microservice 架构中,测试是非常重要的一环。 Testing Strategies in ... Testing Strategies in Microservice Architecture 一文为我们提供了一个完整的测试策略参考指南。
总的来说,《Microservice Patterns v4 MEAP 高清版》是一本全面介绍微服务架构模式的指南,涵盖了从设计到实施的各个方面,对于任何希望深入了解和实践微服务的IT专业人士来说,都是一份宝贵的资源。通过阅读这本书...
我们正在创造一个参考指南/电子书名为“构建和开发集装箱和微服务基于.NET应用程序”,其详细阐述了如何开发这种建筑风格(微服务,多克尔容器,领域驱动设计某些微服务)以及其他更简单的架构风格,如可以作为...
描述中的"springboot microservice integration restful"进一步明确了我们要关注的是Spring Boot在微服务架构中的应用,以及如何通过RESTful API实现服务间的集成。RESTful API是一种基于HTTP协议的软件架构风格,...
要深入理解微服务,首先推荐阅读Martin Fowler的《Microservice Architecture》中文版,其中详细解释了微服务与传统单体架构的区别,并阐述了微服务如何实现独立部署和服务间通信。此外,还可以观看Martin Fowler的...
在描述中提到的"指示"可能是指遵循的步骤或指南,以便按照最佳实践来实施微服务架构。这可能包括服务发现、API网关、持续集成/持续部署(CI/CD)流程、监控和日志记录等方面。 提供的压缩包文件"web-app-...
本书名为《Learn Microservices with SpringBoot》,作者Moises Macero,是一本专注于使用Spring Boot框架来学习微服务架构的实践指南。书中详细介绍了如何构建基于RESTful服务的微服务,并使用了RabbitMQ、Eureka、...
标题“NET-Microservices-Architecture-for-Containerized-NET-Applications”和描述中提及的“微服务架构推荐”,“基于Docker容器技术”,“Core 2.0技术”为我们提供了关于.NET微服务架构和在容器化.NET应用程序...
《Spring Cloud微服务实战》是针对Java开发者的一本深度学习Spring Cloud框架的指南。Spring Cloud是基于Spring Boot实现的一套微服务解决方案,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能...
《Microservices From Day One》这本书无疑为那些希望从项目初期就采用微服务架构的开发人员和架构师提供了一套实践指南和理论基础。通过学习本书,读者将能够更好地理解微服务的设计原则,以及如何在项目中应用这些...
2. **设计可独立部署的服务**:为了实现快速迭代和灵活部署,每个微服务都应该能够在不依赖其他服务的情况下单独部署。这通常涉及到对服务之间的依赖关系进行细致管理。 3. **采用自动化测试和持续集成**:自动化的...
《Spark Account Microservice:构建Crud REST API的指南》 Spark Account Microservice是一个专门设计用于处理账户操作的微服务,尤其关注Crud(Create、Read、Update、Delete)RESTful API的实现。微服务架构已经...
RFID-TiltSW-MicroService 是一个专门设计用于处理RFID...通过深入理解RFID和Tilt传感器的工作原理,以及Java和微服务架构的特性,我们可以有效地设计和实现RFID-TiltSW-MicroService,以满足在特定应用场景中的需求。
- "Simple-Transaction-Microservices-Sample-Architectu.pdf"很可能包含详细的微服务架构设计图、技术选型说明以及部署指南。 - "下载链接.txt"可能是提供额外资源、代码仓库或其他相关文档的下载链接。 综合以上...
根据上述内容,我们可以总结出《Building Microservices with Go》这本书是关于使用Go语言实现微服务架构的实践指南,它不仅覆盖了理论知识,还包含了大量的实际操作指南,旨在帮助开发者高效地构建和部署微服务,...
总的来说,《使用Node.js开发微服务2016》不仅为读者提供了在Node.js环境下开发微服务的实用指南,也深入探讨了微服务架构的设计原则、开发实践和运维策略。虽然出版时间已久,但其核心概念和基础知识依旧对学习和...