微服务架构最强讲解,通俗易懂,写得太好了!

一、微服务架构介绍

微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的

类上应用很多SOLID原则。微服务架构是个很有趣的概念,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。

概念: 把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。

定义: 围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单。

本质: 用一些功能比较明确、业务比较精练的服务去解决更大、更实际的问题。

二、出现和发展

微服务(Microservice)这个概念是2012年出现的,作为加快Web和移动应用程序开发进程的一种方法,2014年开始受到各方的关注,而2015年,可以说是微服务的元年;

越来越多的论坛、社区、blog以及互联网行业巨头开始对微服务进行讨论、实践,可以说这样更近一步推动了微服务的发展和创新。而微服务的流行,Martin Fowler功不可没。

这老头是个奇人,特别擅长抽象归纳和制造概念。特别是微服务这种新生的名词,都有一个特点:一解释就懂,一问就不知,一讨论就打架。

Martin Fowler是国际著名的OO专家,敏捷开发方法的创始人之一,现为ThoughtWorks公司的首席科学家。在面向对象分析设计、UML、模式、软件开发方法学、XP、重构等方面,都是世界顶级的专家,现为Thought Works公司的首席科学家。Thought Works是一家从事企业应用开发和——集成的公司。早在20世纪80年代,Fowler就是使用对象技术构建多层企业应用的倡导者,他著有几本经典书籍:《企业应用架构模式》、《UML精粹》和《重构》等。 ———— 百度百科

三、传统开发模式和微服务的区别

先来看看传统的web开发方式,通过对比比较容易理解什么是Microservice Architecture。和Microservice相对应的,这种方式一般被称为Monolithic(单体式开发)。

所有的功能打包在一个 WAR包里,基本没有外部依赖(除了容器),部署在一个JEE容器(Tomcat,JBoss,WebLogic)里,包含了 DO/DAO,Service,UI等所有逻辑。

优点:

①开发简单,集中式管理

②基本不会重复开发

③功能都在本地,没有分布式的管理和调用消耗

缺点:

1、效率低:开发都在同一个项目改代码,相互等待,冲突不断

2、维护难:代码功功能耦合在一起,新人不知道何从下手

3、不灵活:构建时间长,任何小修改都要重构整个项目,耗时

4、稳定性差:一个微小的问题,都可能导致整个应用挂掉

5、扩展性不够:无法满足高并发下的业务需求

常见的系统架构遵循的三个标准和业务驱动力:

1、提高敏捷性:及时响应业务需求,促进企业发展

2、提升用户体验:提升用户体验,减少用户流失

3、降低成本:降低增加产品、客户或业务方案的成本

基于微服务架构的设计:

目的: 有效的拆分应用,实现敏捷开发和部署

关于微服务的一个形象表达:

X轴: 运行多个负载均衡器之后的运行实例

Y轴: 将应用进一步分解为微服务(分库)

Z轴: 大数据量时,将服务分区(分表)

四、微服务的具体特征

官方的定义:

1、一些列的独立的服务共同组成系统

2、单独部署,跑在自己的进程

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
面向对象是一种编程范式,它将数据和操作数据的方法打包在一起,形成对象。在 Python 中,面向对象编程是一种非常常用的编程方式,可以帮助我们更好地组织代码和解决问题。下面是通俗易懂理解和写好 Python 的面向对象的方法: 1. 类和对象:面向对象编程的核心是类和对象。类是一种数据类型,它定义了一组属性和方法,可以用来创建对象。对象则是类的实例,它可以调用类的方法和访问类的属性。 2. 封装:封装是面向对象编程的一种重要概念,它可以将数据和方法封装在一起,形成一个独立的单位。在 Python 中,可以使用类来实现封装。 3. 继承:继承是面向对象编程中的一种机制,它可以从已有的类中派生出新的类,新的类可以继承已有类的属性和方法。在 Python 中,可以使用继承来实现代码的重用。 4. 多态:多态是面向对象编程的另一个重要概念,它可以使不同的对象对相同的消息作出不同的响应。在 Python 中,可以通过方法重写和方法重载来实现多态。 在 Python 中,可以通过以下步骤来实现面向对象编程: 1. 定义类:使用 `class` 关键字定义一个类,然后定义类的属性和方法。 2. 创建对象:使用类名调用构造函数 `__init__` 来创建对象。 3. 访问属性和方法:使用点号 `.` 来访问对象的属性和方法,例如 `obj.attr` 和 `obj.method()`。 下面是一个简单的 Python 面向对象示例: ``` class Person: def __init__(self, name, age): self.name = name self.age = age def say_hello(self): print(f"Hello, my name is {self.name}, and I'm {self.age} years old.") person = Person("Alice", 30) person.say_hello() ``` 在上面的示例中,我们定义了一个 `Person` 类,它有 `name` 和 `age` 两个属性,以及 `say_hello()` 方法。然后我们使用 `Person` 类创建了一个对象 `person`,并调用了 `say_hello()` 方法。 总之,面向对象编程是一种重要的编程方式,它可以帮助我们更好地组织代码和解决问题。在 Python 中,可以使用类和对象来实现面向对象编程,需要掌握类和对象的概念、封装、继承和多态等重要概念。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值