淘先锋技术网

首页 1 2 3 4 5 6 7

一、什么是Dubbo

在这里插入图片描述

二、Java应用架构发展历史

1. 单体架构

整体应用打包为一个jar包在单体服务器中运行。

在这里插入图片描述

2. 水平/垂直扩展架构

  • 水平扩展:将应用部署在多个节点构成集群,访问时通过负载均衡访问。提升了并发能力,但是仍然没有解决上述问题。
  • 垂直扩展:将应用按照子系统划分,每个子系统独立部署,子系统之间共享数据库等存储资源。一定程度上解决了子系统级别的问题,但是粒度仍然不够细,没有解决模块级别的问题。

3. 微服务架构

微服务架构就是将所有服务模块都拆分出来单独开发部署,模块之间通过RPC通信

优势

  1. 可针对模块的热度精准弹性扩容或缩容,扩展性好。
  2. 拆分模块使得模块之间耦合度降低,不会因为一个模块出问题导致整个应用都无法使用。
  3. 维护成本低,在发布某个模块时只需要发布这个模块就行了,不需要发布整个应用系统。
  4. 开发技术栈更灵活,不同的模块可以采用不同的编程语言实现,由RPC框架进行服务桥接。

微服务代表框架:Spring Cloud,DNS(Dubbo、Nacos、Sentinel)

微服务架构框架服务治理核心要点:

  • 注册中心:用于管理所有服务模块的地址并监测服务模块的状态,服务模块在启动时会将自己的服务地址注册到注册中心,其它消费者再从注册中心查询。
  • 负载均衡:某个服务模块使用集群部署,那么需要负载均衡机制来访问集群节点以平衡服务压力
  • 容错:当访问一个服务地址出错时,可尝试切换到其他服务节点访问。
  • 配置中心:为服务集群节点提供统一的配置,需要修改配置时只需要在配置中心中修改,不需要一个个节点去改。
  • 限流:可对服务请求进行限流,防止请求堆积造成集群服务崩溃。

参考:https://www.bilibili.com/video/BV1Uk4y1g7CW