Java17 --- Mabbitmq之安装测试

目录

一、拉取运行镜像

1.1、拉取镜像环境

1.2、运行镜像

 二、工作模式

2.1、消息的发送者 

2.2、消息的接收者 

2.3、生产队列模式 

2.3.1、消息的发送者 

 2.3.2、消息的接收者

2.4、发布订阅模式

2.4.1、消息的发送者 

2.4.2、消息的接收者 

2.5、路由模式 

2.5.1、消息的发布者 

2.5.2、消息的接收者 

2.6、主题模式 

2.6.1、消息的发布者 

2.6.2、消息的接收者 


一、拉取运行镜像

1.1、拉取镜像环境

docker pull rabbitmq:3.13-management 

1.2、运行镜像

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v rabbitmq-plugin:/plugins -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=123456 rabbitmq:3.13-management 

 

测试访问: 

 

 二、工作模式

 引入pom依赖

<dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>5.20.0</version>
        </dependency>

2.1、消息的发送者 

public class Producer {
    public static void main(String[] args) {
        //创建链接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置主机地址
        connectionFactory.setHost("192.168.200.110");
        //连接端口号
        connectionFactory.setPort(5672);
        //虚拟机主机名称默认 /
        connectionFactory.setVirtualHost("/");
        //连接用户名
        connectionFactory.setUsername("guest");
        //连接用户密码
        connectionFactory.setPassword("123456");
        Connection connection = null;
        Channel channel = null;
        try {
            //创建连接
             connection = connectionFactory.newConnection();
            //创建连接频道
            channel = connection.createChannel();
            //申明队列
            //String var1, 队列名称
            // boolean var2, 是否持久化队列
            // boolean var3, 是否独占本次连接,独占只能有一个消费者
            // boolean var4, 是否不使用时删除队列
            // Map<String, Object> var5 队列其他参数
            channel.queueDeclare("simple_quest",true,false,false,null);
            //发送的队列消息
            String message = "你好,沸羊羊";
            //String var1, 交换机名称,没有使用默认
            // String var2, 路由key,简单模式可以传递队列
            // AMQP.BasicProperties var3, 配置信息
            // byte[] var4 消息内存
            channel.basicPublish("","simple_quest",null,message.getBytes());
            System.out.println("发送已完成:" + message);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (TimeoutException e) {
            throw new RuntimeException(e);
        }finally {
            //关闭资源
            try {
                channel.close();
                connection.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            } catch (TimeoutException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

 

2.2、消息的接收者 

public class Consumer {
    public static void main(String[] args) {
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置主机地址
        connectionFactory.setHost("192.168.200.110");
        //连接端口号
        connectionFactory.setPort(5672);
        //虚拟机主机名称默认 /
        connectionFactory.setVirtualHost("/");
        //连接用户名
        connectionFactory.setUsername("guest");
        //连接用户密码
        connectionFactory.setPassword("123456");
        Connection connection = null;
        Channel channel = null;
        try {
            //创建连接
            connection = connectionFactory.newConnection();
            //创建连接频道
            channel = connection.createChannel();
            //申明队列
            //String var1, 队列名称
            // boolean var2, 是否持久化队列
            // boolean var3, 是否独占本次连接,独占只能有一个消费者
            // boolean var4, 是否不使用时删除队列
            // Map<String, Object> var5 队列其他参数
            //channel.queueDeclare("simple_quest",true,false,false,null);
           //接收消息
            DefaultConsumer defaultConsumer = new DefaultConsumer(channel){
                @Override
                //String consumerTag,标识
                // Envelope envelope, 获取某些信息
                // AMQP.BasicProperties properties, 配置信息
                // byte[] body 数据
                public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                    System.out.println("consumerTag:" + consumerTag);
                    System.out.println("Exchange:" + envelope.getExchange());
                    System.out.println("RoutingKey:" + envelope.getRoutingKey());
                    System.out.println("properties:" + properties);
                    System.out.println("body:" + new String(body));
                }
            };
            //String var1, 队列名称
            // boolean var2, 是否自动确认
            // Consumer var3 回调对象
            //消费者类似监听程序,主要用来监听对象
            channel.basicConsume("simple_quest",true,defaultConsumer);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (TimeoutException e) {
            throw new RuntimeException(e);
        }finally {
            //关闭资源
            try {
                channel.close();
                connection.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            } catch (TimeoutException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

 

2.3、生产队列模式 

2.3.1、消息的发送者 

public class Producer {
    public static void main(String[] args) {
        //创建链接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置主机地址
        connectionFactory.setHost("192.168.200.110");
        //连接端口号
        connectionFactory.setPort(5672);
        //虚拟机主机名称默认 /
        connectionFactory.setVirtualHost("/");
        //连接用户名
        connectionFactory.setUsername("guest");
        //连接用户密码
        connectionFactory.setPassword("123456");
        Connection connection = null;
        Channel channel = null;
        try {
            connection = connectionFactory.newConnection();
            channel = connection.createChannel();
            channel.queueDeclare("work_quest",true,false,false,null);
            for (int i = 1; i <= 10 ; i++) {
                String message = "你好,美羊羊" + i;
                channel.basicPublish("","work_quest",null,message.getBytes());
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (TimeoutException e) {
            throw new RuntimeException(e);
        }finally {
            //关闭资源
            try {
                channel.close();
                connection.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            } catch (TimeoutException e) {
                throw new RuntimeException(e);
            }
        }

    }
}

 

 2.3.2、消息的接收者

public class Consumer1 {
    public static void main(String[] args) {
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置主机地址
        connectionFactory.setHost("192.168.200.110");
        //连接端口号
        connectionFactory.setPort(5672);
        //虚拟机主机名称默认 /
        connectionFactory.setVirtualHost("/");
        //连接用户名
        connectionFactory.setUsername("guest");
        //连接用户密码
        connectionFactory.setPassword("123456");
        Connection connection = null;
        Channel channel = null;
        try {
            //创建连接
            connection = connectionFactory.newConnection();
            //创建连接频道
            channel = connection.createChannel();
            //申明队列
            //String var1, 队列名称
            // boolean var2, 是否持久化队列
            // boolean var3, 是否独占本次连接,独占只能有一个消费者
            // boolean var4, 是否不使用时删除队列
            // Map<String, Object> var5 队列其他参数
            //channel.queueDeclare("simple_quest",true,false,false,null);
            //接收消息
            DefaultConsumer defaultConsumer = new DefaultConsumer(channel){
                @Override
                //String consumerTag,标识
                // Envelope envelope, 获取某些信息
                // AMQP.BasicProperties properties, 配置信息
                // byte[] body 数据
                public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                    System.out.println("consumerTag:" + consumerTag);
                    System.out.println("Exchange:" + envelope.getExchange());
                    System.out.println("RoutingKey:" + envelope.getRoutingKey());
                    System.out.println("properties:" + properties);
                    System.out.println("body:" + new String(body));
                }
            };
            //String var1, 队列名称
            // boolean var2, 是否自动确认
            // Consumer var3 回调对象
            //消费者类似监听程序,主要用来监听对象
            channel.basicConsume("work_quest",true,defaultConsumer);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (TimeoutException e) {
            throw new RuntimeException(e);
        }
    }
}

在复制拷贝一个消费者2

 

两个消费者会轮流拿到消息

2.4、发布订阅模式

2.4.1、消息的发送者 

public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建链接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置主机地址
        connectionFactory.setHost("192.168.200.110");
        //连接端口号
        connectionFactory.setPort(5672);
        //虚拟机主机名称默认 /
        connectionFactory.setVirtualHost("/");
        //连接用户名
        connectionFactory.setUsername("guest");
        //连接用户密码
        connectionFactory.setPassword("123456");

        Connection connection = connectionFactory.newConnection();
        Channel channel= connection.createChannel();
            //String var1,交换机名称
            // BuiltinExchangeType var2, 交换机类型
            // boolean var3, 是否持久化
            // boolean var4, 自动删除
            // boolean var5, 内部使用
            // Map<String, Object> var6 其他参数
            channel.exchangeDeclare("fanout_guest", BuiltinExchangeType.FANOUT,true,false,false,null);
            //创建队列
            channel.queueDeclare("queue_guest1",true,false,false,null);
            channel.queueDeclare("queue_guest2",true,false,false,null);
            //绑定队列和交换机
            //String var1, 队列名称
            // String var2, 交换机名称
            // String var3 路由键,绑定规则
            channel.queueBind("queue_guest1","fanout_guest","");
            channel.queueBind("queue_guest2","fanout_guest","");
            String message = "已成功发送消息";
            //发送消息
            channel.basicPublish("fanout_guest","",null,message.getBytes());
            //关闭资源
            channel.close();
           connection.close();

        }
}

2.4.2、消息的接收者 

public class Consumer1 {
    public static void main(String[] args) {
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置主机地址
        connectionFactory.setHost("192.168.200.110");
        //连接端口号
        connectionFactory.setPort(5672);
        //虚拟机主机名称默认 /
        connectionFactory.setVirtualHost("/");
        //连接用户名
        connectionFactory.setUsername("guest");
        //连接用户密码
        connectionFactory.setPassword("123456");
        Connection connection = null;
        Channel channel = null;
        try {
            //创建连接
            connection = connectionFactory.newConnection();
            //创建连接频道
            channel = connection.createChannel();
            //申明队列
            //String var1, 队列名称
            // boolean var2, 是否持久化队列
            // boolean var3, 是否独占本次连接,独占只能有一个消费者
            // boolean var4, 是否不使用时删除队列
            // Map<String, Object> var5 队列其他参数
            //channel.queueDeclare("simple_quest",true,false,false,null);
            //接收消息
            DefaultConsumer defaultConsumer = new DefaultConsumer(channel){
                @Override
                //String consumerTag,标识
                // Envelope envelope, 获取某些信息
                // AMQP.BasicProperties properties, 配置信息
                // byte[] body 数据
                public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                    System.out.println("body:" + new String(body));
                }
            };
            //String var1, 队列名称
            // boolean var2, 是否自动确认
            // Consumer var3 回调对象
            //消费者类似监听程序,主要用来监听对象
            channel.basicConsume("queue_guest1",true,defaultConsumer);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (TimeoutException e) {
            throw new RuntimeException(e);
        }
    }
}

2.5、路由模式 

2.5.1、消息的发布者 

public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建链接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置主机地址
        connectionFactory.setHost("192.168.200.110");
        //连接端口号
        connectionFactory.setPort(5672);
        //虚拟机主机名称默认 /
        connectionFactory.setVirtualHost("/");
        //连接用户名
        connectionFactory.setUsername("guest");
        //连接用户密码
        connectionFactory.setPassword("123456");

        Connection connection = connectionFactory.newConnection();
        Channel channel= connection.createChannel();
            //String var1,交换机名称
            // BuiltinExchangeType var2, 交换机类型
            // boolean var3, 是否持久化
            // boolean var4, 自动删除
            // boolean var5, 内部使用
            // Map<String, Object> var6 其他参数
            channel.exchangeDeclare("test_routing", BuiltinExchangeType.DIRECT,true,false,false,null);
            //创建队列
            channel.queueDeclare("queue_routing1",true,false,false,null);
            channel.queueDeclare("queue_routing2",true,false,false,null);
            //绑定队列和交换机
            //String var1, 队列名称
            // String var2, 交换机名称
            // String var3 路由键,绑定规则
            channel.queueBind("queue_routing1","test_routing","error");
            channel.queueBind("queue_routing2","test_routing","info");
            String message = "已成功发送消息";
            //发送消息
            channel.basicPublish("test_routing","error",null,message.getBytes());
            //关闭资源
            channel.close();
           connection.close();

        }
}

2.5.2、消息的接收者 

public class Consumer1 {
    public static void main(String[] args) {
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置主机地址
        connectionFactory.setHost("192.168.200.110");
        //连接端口号
        connectionFactory.setPort(5672);
        //虚拟机主机名称默认 /
        connectionFactory.setVirtualHost("/");
        //连接用户名
        connectionFactory.setUsername("guest");
        //连接用户密码
        connectionFactory.setPassword("123456");
        Connection connection = null;
        Channel channel = null;
        try {
            //创建连接
            connection = connectionFactory.newConnection();
            //创建连接频道
            channel = connection.createChannel();
            //申明队列
            //String var1, 队列名称
            // boolean var2, 是否持久化队列
            // boolean var3, 是否独占本次连接,独占只能有一个消费者
            // boolean var4, 是否不使用时删除队列
            // Map<String, Object> var5 队列其他参数
            channel.queueDeclare("queue_routing1",true,false,false,null);
            //接收消息
            DefaultConsumer defaultConsumer = new DefaultConsumer(channel){
                @Override
                //String consumerTag,标识
                // Envelope envelope, 获取某些信息
                // AMQP.BasicProperties properties, 配置信息
                // byte[] body 数据
                public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                    System.out.println("body:" + new String(body));
                }
            };
            //String var1, 队列名称
            // boolean var2, 是否自动确认
            // Consumer var3 回调对象
            //消费者类似监听程序,主要用来监听对象
            channel.basicConsume("queue_routing1",true,defaultConsumer);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (TimeoutException e) {
            throw new RuntimeException(e);
        }
    }
}

2.6、主题模式 

2.6.1、消息的发布者 

public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建链接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置主机地址
        connectionFactory.setHost("192.168.200.110");
        //连接端口号
        connectionFactory.setPort(5672);
        //虚拟机主机名称默认 /
        connectionFactory.setVirtualHost("/");
        //连接用户名
        connectionFactory.setUsername("guest");
        //连接用户密码
        connectionFactory.setPassword("123456");

        Connection connection = connectionFactory.newConnection();
        Channel channel= connection.createChannel();
            //String var1,交换机名称
            // BuiltinExchangeType var2, 交换机类型
            // boolean var3, 是否持久化
            // boolean var4, 自动删除
            // boolean var5, 内部使用
            // Map<String, Object> var6 其他参数
            channel.exchangeDeclare("test_topic", BuiltinExchangeType.TOPIC,true,false,false,null);
            //创建队列
            channel.queueDeclare("queue_topic1",true,false,false,null);
            channel.queueDeclare("queue_topic2",true,false,false,null);
            //绑定队列和交换机
            //String var1, 队列名称
            // String var2, 交换机名称
            // String var3 路由键,绑定规则
            channel.queueBind("queue_topic1","test_topic","%.error");
            channel.queueBind("queue_topic1","test_topic","*.*");
            String message = "已成功发送消息";
            //发送消息
            channel.basicPublish("test_topic","info.error",null,message.getBytes());
            //关闭资源
            channel.close();
           connection.close();

        }
}

2.6.2、消息的接收者 

public class Consumer1 {
    public static void main(String[] args) {
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置主机地址
        connectionFactory.setHost("192.168.200.110");
        //连接端口号
        connectionFactory.setPort(5672);
        //虚拟机主机名称默认 /
        connectionFactory.setVirtualHost("/");
        //连接用户名
        connectionFactory.setUsername("guest");
        //连接用户密码
        connectionFactory.setPassword("123456");
        Connection connection = null;
        Channel channel = null;
        try {
            //创建连接
            connection = connectionFactory.newConnection();
            //创建连接频道
            channel = connection.createChannel();
            //申明队列
            //String var1, 队列名称
            // boolean var2, 是否持久化队列
            // boolean var3, 是否独占本次连接,独占只能有一个消费者
            // boolean var4, 是否不使用时删除队列
            // Map<String, Object> var5 队列其他参数
            channel.queueDeclare("queue_topic1",true,false,false,null);
            //接收消息
            DefaultConsumer defaultConsumer = new DefaultConsumer(channel){
                @Override
                //String consumerTag,标识
                // Envelope envelope, 获取某些信息
                // AMQP.BasicProperties properties, 配置信息
                // byte[] body 数据
                public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                    System.out.println("body:" + new String(body));
                }
            };
            //String var1, 队列名称
            // boolean var2, 是否自动确认
            // Consumer var3 回调对象
            //消费者类似监听程序,主要用来监听对象
            channel.basicConsume("queue_topic1",true,defaultConsumer);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (TimeoutException e) {
            throw new RuntimeException(e);
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/683870.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python --对象属性、类属性、类方法和静态方法

对象属性和类属性 --掌握--对象属性 目标掌握对象属性的使用 对象属性&#xff0c;有时也称实例属性、普通属性、公有属性 、或者直接叫属性 在类内部&#xff0c;访问对象属性语法&#xff1a; self.对象属性名 在类外部&#xff0c;访问对象属性语法&#xff1a; 对象名.对…

【全开源】安心护送非急救救护车转运平台小程序(FastAdmin+ThinkPHP+Uniap

&#x1f691;安心护送非急救救护车转运平台小程序——您的健康守护者&#x1f496; 安心护送转运平台小程序是一款基于FastAdminThinkPHPUniapp开发的非急救救护车租用转运平台小程序系统&#xff0c;可以根据运营者的业务提供类似短途接送救护服务&#xff0c;重症病人转运服…

几种近距离无线传输的方案

常见的近距离无线通信技术主要有以下几种&#xff1a; 1. 蓝牙&#xff08;Bluetooth&#xff09;&#xff1a;这是一种近距离、低功耗的无线通讯标准&#xff0c;支持设备短距离通信&#xff08;10m左右&#xff09;。常用于无线鼠标、无线键盘或手持移动终端等设备。 2. ZigB…

【权威发布丨投稿优惠】2024年企业管理、投融资与经济学国际会议(EMIFE 2024)

2024年企业管理、投融资与经济学国际会议 2024 International Conference on Enterprise Management, Investment and Financing, and Economics 【1】会议简介 2024年企业管理、投融资与经济学国际会议是一场汇集全球顶尖学者、企业家和经济学家的盛会。本次会议旨在探讨企业管…

【全开源】废品回收垃圾回收小程序APP公众号源码PHP版本

&#x1f31f;废品回收小程序&#xff1a;绿色生活的新助手&#x1f331; 一、引言 随着环保意识的逐渐提高&#xff0c;废品回收成为了我们日常生活中的重要一环。但是&#xff0c;如何更方便、高效地进行废品回收呢&#xff1f;今天&#xff0c;我要向大家推荐一款超级实用的…

线性dp+数论分块,1561D1 - Up the Strip

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1561D1 - Up the Strip (simplified version) 二、解题报告 1、思路分析 一眼dp 写出dp方程&#xff1a; 前者维护前缀和即可O(1)转移 后者呢&#xff1f;——整除分块数论分块问题-CSDN博客 简单叙述下…

成都跃享未来教育:安全可靠,值得信赖的教育新选择

在当今社会&#xff0c;教育行业的竞争日益激烈&#xff0c;家长们对于选择一所安全可靠的教育机构显得尤为谨慎。成都跃享未来教育作为一家新兴的教育机构&#xff0c;以其独特的教育理念和优质的服务赢得了广大家长的信赖和好评。那么&#xff0c;成都跃享未来教育到底安全可…

va_start和va_end使用介绍

一 概述 采用C语言编程的时候&#xff0c;函数中形式参数的数目通常是确定的&#xff0c;在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定。典型的例子有大家熟悉的函数printf()、scanf()和系统调用execl()等。那么它们是怎…

32C3-2模组与乐鑫ESP32­-C3­-WROOM­-02模组原理图、升级口说明

模组原理图&#xff1a; 底板原理图&#xff1a; u1 是AT通信口&#xff0c;wiif-tx wifi-rx 是升级口&#xff0c;chip-pu是reset复位口&#xff0c;GPIO9拉低复位进入下载模式 ESP32-WROOM-32 系列硬件连接管脚分配 功能 ESP32 开发板/模组管脚 其它设备管脚 下载固件…

买卖股票的各种最佳时机问题

买卖股票的最佳时机 分析 根据题意可知&#xff0c;我们只需要找出来一个最小价格的股票和一个最大价格的股票&#xff0c;并且最小价格的股票出现在最大价格的股票之前。 如果尝试使用暴力解法&#xff0c;时间复杂度为O(N^2)&#xff0c;对于题目中给的长度&#xff0c;显然…

【Go】编码结构体转换为json字符串

结构体内字段命名大小写问题导致无法解析到 package mainimport ("encoding/json""fmt" ) // 定义一个结构体 type Music struct {name string json:"名称" // 字段大小写命名问题&#xff01;&#xff01;&#xff01;singer string json:&q…

你会用Nginx的第三方模块吗?

你好&#xff0c;我是赵兴晨&#xff0c;97年文科程序员。 你使用过Nginx的第三方模块吗&#xff1f;今天咱们来聊聊Nginx的第三方模块。 在深入了解Nginx的高性能与灵活性的过程中&#xff0c;我们不可避免地会接触到第三方模块。 这些模块是对Nginx原生功能的有力扩展&…

学习笔记——IP地址网络协议——网络掩码(Netmask)

三、网络掩码(Netmask) 1、网络掩码概述 网络掩码(Netmask)又称子网掩码(Subnet Mask)网络掩码为32 bit&#xff0c;与IP地址的位数一样&#xff0c;通常也以点分十进制数来表示。 子网掩码不能单独存在&#xff0c;它必须结合IP地址一起使用。子网掩码只有一个作用&#xf…

北斗RTK+UWB定位的优势

在当今科技飞速发展的时代&#xff0c;定位技术的应用已渗透到我们生活的方方面面。从导航、物流到无人驾驶、智能制造&#xff0c;精准定位技术无处不在。而北斗RTK&#xff08;Real-Time Kinematic&#xff0c;实时动态&#xff09;和UWB&#xff08;Ultra-Wideband&#xff…

JS 二进制文件处理与转换:Blob,FileReader,Base64,ArrayBuffer

转载&#xff1a;https://www.cnblogs.com/yinpengfei/p/17280585.html

【CentOS 7】CentOS 7极致指南:高级部署PyCharm 2022.3.3专业版,实现定制化配置与无缝桌面集成

【CentOS 7】CentOS 7极致指南&#xff1a;高级部署PyCharm 2022.3.3专业版&#xff0c;实现定制化配置与无缝桌面集成 大家好 我是寸铁&#x1f44a; 总结了一篇CentOS 7极致指南&#xff1a;高级部署PyCharm 2022.3.3专业版&#xff0c;实现定制化配置与无缝桌面集成✨ 喜欢的…

RN解析富文本内容的插件

安装插件 yarn add react-native-render-html使用 import HTML from react-native-render-html; import {View} from react-native; export default function () {return (<View style{{flex: 1}}><HTMLsource{{html: <p>功能介绍1</p><p>功能介绍…

基于STC89C52单片机空气PM2.5系统设计资料

#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned char //宏定义sbit RSP1^6;//液晶接口sbit ENP1^7;sbit LED P2^0;//粉尘传感器控制接口sbit ADCS P3^7;//AD0832接口sbit ADCLK P3^5;sbit ADDI P3^6;sbit ADDO P3^6;…

Cesium项目报错An error occurred while rendering. Rendering has stopped.

一般就是本地打开会报错&#xff0c;改成用本地服务器打开 全局安装一个live-server sudo cnpm i live-server -g然后新增一个package.json文件 npm init -y然后在package.json的scripts中增加一个命令 "server": "live-server ./ --port8181 --hostlocalhos…

一文了解如何安全有效的进行PB级别的大数据迁移

在这个信息量爆炸的时代&#xff0c;处理PB级别的数据转移已成为常态&#xff0c;但对企业而言&#xff0c;这仍然是一个充满挑战的任务。今天&#xff0c;我们来探讨一下这个话题&#xff0c;看看在进行PB级数据转移时&#xff0c;需要留意哪些事项&#xff0c;可能会遇到哪些…