系网站建设工作总结/北京计算机培训机构前十名
RabbitMQ整合
官网erlang版本 : 20.3.8.x
官方rabbitMq版本: rabbitmq-server-generic-unix-3.7.14.tar.xz
1.安装
1.1 安装erlang
1.安装环境
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
2.在/usr/local/下创建erlangapp文件夹,创建erlang文件夹
mkdir /usr/local/erlangapp
mkdir /usr/local/erlang
2.将erlang安装包上传到该目录
3.解压
tar -zvxf
4.进入erlang解压目录中
5.由于是configure.in,所以需要使用autoconf生成配置
./otp_build autoconf
如果报错autoconf找不到,则需要安装
yum -y install autoconf
6.进入文件,编译安装
./configure
make
make install
7.配置环境变量
/*进入环境变量配置文件*/
vim /etc/profile
//在底部添加环境变量
export ERLANG_HOME=/usr/local/lib/erlang
export PATH=$PATH:$ERLANG_HOME/bin
8.重新加载环境变量
source /etc/profile
9.输入erl查看
erl
halt().//退出
1.2 RabbitMQ安装
1.创建rabbitMQ文件夹,上传
mkdir /usr/local/rabbitmq/
2.解压
xz -d rabbitmq-server-generic-unix-3.7.14.tar.xz tar -vxf rabbitmq-server-generic-unix-3.7.14.tar
3.配置环境变量
vim /etc/profile
向文件添加export PATH=$PATH:/usr/local/rabbitmq/rabbitmq/sbin
//重新加载source /etc/profile
4.启动
rabbitmq-server -detached 【开启rabbitmq服务】
rabbitmqctl status 【查看服务状态】
rabbitmqctl start_app 【启动应用】
rabbitmq-plugins enable rabbitmq_management 【开启web管理插件】
5.添加管理员
rabbitmqctl add_user 用户名 密码
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*" //配置权限
rabbitmqctl set_user_tags 用户名 administrator //修改用户角色,将用户设为管理员
rabbitmqctl list_users //查看所有用户
rabbitmqctl delete_user guest //删除guest用户
6.启动
http://ip:15672
2.RabbitMQ原生使用
1.pom依赖
<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>3.4.1</version></dependency>
2.连接工具类
package com.li.direct.util;import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;import java.io.IOException;public class RabbitMQUtil {private static final String HOST_ADDRESS="192.168.25.102";private static final Integer PORT=5672;private static final String VIRTUAL_HOST="/";private static final String USER_NAME="root";private static final String PASSWORD="root";public static Connection getConnection() throws IOException {com.rabbitmq.client.ConnectionFactory factory=new com.rabbitmq.client.ConnectionFactory();factory.setHost(HOST_ADDRESS);factory.setPort(PORT);factory.setVirtualHost(VIRTUAL_HOST);factory.setUsername(USER_NAME);factory.setPassword(PASSWORD);Connection connection=factory.newConnection();return connection;}public static void main(String[] args) {Connection connection = null;try {connection = getConnection();Channel channel = connection.createChannel();System.out.println(channel);} catch (IOException e) {e.printStackTrace();}finally {try {connection.close();} catch (IOException e) {e.printStackTrace();}}}
}
2.1 消息生产者
//消息提供者
public class MqProvider {//声明交换机public static final String EXCHANGE_NAME="changTest1";//声明队列public static final String QUEUE_NAME="quTest1";public static void main(String[] args) {System.out.println("消息提供者运行。。。");//获取连接Connection connection = null;Channel channel = null;try {connection = RabbitMQUtil.getConnection();//创建信道channel = connection.createChannel();//声明交换机channel.exchangeDeclare(EXCHANGE_NAME,"direct",false,false,false,null);//声明队列channel.queueDeclare(QUEUE_NAME,false,false,false,null);//进行队列绑定channel.queueBind(QUEUE_NAME,EXCHANGE_NAME,"test1");String msg = "这是一条消息";int i = 0;//发布消息while (i<100){channel.basicPublish(EXCHANGE_NAME,"test1",null,(msg+i).getBytes(StandardCharsets.UTF_8));i++;}} catch (IOException e) {e.printStackTrace();}finally {if(channel!=null){try {channel.close();} catch (IOException e) {e.printStackTrace();}}if(connection!=null){try {connection.close();} catch (IOException e) {e.printStackTrace();}}}}
}
2.2 消息消费者
//消费测试/*** 当设置自动应答时,如果一个队列有多个消费者,则会平均分配* 如果要按能者多劳,需要设置手动应答,并设置ack流速*/
public class MqConsumer {//声明队列public static final String QUEUE_NAME="quTest1";public static void main(String[] args) {System.out.println("消费者1运行。。。。");//获取连接Connection connection = null;Channel channel = null;try {connection = RabbitMQUtil.getConnection();//创建信道channel = connection.createChannel();//创建消费方QueueingConsumer queueingConsumer = new QueueingConsumer(channel);//控制ack流速,表示每次进行ack确认前只会处理一条消息channel.basicQos(1);//设置自动应答channel.basicConsume(QUEUE_NAME,false,queueingConsumer);//获取消息while (true){QueueingConsumer.Delivery delivery = queueingConsumer.nextDelivery();byte[] msg = delivery.getBody();//获取消息标识(序号)long tag = delivery.getEnvelope().getDeliveryTag();System.out.println(new String(msg));//消息确认,根据消息序号(false只确认当前一个消息收到,true确认所有比当前序号小的消息(成功消费,消息从队列中删除 ))channel.basicAck(tag,false);}} catch (Exception e) {e.printStackTrace();}finally {if(channel!=null){try {channel.close();} catch (IOException e) {e.printStackTrace();}}if(connection!=null){try {connection.close();} catch (IOException e) {e.printStackTrace();}}}}
}
3.Spring整合RabbitMQ
pom依赖
<dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit</artifactId><version>1.7.1.RELEASE</version></dependency>
3.1 消息生产者
核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd"><bean id="connectionFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory"><!-- username,访问RabbitMQ服务器的账户,默认是guest --><property name="username" value="root" /><!-- username,访问RabbitMQ服务器的密码,默认是guest --><property name="password" value="root" /><!-- host,RabbitMQ服务器地址,默认值"localhost" --><property name="host" value="192.168.25.102" /><!-- port,RabbitMQ服务端口,默认值为5672 --><property name="port" value="5672" /></bean><rabbit:admin connection-factory="connectionFactory" /><bean id="jsonMessageConverter"class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter" /><!-- queue 队列声明 --><rabbit:queue durable="false" auto-delete="false" exclusive="false" name="logQueue" /><rabbit:queue durable="false" auto-delete="false" exclusive="false" name="NewsQueue" /><!-- exchange queue binging key 绑定 --><rabbit:direct-exchange name="logExchange" durable="false" auto-delete="false"><rabbit:bindings><rabbit:binding queue="logQueue" key="admin:logs" /></rabbit:bindings></rabbit:direct-exchange><rabbit:direct-exchange name="searchExchange" durable="false" auto-delete="false"><rabbit:bindings><rabbit:binding queue="NewsQueue" key="admin:news" /></rabbit:bindings></rabbit:direct-exchange><bean id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate"><constructor-arg name="connectionFactory" ref="connectionFactory"/><property name="messageConverter" ref="jsonMessageConverter"/></bean></beans>
消息发送
@Autowiredprivate AmqpTemplate amqpTemplate;//给消息队列amqpTemplate.convertAndSend("logExchange","admin:logs",logsVo);
3.2 消息消费者
核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd"><bean id="connectionFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory"><!-- username,访问RabbitMQ服务器的账户,默认是guest --><property name="username" value="root" /><!-- username,访问RabbitMQ服务器的密码,默认是guest --><property name="password" value="root" /><!-- host,RabbitMQ服务器地址,默认值"localhost" --><property name="host" value="192.168.25.102" /><!-- port,RabbitMQ服务端口,默认值为5672 --><property name="port" value="5672" /></bean><rabbit:admin connection-factory="connectionFactory" /><bean id="jsonMessageConverter"class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter" /><bean id="newsSearchConsumerListener" class="com.li.search.listener.NewsSearchConsumerListener"/><!-- queue 队列声明 --><rabbit:queue durable="false" auto-delete="false" exclusive="false" name="NewsQueue" /><!-- 消息监听 --><rabbit:listener-container connection-factory="connectionFactory" ><rabbit:listener ref="newsSearchConsumerListener" queues="NewsQueue"/></rabbit:listener-container></beans>
消息消费
public class NewsSearchConsumerListener implements MessageListener {@Autowiredprivate ElasticSearchConfig elasticSearchConfig;@Overridepublic void onMessage(Message message) {System.out.println("消息消费。。。。。");//获取消息byte[] msg = message.getBody();try {//反序列化NewsVo newsVo = JSONObject.parseObject(msg, NewsVo.class);//创建要索引的对象NewsIndexVo newsIndexVo = new NewsIndexVo();newsIndexVo.setId(new Long(newsVo.getId()));//添加索引//获取创建的索引IndexRequest indexRequest = new IndexRequest("news");indexRequest.id(newsIndexVo.getId()+"");//HttpRest方式请求,所以请求体必须以http方式进行请求,格式符合http规范String jsonString = JSONObject.toJSONString(newsIndexVo);//设置请求的参数为json数据indexRequest.source(jsonString, XContentType.JSON);//对数据进行索引操作elasticSearchConfig.esRestClient().index(indexRequest,ElasticSearchConfig.COMMON_OPTIONS);} catch (IOException e) {e.printStackTrace();}}
}
4.SpringBoot整合RabbitMQ
pom依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>
1.yml核心配置
#配置rabbitmq
spring: rabbitmq:host: 192.168.25.102 #主机地址port: 5672 #端口号username: root #用户名password: root #密码virtual-host: / #虚拟主机地址listener: #消息监听配置simple:acknowledge-mode: manual #手动确认消息 auto自动确认
2.核心配置类
@Configuration
public class RabbitMQConfig {//声明交换机@Beanpublic DirectExchange newsExchange(){return new DirectExchange("newsExchange");}//声明队列@Beanpublic Queue newsRemoteQueue(){return new Queue("newsRemoteQueue");}//交换机队列绑定@Beanpublic Binding springExchangeBindSpringQueue(){return BindingBuilder.bind(newsRemoteQueue()).to(newsExchange()).with("admin:news");}}
3.消息队列监听
@Component
public class RabbitMQListener {@Autowiredprivate NewsMapper newsMapper;@Autowiredprivate NewsRemoteNewsMapper newsRemoteNewsMapper;//将新闻数据存到新闻表@RabbitListener(queues = "xxx")@RabbitHandlerpublic void addNews(Channel channel, Message message){String newsStr = new String(message.getBody());NewsRemoteNews newsRemoteNews = JSONObject.parseObject(newsStr, NewsRemoteNews.class);}}
5.常见场景应用
5.1 死信队列
消息生产
//死信
public class DlxProvider {//声明死信队列public static final String DLX_EXCHANGE_NAME = "dlx_exchange";public static final String DLX_QUEUE_NAME="dlx_queue";//声明普通队列public static final String EXCHANGE_NAME = "exchange_test";public static final String QUEUE_NAME = "queue_test";public static void main(String[] args) throws Exception {Connection connection = RabbitMQUtil.getConnection();Channel channel = connection.createChannel();//声明死信交换机channel.exchangeDeclare(DLX_EXCHANGE_NAME,"direct",false,false,false,null);//声明死信队列channel.queueDeclare(DLX_QUEUE_NAME,false,false,false,null);//绑定死信队列channel.queueBind(DLX_QUEUE_NAME,DLX_EXCHANGE_NAME,"");//声明普通交换机channel.exchangeDeclare(EXCHANGE_NAME,"direct",false,false,false,null);//设置参数Map<String,Object> map = new HashMap<>();//map.put("x-message-ttl",6000);//超时时间map.put("x-dead-letter-exchange",DLX_EXCHANGE_NAME);//要去的死信队列map.put("x-dead-letter-routing-key","");//死信队列路由key//声明队列channel.queueDeclare(QUEUE_NAME,false,false,false,map);//绑定队列channel.queueBind(QUEUE_NAME,EXCHANGE_NAME,"abc");//发送消息channel.basicPublish(EXCHANGE_NAME,"abc",null,"这是一条消息".getBytes());channel.close();connection.close();}
}
死信队列
//死信队列消费者
public class DlxQueueConsumer {public static final String DLX_QUEUE_NAME="dlx_queue";public static void main(String[] args) throws Exception {System.out.println("死信队列消费运行。。。。");//获取连接Connection connection = RabbitMQUtil.getConnection();//创建信道Channel channel = connection.createChannel();//创建消费方QueueingConsumer queueingConsumer = new QueueingConsumer(channel);//控制ack流速,表示每次进行ack确认前只会处理一条消息channel.basicQos(1);//设置自动应答channel.basicConsume(DLX_QUEUE_NAME, true, queueingConsumer);while (true){QueueingConsumer.Delivery delivery = queueingConsumer.nextDelivery();//获取消息byte[] msg = delivery.getBody();//获取消息标识(序号)long tag = delivery.getEnvelope().getDeliveryTag();System.out.println(new String(msg));}}
}
死信消费者
//消费者(测试死信队列)
public class DlxConsumer {//声明队列public static final String QUEUE_NAME = "queue_test";public static void main(String[] args) throws Exception {System.out.println("消费者运行。。。。");//获取连接Connection connection = RabbitMQUtil.getConnection();//创建信道Channel channel = connection.createChannel();//创建消费方QueueingConsumer queueingConsumer = new QueueingConsumer(channel);//控制ack流速,表示每次进行ack确认前只会处理一条消息channel.basicQos(1);//设置自动应答channel.basicConsume(QUEUE_NAME, false, queueingConsumer);QueueingConsumer.Delivery delivery = queueingConsumer.nextDelivery();//获取消息byte[] msg = delivery.getBody();//获取消息标识(序号)long tag = delivery.getEnvelope().getDeliveryTag();try {System.out.println(new String(msg));//业务正常时,消息确认channel.basicAck(tag, false);}catch (Exception e){//如果业务出现异常,服务器异常,拒绝确认消息,第三个参数代表是否重新入队//拒绝重新入队和拒绝不确认时,会进入死信队列,//如果允许重新入队则需保证rabbit集群,否则会死循环channel.basicNack(tag,false,false);}channel.close();connection.close();}
}
5.2 延迟消息处理
第一种是使用普通队列和死信队列来模拟实现延迟的效果。将消息放入一个没有被监听的队列上,设置TTL(一条消息的最大存活时间)为延迟的时间,时间到了没有被消费,直接成为死信,进入死信队列。后监听私信队列来消息消费
第二种是使用rabbitmq官方提供的delayed插件来真正实现延迟队列。
相关文章:

2023-03-15 RabbitMQ
RabbitMQ整合 官网erlang版本 : 20.3.8.x 官方rabbitMq版本: rabbitmq-server-generic-unix-3.7.14.tar.xz 1.安装 1.1 安装erlang 1.安装环境 yum -y install make gcc gcc-c kernel-devel m4 ncurses-devel openssl-devel2.在/usr/local/下创建erlangapp文件…...

二叉树链式结构的实现
文章目录1.二叉树的遍历1.1前序、中序以及后序遍历1.2代码测试1.3层序遍历1.4二叉树遍历习题2.节点个数以及高度2.1二叉树节点个数2.2叶子节点个树2.3第k层节点个数2.4树的高度1.二叉树的遍历 1.1前序、中序以及后序遍历 学习二叉树结构,最简单的方式就是遍历。所…...

蓝桥杯刷题冲刺 | 倒计时28天
作者:指针不指南吗 专栏:蓝桥杯倒计时冲刺 🐾马上就要蓝桥杯了,最后的这几天尤为重要,不可懈怠哦🐾 文章目录1.卡片2.数字三角形3.购物单4.回文日期1.卡片 题目 链接: 卡片 - 蓝桥云课 (lanqiao…...

一文带你吃透操作系统
文章目录1. 进程、线程管理2. 内存管理3. 进程调度算法4. 磁盘调度算法5. 页面置换算法6. 网络系统7. 锁8. 操作系统知识点文章字数大约1.9万字,阅读大概需要65分钟,建议收藏后慢慢阅读!!!1. 进程、线程管理 进程和线程…...

计算机网络英文简称汇总
分类名词全拼汉译概述B2CBusiness-to-Consumer商对客概述P2PPeer-to-Peer对等概述C/SClient-Server服务器-客户机概述ITUInternational Telecommunication Union国际电信联盟概述IEEEInstitute of Electrical and Electronics Engineers电气与电子工程师协会概述ICCCInternatio…...

腾讯云云服务器标准型S5性能配置简单测评
腾讯云服务器标准型S5实例CPU采用Intel Xeon Cascade Lake或者Intel Xeon Cooper Lake处理器,主频2.5GHz,睿频3.1GHz,标准型S5云服务器基于全新优化虚拟化平台,配有全新的Intel Advanced Vector Extension (AVX-512) 指令集&#…...

RK3568平台开发系列讲解(Linux系统篇)消息队列
🚀返回专栏总目录 文章目录 一、创建消息队列二、发送和接收消息三、内核结构沉淀、分享、成长,让自己和他人都能有所收获!😄 📢消息队列在如下两个方面上比管道有所增强: 消息队列中的数据是有边界的,发送端和接收端能以消息为单位进行交流,而不再是无分隔的字节流…...

2021电赛国一智能送药小车(F题)设计报告
2021电赛国一智能送药小车(F题)设计报告 【写在前面的话】 电赛是一个很奇妙的过程,可能有些人觉得电赛的门槛太高,那便意味着,当你决定要参加电赛的那一刻起,这一段路、这些日子就注定不会太轻松…...

刚工作3天就被裁了....
前言 还有谁?刚上三天班就被公司公司的工作不适合我,叫我先提升一下。 后面我也向公司那边讨要了一个说法,我只能说他们那边的说辞让我有些不服气。 现在之所以把这件事上记录一下,一是记录一下自己的成长轨迹,二是…...

docker安装elasticsearch与head教程完整版—.NET Core Web Api与elasticsearch打造全站全文搜索引擎
默认已经有docker环境 下载与安装 elasticsearch ,从hub.docker里面可以看到最新版本的镜像,选择你想要的版本 本教程是以 7.17.7 为案例,为啥不适用最新的,首先个人一般需用最新的版本,如果有亢很难填,其次…...

蓝桥冲刺31天之315
没有一个冬天不可逾越 也没有一个春天不会来临 所有美好的食物,都会有一个等待的过程 低谷时蛰伏,静默时沉淀 做三四月的事,在八九月自有答案 目录 A:0的个数 题目描述: 输入格式 输出格式 样例输入 样例输出 评测用例规模与…...

常见排序算法
/懂了和写出来是两码事啊啊......orz./ Talk is cheap, show me the code 一、快速排序 直接背模板就能过: 当xq[lr>>1]的边界情况 此时x取的是序列中间靠左的位置(如果序列个数为奇,则取正中间,如果为偶,则取中间靠左),此时如果元素个数为2, 则中间靠左就…...

C语言实现学生成绩管理系统思考
学生成绩管理系统思考 作业要求: 目录 思路 基本函数 学习理解大佬的代码: 完成作业: 思路 学生成绩管理系统,首先要初始化系统, 用C语言做学生实验管理系统要求实现对某班学生3门课程(包括语文、数…...

C++11中Lambda新特性
1.定义 lambda匿名函数的语法格式: [外部变量访问方式说明符](参数)mutablenoexcept/throw()->返回值类型 {函数体; };其中各部分的含义分别为: a.[外部变量方位方式说明符] []方括号用于向编译器表明当前是一个lambda表达式,其不能被省略…...

【jvm系列-01】初识虚拟机与java虚拟机
初识虚拟机与java虚拟机一,虚拟机与java虚拟机1,虚拟机2,java虚拟机3,jvm整体结构图4,jvm的架构模型5,jvm的生命周期6,jvm的种类划分6.1,Sun Classic Vm6.2,Exact VM6.3&…...

「Python 基础」数据库应用编程
Python 定义了一套 DB-API,任何数据库要连接到 Python,只需要提供符合 Python 标准的数据库驱动即可; 文章目录1. 连接 SQLite1. 建表、插入数据2. 查询数据2. 连接 MySQL1. 安装驱动2. 演示连接3. SQLAlchemy1. 安装2. DBSession3. add4. qu…...

一个nginx的小项目,不写代码,实现在局域网内访问其他电脑的网页
准备工作 下载nginx //官网 https://nginx.org/en/download.html //直接下载 https://nginx.org/download/nginx-1.23.3.zip解压 下载一个html项目,或者自己随便写一个 我是直接下载的,然后使用的是第一个01 https://gitee.com/StarPort/HTML_CSSTe…...

23.3.14打卡 2022年江西省大学生程序设计竞赛(正式赛)ABL
就写了签到, 其他题没写, 这场好像3题就银了 纪念一下3.14原粥率日 比赛链接:https://ac.nowcoder.com/acm/contest/43898 A题 Special Adjustment Method 题意 给出非负整数x, y, z 你可以让其中两个数字-1, 另外一个2, 使得x2y2z2x^2y^{2}z^{2}x2y2z2最大 题解 这题很容…...

用idea操作hbase数据库,并映射到hive
依赖条件:需要有Hadoop,hive,zookeeper,hbase环境映射:每一个在 Hive 表中的域都存在于 HBase 中,而在 Hive 表中不需要包含所有HBase 中的列。HBase 中的 RowKey 对应到 Hive 中为选择一个域使用 :key 来对…...

手机解锁方法:8个顶级的 Android 手机解锁软件
一般来说,太简单的密码是不安全的,所以我们设置一个安全的密码,可能会稍微复杂一点。然而,我们可能经常会忘记复杂的密码并锁定我们的 Android 智能手机。 8个顶级的 Android 手机解锁软件 如果您遇到过这种情况并且正在寻找一种…...

JVS快速开发平台2.1.7版本,列表页配置新增特性介绍
JVS 在3月份更新了2.1.7版本,本次更新涉及到很多方面,其中包括逻辑引擎、流程引擎、列表引擎、数据处理引擎、图表配置加工等。这里我们先介绍下列表页配置引擎扩展的相关内容,我们先来看看最后配置的列表页配置的效果1、列表页展示方面&…...

【华为机试真题详解 Python实现】去除多余空格【2023 Q1 | 100分】
文章目录 前言题目描述输入描述输出描述示例 1解题思路参考代码前言 《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即非性能…...

【SpringBoot项目实战+思维导图】瑞吉外卖⑤(新增套餐、套餐分页查询、删除套餐、短信发送、手机验证码登录)
文章目录新增套餐需求分析数据模型准备工作前端页面分析代码开发根据分类查询菜品功能实现功能测试保存套餐功能实现功能测试思维导图总结套餐分页查询需求分析前端页面分析代码开发基本信息查询问题分析功能完善功能测试思维导图总结删除套餐需求分析前端页面分析代码开发功能…...

OpenAI 发布GPT-4——全网抢先体验
OpenAI 发布GPT-4 最近 OpenAI 犹如开挂一般,上周才刚刚推出GPT-3.5-Turbo API,今天凌晨再次祭出GPT-4这个目前最先进的多模态预训练大模型。与上一代GPT3.5相比,GPT-4最大的飞跃是增加了识图能力,并且回答准确性也得到显著提高。…...

C++——多态
多态分为两类静态多态:函数重载和运算符重载属于静态多态,复用函数名动态多态:派生类和虚函数实现运行时多态静态多态和动态多态的区别:静态多态的函数地址早绑定——编译阶段确定函数地址动态多态的函数地址晚绑定——运行阶段确…...

javaSE系列之类与对象
javaSE系列之类与方法什么是类类的定义书写事项什么是实例化this引用this的注意事项对象的初始化构造方法封装的概念访问限定符封装扩展之包static成员static的特性static的初始化代码块注意事项内部类1.实例内部类💗 💗 博客:小怡同学💗 &am…...

远程构建(命令、脚本构建)jenkins
在对应项目,开启远程构建开关添加API token系统设置调整用户权限获取crumbcurl调用构建 1、进入对应项目的设置页面:开启远程构建开关 2、 添加 API token:进入对应用户的设置页面 3、系统设置调整权限,如图 4、由于jenkins的安全…...

2023-03-15 ElasticSearch
ElasticSearch 1.Docker安装ElasticSearch 1.1. es及kibana下载 docker pull elasticsearch:7.4.2 docker pull kibana:7.4.2创建映射文件: mkdir -p /elasticsearch/configmkdir -p /elasticsearch/datamkdir -p /elasticsearch/plugins在config下执行 vim elasticsearch…...

指针和数组笔试题解析【下篇】
文章目录👁️6.指针笔试题👀6.1.试题(1)👀6.2.试题(2)👀6.3.试题(3)👀6.4.试题(4)👀6.5.试题(5&am…...

DHCP原理简析及交互实践
环境: os:centos7 dnsmasq:version 2.76 一. dhcp工作原理 首先补充几个dhcp相关的基本概念: 1、动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用…...