第一个 Dubbo 应用程序

概述

img

创建服务接口项目

创建一个名为 hello-dubbo-service-user-api 的项目,该项目只负责定义接口

POM

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.funtl</groupId>
<artifactId>hello-dubbo-service-user-api</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
</project>
阅读更多

Dubbo 的核心功能

概述

  • Remoting:远程通讯,提供对多种 NIO 框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息交换方式。
  • Cluster:服务框架,提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
  • Registry:服务注册中心,服务自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

什么是 Dubbo

概述

Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源 Java RPC 分布式服务框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。她最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo 采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。

Zookeeper 配置说明

Zookeeper 的三种工作模式

  • 单机模式:存在单点故障
  • 集群模式:在多台机器上部署 Zookeeper 集群,适合线上环境使用。
  • 伪集群模式:在一台机器同时运行多个 Zookeeper 实例,仍然有单点故障问题,当然,其中配置的端口号要错开的,适合实验环境模拟集群使用。

Zookeeper 的三种端口号

阅读更多

基于 Docker 安装 Zookeeper

概述

Zookeeper 部署有三种方式,单机模式、集群模式、伪集群模式,以下采用 Docker 的方式部署

注意: 集群为大于等于3个奇数,如 3、5、7,不宜太多,集群机器多了选举和数据同步耗时长,不稳定。

单机模式

docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
version: '3.1'

services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888
阅读更多

Linux 下手动安装 Zookeeper

Zookeeper 部署有三种方式,单机模式、集群模式、伪集群模式,以下采用手动安装的方式部署

注意: 集群为大于等于3个奇数,如 3、5、7,不宜太多,集群机器多了选举和数据同步耗时长,不稳定。

单机模式

下载

进入要下载的版本的目录,选择 .tar.gz 文件下载,下载链接:http://archive.apache.org/dist/zookeeper/

阅读更多

什么是 Zookeeper

概述

ZooKeeper 是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper 通过其简单的架构和 API 解决了这个问题。ZooKeeper 允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。

以下为 Zookeeper 的基本概念

Zookeeper 的数据模型

Zookeeper 的数据模型是什么样子呢?它很像数据结构当中的树,也很像文件系统的目录。

阅读更多

Zookeeper 如何实现分布式锁

什么是临时顺序节点?

img

Zookeeper 的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做 Znode。

Znode 分为四种类型:

持久节点(PERSISTENT)

默认的节点类型。创建节点的客户端与 Zookeeper 断开连接后,该节点依旧存在。

阅读更多