IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 分布式 Dubbo+Zookeepr -> 正文阅读

[网络协议]分布式 Dubbo+Zookeepr

分布式系统理论

分布式系统是一组通过网络进行通信、为了完成共同工作而协同工作的计算机节点组成的系统。
分布式系统是为了用普通、廉价的机器完成单个机器无法完成的计算量、存储任务,目的是利用更多的机器处理更多的数据

RPC

RPC即远程过程调用,是一种进程间通信方式,它允许程序调用另一个地址空间(通常指共享网络的另一台机器上)的过程或函数
RPC核心模块:通信、序列化

Dubbo

dubbo是一款高性能、轻量级的开源Java RPC框架,它提供三大核心能力:面向接口的远程方法调用、智能容错和负载均衡、服务自动注册和发现
在这里插入图片描述

springboot整合

先安装zookeeper

生产者

配置

server.port=8001

#当前应用名字
dubbo.application.name=provider-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#扫描指定包下服务
dubbo.scan.base-packages=com.example.service

代码

package com.example.service;

public interface SayHello {
    public String sayHello();
}

package com.example.service;

import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

@Component  //放进容器
@Service //将服务发布出去
public class SayHelloImpl implements SayHello {
    @Override
    public String sayHello() {
        return "hello world";
    }
}

消费者

配置

server.port=8002

#当前应用名字
dubbo.application.name=consumer-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181

代码

注意:生产者和消费者中都有一个SayHello 接口,且他们的路径一样

package com.example.service;

public interface SayHello {
    public String sayHello();
}

package com.example.service;

import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Reference  //远程引用指定的服务,他会按照全类名进行匹配,看谁给注册中心注册了这个全类名
    SayHello sayHello;

    public void hello(){
        System.out.println(sayHello.sayHello());
    }

}

消费者端测试

package com.example;

import com.example.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@SpringBootTest
class ConsumerServerApplicationTests {
    @Autowired
    UserService userService;
    @Test
    public void contextLoads(){
        userService.hello();
    }
}

结果:
在这里插入图片描述

总结

  1. 前提:zookeeper开启
  2. 提供者提供服务
    A. 导入依赖
    B. 配置注册中心的地址,配置服务发现名,扫描包
    C. 在要被注册的服务上增加@service注解
  3. 消费者消费
    A. 导入依赖
    B. 配置注册中心地址,配置自己的服务名
    C. 从远程注入服务
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 23:25:33  更:2022-01-29 23:26:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:28:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码