微服务

  • 概念 

 应用程序被拆分成一个个功能独立的子系统,独立运行,系统与系统之间通过 RPC 接口通信。主要有以下特点

a)每个服务运行在自己的进程中,服务于服务之间采用轻量级的通信方式(RPC,restful)

b)服务是基于业务来拆分,实现业务的低耦合

d)容器化部署(Docker):服务部署在Docker容器中,避免一切因环境引起的各种问题,让开发者的精力集中在业务处理中

e)自动化构建(Jenkins):项目被微服务化后,各个服务之间的关系比较复杂,打包构建的工作量大,使用Jenkins可以实现一键自动化部署

 

  • 传统的集群模式

将同一份代码 放在不同的服务器上,多个服务器组成服务器集群,每个服务器称为一个节点,不同的节点提供相同的服务

通过负载均衡,将压力平摊到不同的服务器上。提升系统总的处理能力

 

  • 微服务架构

微服务就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在微服务结构中,每个子系统就被称为“服务”。这些子系统能够独立运行在 Web 容器中,它们之间通过 RPC 方式通信。

 

  • 微服务架构优势

1) 系统之间的耦合度大大降低,可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当容易,开发效率大大提升

2)  系统之间的耦合度降低,从而系统更易于扩展。我们可以针对性地扩展某些服务。假设这个商城要搞一次大促,下单量可能会大大提升,因此我们可以针对性地提升订单系统、产品系统的节点数量,而对于后台管理系统、数据分析系统而言,节点数量维持原有水平即可

3)  服务的复用性更高。比如,当我们将用户系统作为单独的服务后,该公司所有的产品都可以使用该系统作为用户系统,无需重复开发

 

  • 微服务架构难度

1)   当业务量发展到一定程度的时候,服务于服务之间的关系变得错综复杂

2)  为了能够针对性地增加某些服务的处理能力,某些服务的背后可能是一个集群模式,由多个节点构成

3)  要引入新的技术,比如Dubbo来进行服务治理,增加了开发和运维的难度

 

 

 

 

posted @ 2019-12-10 11:23  兵哥无敌  阅读(179)  评论(0编辑  收藏  举报