dubbo笔记

Dubbo 学习笔记

1. Dubbo 简介

Dubbo 是一款高性能、轻量级的开源 RPC 框架。它提供了服务治理、负载均衡、容错、服务降级等一系列高级特性,能够帮助我们快速搭建分布式服务架构。

2. Dubbo 的核心概念

2.1 服务提供者

服务提供者是指提供具体服务实现的一方。在 Dubbo 中,服务提供者需要将自己的服务注册到注册中心,并将自己的地址信息告知消费者。

2.2 服务消费者

服务消费者是指调用服务的一方。在 Dubbo 中,服务消费者需要从注册中心获取服务提供者的地址信息,并调用服务。

2.3 注册中心

注册中心是服务提供者和服务消费者之间的桥梁,它用于存储服务提供者的地址信息,并将这些信息提供给服务消费者。

2.4 监控中心

监控中心是用于监控 Dubbo 的运行状态和性能指标的,它能够帮助我们及时发现问题,并进行调整和优化。

2.5 服务协议

服务协议是指服务提供者和服务消费者之间的通信协议,Dubbo 支持多种协议,例如 Dubbo 协议、HTTP 协议、Hessian 协议等。

3. Dubbo 的架构

Dubbo 的架构可以分为三层,分别是服务提供者、注册中心和服务消费者。

Dubbo 架构图

4. Dubbo 的配置

4.1 服务提供者的配置

服务提供者的配置文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<dubbo:service interface="com.example.UserService" ref="userService"/>
<bean id="userService" class="com.example.UserServiceImpl"/>

4.2 服务消费者的配置

服务消费者的配置文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<dubbo:reference id="userService" interface="com.example.UserService"/>

4.3 注册中心的配置

Dubbo 支持多种注册中心,例如 ZooKeeper、Redis 等。以 ZooKeeper 为例,注册中心的配置文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>

4.4 监控中心的配置

Dubbo 的监控中心可以通过 Dubbo 提供的控制台或者第三方监控工具来实现。以控制台为例,监控中心的配置文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<dubbo:monitor protocol="registry"/>

5.Dubbo 的代码实现

5.1 服务提供者的代码实现

public interface UserService {
    User getUserById(int id);
}

public class UserServiceImpl implements UserService {
    public User getUserById(int id) {
        // TODO: 实现根据 id 查询用户的逻辑
        return new User(id, "张三", 18);
    }
}

public class Provider {
    public static void main(String[] args) throws IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("provider.xml");
        context.start();
        System.in.read();
    }
}

5.3 注册中心的代码实现

Dubbo 提供了多种注册中心的实现,例如 ZooKeeper、Redis 等。以 ZooKeeper 为例,注册中心的代码实现:

public class Registry {
    public static void main(String[] args) throws IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("registry.xml");
        context.start();
        System.in.read();
    }
}

5.4 监控中心的代码实现

Dubbo 的监控中心可以通过 Dubbo 提供的控制台或者第三方监控工具来实现。以控制台为例,监控中心的代码实现:

public class Monitor {
    public static void main(String[] args) throws IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("monitor.xml");
        context.start();
        System.in.read();
    }
}

6. 参考链接

posted @ 2022-01-13 18:59  runrab  阅读(21)  评论(0)    收藏  举报