1 分布式系统概述

1 大型互联网项目架构目标

  1. 高性能:提供快速的访问体验。
  2. 高可用:网站服务一直可以正常访问
  3. 可伸缩:通过硬件增加/减少,提高/降低处理能力。
  4. 高可扩展:系统间耦合低,方便的通过新增/移除方式,增加/减少新的功能/模块。
  5. 安全性:提供网站安全访问和数据加密,安全存储等策略。
  6. 敏捷性:随需应变,快速响应。

2 集群和分布式

  • 集群

    • 很多“人”一起 ,干一样的事,即一个业务模块部署在多台服务器上
    • 集群可以实现高性能、高可用
  • 分布式

    • 很多“人”一起,干不一样的事,这些不一样的事,合起来是一件大事,即一个大的业务系统,可以拆分为小的业务模块,分别部署在不同的机器上
    • 分布式可以实现可伸缩、高可扩展

2 Dubbo基础

1 简介

  • Dubbo概述

    • Dubbo是阿里巴巴公司开源的一个高性能、轻量级(与其他组件耦合度低)的Java RPC框架
    • 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案
  • Dubbo架构

image.png

  • Container

服务运行容器,服务要运行在一个容器中,如tomcat

  • Provider

暴露服务的服务提供方

  • Registry

服务注册与发现的注册中心,生产者需要在注册中心注册提供的服务,告知其他消费者自己提供的服务

  • Consumer

调用远程服务的服务消费方,消费者需要从服务注册中心发现服务(获取服务的路径),之后就可以调用服务了

  • Monitor

统计服务的调用次数和调用时间的监控中心

2 Dubbo的使用

1 服务注册中心

  • Zookeeper概述

    • Dubbo官方推荐使用Zookeeper作为注册中心
    • Zookeeper是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用
  • Zookeeper Linux安装

    • ZooKeeper服务器是用Java创建的,它运行在JVM之上。需要安装JDK 7或更高版本