Oopsguy
http://oopsguy.com

随笔分类 -  架构

架构
摘要:您正工作于大型复杂的单体应用程序上,这是相当不错的机会。您开发和部署应用程序的日常经历是缓慢而痛苦的。微服务似乎是一个遥不可及的天堂。幸运的是,有一些战略可以用来逃离单体地狱。在本文中,我将描述如何将单体应用程序逐渐重构为一组微服务... 阅读全文
posted @ 2017-09-29 09:33 oopsguy 阅读(2164) 评论(2) 推荐(3) 编辑
摘要:部署单体应用程序意味着运行一个或多个相同副本的单个较大的应用程序。您通常会在每个服务器上配置 N 个服务器(物理或虚拟)并运行 M 个应用程序实例。单体应用程序的部署并不总是非常简单,但它比部署微服务应用程序要简单得多。 阅读全文
posted @ 2017-09-20 09:29 oopsguy 阅读(2501) 评论(0) 推荐(3) 编辑
摘要:单体应用程序通常具有一个单一的关系型数据库。使用关系型数据库的一个主要优点是您的应用程序可以使用 ACID 事务。很不幸的是,当我们转向微服务架构时,数据访问将变得非常复杂。这是因为每个微服务所拥有的数据对当前微服务来说是私有的,只能通过其提供的 API 进行访问。封装数据可确保微服务松耦合,独立演进。如果多个服务访问相同的数据,模式更新需要对所有服务进行耗时、协调的更新。 阅读全文
posted @ 2017-09-18 09:50 oopsguy 阅读(1324) 评论(2) 推荐(0) 编辑
摘要:为了发送一个请求,您的代码需要知道服务实例的网络位置(IP 地址与端口)。在运行于物理硬件上的传统应用中,服务实例的网络位置是相对静态的。例如,您的代码可以从偶尔更新的配置文件中读取网络位置。服务实例具有动态分配的网络位置。此外,由于自动扩展、故障与升级,整组服务实例会动态变更。因此,您的客户端代码需要使用更精确的服务发现机制。 阅读全文
posted @ 2017-09-08 09:38 oopsguy 阅读(4085) 评论(2) 推荐(9) 编辑
摘要:在单体应用程序中,组件可通过语言级方法或者函数相互调用。相比之下,基于微服务的应用程序是一个运行在多台机器上的分布式系统。通常,每个服务实例是一个进程。因此,服务必须使用进程间通信(IPC)机制进行交互。稍后我们将了解到多种 IPC 技术,但在此之前,我们先来探讨一下涉及到的各种设计问题。 阅读全文
posted @ 2017-09-04 09:45 oopsguy 阅读(5260) 评论(6) 推荐(6) 编辑
摘要:当您选择将应用程序构建成为一组微服务时,您需要决定应用程序客户端将如何与微服务进行交互。单体应用程序只有一组端点(endpoint),通常使用复制(replicated)结合负载均衡来分配流量。然而,在微服务架构中,每个微服务都暴露一组通常比较细颗粒的端点。在本文中,我们将研究如何改进客户端通信,并提出一个使用 API 网关的方案。 阅读全文
posted @ 2017-08-31 09:29 oopsguy 阅读(7863) 评论(7) 推荐(15) 编辑
摘要:目前微服务受到很多关注:文章、博客、社交媒体上的讨论和会议演讲。他们正在迅速走向加德纳技术成熟度曲线(Gartner Hype cycle)的高峰。与此同时,也有持怀疑态度的软件社区人员认为微服务没什么新鲜可言。反对者声称它的思想只是面向服务架构(SOA)的重塑。然而,无论是炒作还是怀疑,不可否认微服务架构模式具有非常明显的优势——特别是在实施敏捷开发和复杂的企业应用交付方面。 阅读全文
posted @ 2017-08-28 09:19 oopsguy 阅读(31308) 评论(18) 推荐(31) 编辑
摘要:如何使用 Spring Boot、Spring Cloud、Docker 和 Netflix 的开源工具来构建一个微服务架构。本文通过一个使用了 Spring Boot、Spring Cloud 和 Docker 构建的概念型应用示例来提供了解常见的微服务架构模式的起点... 阅读全文
posted @ 2017-08-06 02:06 oopsguy 阅读(11354) 评论(4) 推荐(7) 编辑

点击右上角即可分享
微信分享提示