暂无介绍
所谓的微服务是SOA架构下的最终产物,该架构的设计目标是为了肢解业务,使得服务能够独立运行。
可能大部分读者都在想,为什么在这以dubbo、springcloud为代表的微服务时代,我要还要整理这种已经“过时”高可用集群架构?
从十余年前的各种分布式系统研发到现在的容器云,从支撑原有业务到孵化各个新业务,企业的发展离不开统一的、与时俱进的技术架构。
微服务架构最重要的好处是它可以实现大型的复杂应用程序的持续交付和持续部署。持续交付和持续部署是DevOps的一部分,DevOps是一套快速、频繁、可靠的软件交付实践。高效能的DevOps组织通常在将软件部署到生产环境时面临更少的问题和故障。
微服务中,不同模块之间使用的数据库是不同的,不同模块之间部署的服务去也有可能是不用的,那么分区容错是无法避免的,因为服务之间的调用不能保证百分百的没问题,所以系统设计必须考虑这种情况。
今天,和大家分享五本书,它们将有助于更好地理解微服务体系结构以及如何在实际项目中使用它。
如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。
用无服务器构建系统很方便,这会导致开发人员重新使用整体式架构那可怕的意大利面条式代码(spaghetticode)。
NGINXDocker映像是DockerHub上排名第一的应用程序映像,您今天在Web上找到的大多数微服务平台都包含一个演示,它以某种形式部署NGINX并连接到欢迎页面。
随着对充血模型的领域认知的加深,我越加感觉到DDD的重要性。
微服务的概念最早在2012年提出,在MartinFowler的大力推广下,微服务在2014年后得到了大力发展。今天我们通过一组手绘图来梳理下微服务的核心架构。
我们已经设计和构建了十多年的软件,大部分时间我们一直在使用优秀的Symfony框架来实现这一目标。Symfony是一个传统的单体PHP构件集,受JavaSpring的启发,我们发现它非常适合企业Web应用程序和数字产品的快速开发,而这些正是我们主要经济来源。
虽然服务是逐步被拆分出来的,随着业务的演进,在某一时刻,可能需要我们重新审视服务划分得是否合理。本节向大家推荐两种服务划分的方法,首先介绍如何选择服务划分的方法。
与微服务相对的另一个概念是传统的「单体式应用程序」(Monolithicapplication),单体式应用内部包含了所有需要的服务。而且各个服务功能模块有很强的耦合性,也就是相互依赖彼此,很难拆分和扩容。
为了理清这些繁复的产品和概念,我们先来了解下微服务和ServiceMesh技术的历史发展脉络。