微信号:GitShare
微信公众号:爱折腾的稻草
如有问题或建议,请公众号留言[^1]
前沿
-
三层应用架构
随着面向对象分析、面向对象设计、面向对象原则、设计模式、企业架构模式等理念以及方法论的不断发展,根据提供的功能和软件结构的不同,我们将应用开发分为三层(表现层、业务逻辑层和数据访问层),俗称三层架构。 -
三层应用架构的优势
三层应用架构的出现,解决了系统间调用复杂,职责不清晰的问题,有效的降低了层与层之间的依赖关系,成为软件架构的经典模式之一。 -
三层应用架构的劣势
三层应用架构只是将系统在逻辑上分为了三层,但它并不是物理上的分层。我们最终还是将所有的代码都耦合在一起进行编译、打包、部署,运行在同一个进程中。
随着业务的不断扩大,需求功能的持续增加,单块架构已经很难满足业务快速变化的需求。一方面,代码的壳维护性、扩展性、灵活性在降低;另一方面,系统的修改成本、交付周期长、技术选型成本高以及维护成本在显著增加。 -
互联网应用特点
互联网时代的产品通常具有:创新成本低、需求变化快、用户群体庞大的特点。
微服务架构
-
1、什么是微服务架构模式
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。每个服务都围绕着具体业务进行构建,并且能够独立的部署到生产环境、类生产环境中。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语音、工具对其进行构建。 ——摘自马丁.福勒先生的博客。 -
2、微服务与SOA
SOA实现 | 微服务实现 |
---|---|
企业级,自顶向下开展实施 | 团队级,自底向上开展实施 |
服务由多个子系统组成,粒度大 | 一个系统被拆分成多个服务,粒度小 |
企业服务总线,集中式服务架构 | 无集中式总线,松散的服务架构 |
集成方式复杂(ESB/WS/SOAP) | 集成方式简单(HTTP/REST/JSON) |
单块架构系统,高耦合部署复杂 | 各个服务独立部署 |
-
3、微服务应用架构
一个微服务一般完成某个特定的功能,比如下单管理、客户管理等等。每一个微服务都是微型六角形应用,都有自己的业务逻辑和适配器。一些微服务还会发布API给其它微服务和应用客户端使用。其它微服务完成一个Web UI,运行时,每一个实例可能是一个云VM或者是Docker容器。
这种微服务架构模式深刻影响了应用和数据库之间的关系,不像传统多个服务共享一个数据库,微服务架构每个服务都有自己的数据库。另外,这种思路也影响到了企业级数据模式。同时,这种模式意味着多份数据,但是,如果你想获得微服务带来的好处,每个服务独有一个数据库是必须的,因为这种架构需要这种松耦合。
微服务架构优点
-
1、通过分解巨大单体式应用为多个服务方法解决了复杂性问题。
在功能不变的情况下,应用被分解为多个可管理的分支或服务。每个服务都有一个用RPC-或者消息驱动API定义清楚的边界。微服务架构模式给采用单体式编码方式很难实现的功能提供了模块化的解决方案,由此,单个服务很容易开发、理解和维护。 -
2、这种架构使得每个服务都可以有专门开发团队来开发。
开发者可以自由选择开发技术,提供API服务。当然,许多公司试图避免混乱,只提供某些技术选择。然后,这种自由意味着开发者不需要被迫使用某项目开始时采用的过时技术,他们可以选择现在的技术。甚至于,因为服务都是相对简单,即使用现在技术重写以前代码也不是很困难的事情。 -
3、微服务架构模式是每个微服务独立的部署。
开发者不再需要协调其它服务部署对本服务的影响。这种改变可以加快部署速度。UI团队可以采用AB测试,快速的部署变化。微服务架构模式使得持续化部署成为可能。 -
4、微服务架构模式使得每个服务独立扩展。
你可以根据每个服务的规模来部署满足需求的规模。甚至于,你可以使用更适合于服务资源需求的硬件。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/194064.html