微服务应用概念整理

本文探讨了微服务与单体应用的区别,强调了微服务在开发、维护和扩展方面的优势,同时也指出微服务面临的问题,如分布式系统挑战、服务雪崩等。此外,介绍了解决雪崩效应的熔断、隔离和限流策略,以及微服务的部署方式,如蓝绿部署和金丝雀发布。
摘要由CSDN通过智能技术生成

目录

一、概述

随着业务增长的需求不断变化,传统上的单体应用在开发、更新和可维护性方面存在的不足之处越发明显。而微服务应用所具备的特点正好可以弥补这些缺陷,由于对微服务的许多概念不清楚为此整理了单体应用和微服务应用的区别和微服务中的一些概念,为此做了一下笔记。下文内容包括:单体应用的缺陷、微服务应用的优势、微服务自身的问题、微服务应用发布的方式和最后的小结。

二、单体应用

2.1 单体应用概念

应用的核心是业务逻辑,定义服务、域对象和事件的模块完成。围绕着核心是与外界打交道的适配器。适配器包括数据库访问组件、生产和处理消息的消息组件,以及提供API或者UI访问支持的web模块等。尽管也是模块化逻辑,但是最终它还是会打包并部署为单体式应用。

2.2 单体应用缺陷

  1. 一个简单的应用会随着时间推移逐渐变大,在每次sprint中,开发团队都会面对新需求,然后开发许多新代码。几年后,这个小而简单的应用会变化成了一个巨大的怪物。面对这样的一个又大又复杂的怪物,开发团队会很痛苦。敏捷开发和部署举步维艰,其中最主要的问题就是这个应用太复杂,以至于任何单个开发者都不可能搞懂它。因此,修正bug和正确的添加新功能变得非常困难,并且很耗时,代码难以理解难以维护;单体应用也会降低开发速,应用越大启动时间会越长;复杂而巨大的单体式应用也不利于持续性开发;单体式应用在不同模块发生资源冲突时,扩展将非常困难;单体式应用另外一个问题是可靠性;因为所有模块都运行在一个进程中,任何一个模块中的一个bug,比如内存泄露,将会有可能弄垮整个进程;单体式应用使得采用新架构和语言非常困难。

  2. 一开始你有一个很成功的关键业务应用,后来就变成了一个巨大的,无法理解的怪物。因为采用过时的,效率低的技术,使得雇佣有潜力的开发者很困难。应用无法扩展,可考性低,最终,敏捷性开发和部署变的无法完成。写完单机程序后要做测试,测试过程中由于拿不到别的系统的环境,就效果做打桩和集成测试;部署到真实的线上环境,有一个真实的线上业务进来,会做真实的调试。

三、微服务优势

3.1 微服务概念

微服务是对一个服务解耦,以降低业务系统的复杂性,将服务系统中的功能进行拆分成多个轻量的子服务,各个自服务之间通过调用REST接口实现服务间的关联,这样做的好处是将业务简单化,每个自服务可以有自己独立的变成语言,模式等且能够独立维护,独立部署,功能复用。

3.2 微服务优势

往微服务架构迁移有助于将大型的系统拆分为更小的组件,从而实现对系统架构的重新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值