springboot第37集:kafka,mqtt,Netty,nginx,CentOS,Webpack

fc327a9fe80feaba48ab1b5d0b4fbbaf.png

image.png
c022a740e3aba00dcce5133ab1104437.png
binzookeeper-server-start.shconfigzookeeper.properties.png
353da4fa01efe3d80343763ee566a872.png
image.png
7ec455961d64da6f0831b77b39f497df.png
image.png

消费

820ed9e1d77dae4df158b4a8b2639d1d.png
image.png
66aff7769a737bfc3412a99c97330c43.png
image.png
80c887fb5b7d7b9bc3b2921ae3dde143.png
image.png
7a78c8eb111d43f3d8494733990261e5.png
image.png
19f65b1d48941269f2cc4893d8dc96ee.png
image.png
e5cb5ae3499633925ce34ddf9794616f.png
image.png
763c2253e4e1280fca8ec3249b31c0e6.png
image.png
aa996767b3bba8f41e0d9e7a4f040d83.png
image.png
b7f67fbeff8951fb4ac0509a4ea96ee2.png
image.png

Netty的优点有很多:

  • API使用简单,学习成本低。

  • 功能强大,内置了多种解码编码器,支持多种协议。

  • 性能高,对比其他主流的NIO框架,Netty的性能最优。

  • 社区活跃,发现BUG会及时修复,迭代版本周期短,不断加入新的功能。

  • Dubbo、Elasticsearch都采用了Netty,质量得到验证。

在 Mac 上安装 Cassandra 的 cqlsh 可以使用以下步骤:

  1. 安装 Homebrew:如果您尚未安装 Homebrew,请在终端中运行以下命令:/usr/bin/ruby -e "$(curl -fsSL raw.githubusercontent.com/Homebrew/in…[1])"

  2. 安装 Cassandra:使用以下命令安装 Cassandra:brew install cassandra

  3. 启动 Cassandra:使用以下命令启动 Cassandra 服务:cassandra -f

  4. 运行 cqlsh:使用以下命令启动 cqlsh:cqlsh

Cassandra cqlsh - connection refused

启动cqlsh时,保存如下:

在启动时,指定连接的IP和端口

输出结果如下:

Connected to Test Cluster at 100.106.242.180:9042.``[cqlsh 5.0.1 | Cassandra 3.9 | CQL spec 3.4.2 | Native protocol v4]``Use HELP ``for help.``cqlsh>

44e06dd283f90b461a779bec5de0883f.png
image.png
c7f0eebca05881ba39fc7899ae443722.png
image.png
76dcab7ae2f405e734d4c315787bad4b.png
image.png

/etc/security/limits.conf

  1. Open elasticsearch.ymal ;

  2. add bootstrap.system_call_filter: false

5af09ee62e702ae5c7f276bef72b5426.png
image.png
d0eae60f4a899292bf5e2c09a93f06fa.png
image.png

查看用户

cat /etc/passwd

查看用户组

cat /etc/group

查看当前活跃的用户列表

要在 Vite 配置中启用 Gzip 压缩,你需要做以下几个步骤:

  1. 首先,安装 vite-plugin-compression 插件,它可以帮助你在构建时启用 Gzip 压缩。在终端中运行以下命令:

npm install vite-plugin-compression --save-dev
  1. 在你的 Vite 配置文件(通常是 vite.config.js)中,导入 vite-plugin-compression 并在 plugins 数组中添加该插件的配置:

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import viteCompression from 'vite-plugin-compression'; // 导入插件export default defineConfig({// ...其它配置...plugins: [// ...其它插件...// 添加 vite-plugin-compression 插件viteCompression({algorithm: 'gzip', // 使用 Gzip 压缩算法ext: '.gz', // 压缩文件的扩展名deleteOriginFile: false, // 是否删除原始文件}),],// ...其它配置...
});
  1. 保存并关闭配置文件。

这样,当你运行 Vite 构建命令时,vite-plugin-compression 将会在构建完成后自动对生成的静态资源文件进行 Gzip 压缩。

00c3cc0f126a63e7c7902dc6d6983276.png
image.png
ribbon:eager-load:enabled: true # 开启Ribbon的饥饿加载模式,启动时创建 RibbonClientMaxAutoRetries: 1 # 同一台实例的最大重试次数,但是不包括首次调用,默认为1次MaxAutoRetriesNextServer: 2  # 重试负载均衡其他实例的最大重试次数,不包括首次调用,默认为0次OkToRetryOnAllOperations: true  # 是否对所有操作都重试,默认falseServerListRefreshInterval: 2000 # 从注册中心刷新服务器列表信息的时间间隔,默认为2000毫秒,即2秒retryableStatusCodes: 400,401,403,404,500,502,504NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RetryRule #配置规则 重试ConnectTimeout: 3000  #连接建立的超时时长,默认1秒ReadTimeout: 3000 #处理请求的超时时间,默认为1秒MaxTotalConnections: 1000  # 最大连接数MaxConnectionsPerHost: 1000  # 每个host最大连接数restclient:enabled: true

下载并解压缩

首先是下载。在apache的官方网站提供了好多镜像下载地址,然后找到对应的版本,目前最新的是3.4.13。

http://mirrors.cnnic.cn/apache/ZooKeeper/ZooKeeper-3.4.13/ZooKeeper-3.4.13.tar.gz

mkdir -p  /work/zookeeper/zooKeeper-3.4.13
tar  -zxvf  /work/zookeeper/zooKeeper-3.4.13.tar.gz   -C   /work/zookeeper/zooKeeper-3.4.13

安装Zookeeper

安装集群的第一步,在安装目录下,创建好两个目录:日志目录、数据目录。

mkdir -p  /work/zookeeper/zooKeeper-3.4.13/datamkdir -p   /work/zookeeper/zooKeeper-3.4.13/logs

进入 /work/zookeeper/zooKeeper-3.4.13/conf目录,把zoo_sample.cfg文件复制一份名字改成zoo.cfg。

cp zoo_sample.cfg zoo.cfg

1、安装JDK

java -version 保证JDK至少在1.8.0_73以上

2、下载elasticsearch

brew install elasticsearch 3、启动,或者直接elasticsearch命令

brew services start elasticsearch

<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.4&key=粘贴刚刚复制好的key"></script>
module.exports = {configureWebpack: {externals: {'AMap': 'AMap' // 表示CDN引入的高德地图}}
}
<template><div class="box"><div id="container" style="width:500px; height:300px"></div><div class="info"><div class="input-item"><div class="input-item-prepend"><span class="input-item-text" style="width:8rem;">请输入关键字</span></div><input id='tipinput' type="text"></div></div></div>
</template><script>
import AMap from 'AMap' // 引入高德地图
import { onMounted } from 'vue'
export default {name: 'Login',setup () {onMounted(() => {const map = new AMap.Map('container', { // 这里表示创建地图 第一个参数表示地图的div的idresizeEnable: true // 表示是否在加在所在区域的地图,如果定了别的区域,比如北京,就会默认加载北京})// 使用AMap插件 第一个是搜索框插件,第二个地址信息(经纬度名字之类)的插件AMap.plugin(['AMap.Autocomplete', 'AMap.PlaceSearch'], function() {const autoOptions = {// 使用联想输入的input的div的idinput: 'tipinput'}const autocomplete = new AMap.Autocomplete(autoOptions)const placeSearch = new AMap.PlaceSearch({city: '长沙',map: map})AMap.event.addListener(autocomplete, 'select', function(e) {console.log(e.poi.location) // 获取选中的的地址的经纬度placeSearch.search(e.poi.name)})})})return {}}
}
</script><style scoped lang="scss">
@import "~@/styles/scss/_global.scss";
.info {padding: .5rem .7rem;margin-bottom: 1rem;border-radius: .25rem;position: fixed;top: 1rem;background-color: white;width: auto;min-width: 15rem;border-width: 0;right: 1rem;box-shadow: 0 2px 6px 0 rgba(240, 131, 0, .5);.input-item {position: relative;display: flex;flex-wrap: wrap;align-items: center;width: 100%;height: 2.2rem;border: 1px solid $themeTextColor;border-radius: .2rem;.input-item-prepend {margin-right: -1px;}.input-item-prepend {width: 35%;font-size: 13px;border-right: 1px solid $themeTextColor;height: 100%;display: flex;align-items: center;background: rgba(240, 131, 0, .1);span {text-align: center;}}input {width: 60%;background: #fff;padding: .2rem .6rem;margin-left: .3rem;border: none;}}
}
</style>

spring cloud 脚手架,上手即用,集成swagger,对外rest接口,集成主流互联网saas架构,包含es,hbase,kafka,redis,mongo等

16a508e35e9cc1561c2bc67e8c5f1ad0.png
image.png

在 Spring Boot 中,BigDecimal 是 Java 中的一个类,用于进行高精度的十进制计算。它通常用于处理需要精确计算的金融、货币和其他需要保持精度的数值运算。

BigDecimal 的设计目的是避免浮点数计算中的精度问题。浮点数在计算机中是以二进制表示的,所以在某些情况下会产生舍入误差,特别是在涉及小数点后很多位的计算中。而 BigDecimal 使用了大整数和小数的组合表示,可以精确地处理小数位数较多的数值,避免了舍入误差。

在 Spring Boot 中,你可以使用 BigDecimal 类来进行精确的数值计算,比如货币计算、税金计算等。以下是一个简单的示例,展示了如何在 Spring Boot 中使用 BigDecimal

import java.math.BigDecimal;public class BigDecimalExample {public static void main(String[] args) {BigDecimal num1 = new BigDecimal("10.25");BigDecimal num2 = new BigDecimal("5.75");// 加法BigDecimal sum = num1.add(num2);System.out.println("Sum: " + sum);// 减法BigDecimal difference = num1.subtract(num2);System.out.println("Difference: " + difference);// 乘法BigDecimal product = num1.multiply(num2);System.out.println("Product: " + product);// 除法BigDecimal quotient = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);System.out.println("Quotient: " + quotient);}
}

在这个示例中,我们使用了 BigDecimal 类来执行加法、减法、乘法和除法操作,并且可以通过指定精度和舍入模式来得到预期的结果。

各子目录

  • 蓝色 表示文件夹;

  • 灰色 表示普通文件;

  • 绿色 表示可执行文件;

  • 红色 表示压缩文件;

  • 天蓝色 表示链接文件(快捷方式);

常用目录的作用如下:

  • bin: 存放普通用户可执行的指令,普通用户也可以执行;

  • dev : 设备目录,所有的硬件设备及周边均放置在这个设备目录中;

  • boot : 开机引导目录,包括 Linux 内核文件与开机所需要的文件;

  • home: 这里主要存放你的个人数据,具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root 用户除外;

  • usr: 应用程序放置目录;

  • lib: 开机时常用的动态链接库,bin 及 sbin 指令也会调用对应的 lib 库;

  • tmp: 临时文件存放目录 ;

  • etc: 各种配置文件目录,大部分配置属性均存放在这里;

一些常用的命令见下:

作用命令
切换目录cd
显示当前目录完整路径pwd
查看目录下的信息(包括隐藏文件)ls(ls -a)
列出目录下的文件和详细信息ls-l (ll)
创建目录mkdir
创建文件touch
复制文件(文件夹)cp(cp -r)
移动/重命名文件夹和目录mv
删除文件(目录)rm(rm -rf)
删除空文件夹rmdir
查找文件find
获取帮助man / info

常用的快捷键:

作用快捷键
清空至行首Ctrl + U
清空至行尾Ctrl + K
清屏Ctrl + L
终止执行的命令Ctrl + C

tree 命令查看目录树

首先安装一下 sudo yum -y install tree

vim 编辑器使用方法

e5912350c4d6bf8cc6540300ba081da9.png

命令模式

  • i 切换到输入模式,以输入字符;

  • : 切换到底线命令模式,以在最底一行输入命令;

  • a 切换到输入文字模式;

输入模式

在命令模式下按下 i 就进入了输入模式。在输入模式中,可以使用以下按键:

功能命令
向上翻页PageDown / Ctrl + F
向下翻页PageUp / Ctrl + B
跳转到文件首行1G / gg
跳转到末尾行G
跳转到第 # 行#G
行号显示:set nu
行号显示取消:set nonu
插入d / Del
删除当前行dd
复制yy
将缓冲区中的内容粘贴到光标位置处之后p

底线命令模式

基本的命令

  • :q 退出程序;

  • :q! 放弃对文件内容的修改并退出;

  • :w 保存文件;

  • :w /root/xx 另存为;

  • :wq 保存文件并退出;

查看文件内容

一些常见查看文件内容的命令:

功能命令
浏览文件全部内容more / less
查看文件内容(显示行号)cat (cat -n)
在文本文件中查找字符串(显示行号)grep (grep <关键字> <要查找的文件> -n)

进程管理

ps 命令:

  • ps aux ,查看系统中所有进程,使用 BSD 操作系统格式;

  • ps -le ,查看系统中所有进程,使用 Linux 标准命令格式;

输出的格式含义:

  • USER:该进程由哪个用户产生的;

  • PID:进程的 ID;

  • %CPU:进程占用 CPU 资源的百分比;

  • %MEM:进程占用物理内存的百分比;

  • VSZ:进程占用虚拟内存的大小,单位 KB;

  • RSS:进程占用实际物理内存的大小,单位 KB;

  • TTY:进程在哪个终端运行的,tty1-tty7 代表本地控制台终端,tty1-tty6 是本地的字符界面终端,tty7 是图形终端,pts/0-255 代表虚拟终端,如果是 ? 则代表是系统进程;

  • STAT:进程状态,R-运行,S-睡眠,T-停止,s-包含子进程,+-位于后台;

  • START:进程启动时间;

  • TIME:进程占用 CPU 的运算时间,注意不是系统时间;

  • COMMAND,产生此进程的命令名;

top 命令可以查看系统健康状态,和 Windows 系统中的系统管理器类似。
top 命令的交互模式中可以执行下面命令:

  • ?/h : 显示交互模式的帮助;

  • P :以 CPU 使用率排序,默认就是此项;

  • M:以内存的使用率排序;

  • N :以 PID 排序;

  • q :退出 top;

杀死进程

杀死进程主要有下面几个命令:

功能命令
杀死某个进程kill
按照进程名杀死进程killall
按照进程名杀死进程,加 -t 可以按照终端号踢出用户pkill

常用杀死进程的命令:正常杀死 kill -1 2235 或者强制杀死 kill -9 2235

SSH 操作

Secure Shell(SSH)是建立在应用层基础上的安全网络协议,是专为远程登录会话和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过 SSH,可以把所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度,已经成为Linux系统的标准配置。

SSH 登陆服务器

ssh -p port <username>@<hostname or IP address>

比如我这里购买的腾讯云服务器就可以使用 ssh root@<公网IP/域名> 连接,如果你设置过域名对 IP 的映射,那么 @ 后面写你的域名也可以

SSH 上传/下载文件

SSH 可以通过 scp 命令来上传文件,是 Linux 系统下基于 SSH 登陆进行安全的远程文件拷贝命令,scp 是 secure copy 的简写,可以使用它上传本地文件夹到远程服务器,也可以从远程服务器上下载文件夹到本地:

# 上传文件夹到远程服务器
scp -P port -r /local/dir username@servername:/remote/dir
# scp -p 2333 -r /test/a root@192.168.0.101:/var/b# 从远程服务器下载文件夹
scp -P port -r username@servername:/remote/dir/ /local/dir
# scp -p 2333 -r root@192.168.0.101:/var/b /test/a

-r 参数表示递归复制,即复制该目录下面的文件和目录,如果要上传单个文件,只要把 -r 删除。大写的 P 表示的是端口,如果还是默认的 SSH 端口 22 没有更改,则不需要 -P。

在 Vue 3 项目中使用 Vite 作为构建工具,配置文件是 vite.config.js 而不是 vue.config.js。对于性能分析,speed-measure-webpack-plugin 通常与 Webpack 一起使用,而 Vite 使用的是 ESBuild 作为默认的构建工具,所以不能直接在 Vite 中使用这个插件。但是,你可以使用其他方式来进行性能分析。

在 Vite 项目中进行性能分析,你可以考虑使用 Vite 的官方插件 vite-plugin-analysis。以下是在 vite.config.ts 中添加 vite-plugin-analysis 插件的步骤:

  1. 安装插件:

在你的 Vue 3 + Vite 项目根目录下,打开终端或命令行工具,并执行以下命令:

npm install vite-plugin-analysis --save-dev
  1. 配置插件:

打开你的 vite.config.ts 文件,并添加以下配置:

import ViteAnalysis from 'vite-plugin-analysis';export default {plugins: [ViteAnalysis({// 可选配置项,详见插件文档}),],
};

以上配置中,我们导入了 vite-plugin-analysis 插件,并将其作为 Vite 的插件配置项之一。

  1. 运行开发服务器:

在终端或命令行工具中运行以下命令以启动 Vite 开发服务器:

npm run dev

Vite 将会在终端输出详细的性能分析结果,包括模块大小、构建时间等信息,帮助你了解构建过程中的性能状况。

总之,虽然不能直接在 Vite 中使用 speed-measure-webpack-plugin,但使用 Vite 的 vite-plugin-analysis 插件也能帮助你实现类似的性能分析目标。

Apache Kafka起源于LinkedIn,后来于2011年成为开源Apache项目,然后于2012年成为First-class Apache项目。Kafka是用Scala和Java编写的。 Apache Kafka是基于发布订阅的容错消息系统。 它是快速,可扩展和设计分布。

在大数据中,使用了大量的数据。 关于数据,我们有两个主要挑战。第一个挑战是如何收集大量的数据,第二个挑战是分析收集的数据。 为了克服这些挑战,您必须需要一个消息系统。

Kafka专为分布式高吞吐量系统而设计。 Kafka往往工作得很好,作为一个更传统的消息代理的替代品。 与其他消息传递系统相比,Kafka具有更好的吞吐量,内置分区,复制和固有的容错能力,这使得它非常适合大规模消息处理应用程序。

什么是消息系统?

消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,但不担心如何共享它。 分布式消息传递基于可靠消息队列的概念。 消息在客户端应用程序和消息传递系统之间异步排队。 有两种类型的消息模式可用 - 一种是点对点,另一种是发布 - 订阅(pub-sub)消息系统。 大多数消息模式遵循 ****pub-sub ****。

点对点消息系统

在点对点系统中,消息被保留在队列中。 一个或多个消费者可以消耗队列中的消息,但是特定消息只能由最多一个消费者消费。 一旦消费者读取队列中的消息,它就从该队列中消失。 该系统的典型示例是订单处理系统,其中每个订单将由一个订单处理器处理,但多个订单处理器也可以同时工作。 下图描述了结构。

发布 - 订阅消息系统

在发布 - 订阅系统中,消息被保留在主题中。 与点对点系统不同,消费者可以订阅一个或多个主题并使用该主题中的所有消息。 在发布 - 订阅系统中,消息生产者称为发布者,消息使用者称为订阅者。 一个现实生活的例子是Dish电视,它发布不同的渠道,如运动,电影,音乐等,任何人都可以订阅自己的频道集,并获得他们订阅的频道时可用。

加群联系作者vx:xiaoda0423

仓库地址:https://github.com/webVueBlog/JavaGuideInterview

参考资料

[1]

https://raw.githubusercontent.com/Homebrew/install/master/install: https://link.juejin.cn/?target=https%3A%2F%2Fraw.githubusercontent.com%2FHomebrew%2Finstall%2Fmaster%2Finstall

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pillow:Python的图像处理库(安装与使用教程)

在Python中&#xff0c;Pillow库是一个非常强大的图像处理库。它提供了广泛的图像处理功能&#xff0c;让我们可以轻松地操作图像&#xff0c;实现图像的转换、裁剪、缩放、旋转等操作。此外&#xff0c;Pillow还支持多种图像格式的读取和保存&#xff0c;包括JPEG、PNG、BMP、…

db2迁移至oracle

1.思路 &#xff08;1&#xff09;用java连接数据库&#xff08;2&#xff09;把DB2数据导出为通用的格式如csv&#xff0c;json等&#xff08;3&#xff09;导入其他数据库&#xff0c;比如oracle&#xff0c;mongodb。这个方法自由发挥的空间比较大。朋友说他会用springboot…

BananaPi BPI-6202工业控制板全志科技A40i、24V DC输入、RS485接口

Banana Pi BPI-6202“嵌入式单板计算机”采用工业级全志A40i四核Cortex-A7处理器&#xff0c;工业温度范围和长生命周期&#xff0c;2GB DDR3&#xff0c;8GB eMMC闪存&#xff0c;M.2 SATA插槽等。 这是自 Banana Pi去年推出Banana Pi BPI-M2 Ultra SBC 和BPI-M2 Berry以来&am…

算法通关村第8关【黄金】| 寻找祖先问题

思路&#xff1a;递归三部曲 第一步&#xff1a;确定参数和返回值 题目要求找到指定的结点&#xff0c;就需要返回结点。 题目又涉及到p,q就需要传入p,q&#xff0c;需要遍历传入root 第二步&#xff1a;确定终止条件 当遍历到结点为空说明到底没找到返回空 或者遍历到p,…

华为云新生代开发者招募

开发者您好&#xff0c;我们是华为2012UCD的研究团队 为了解年轻开发者的开发现状和趋势 正在邀请各位先锋开发者&#xff0c;与我们进行2小时的线上交流&#xff08;江浙沪附近可线下交流&#xff09; 聊聊您日常开发工作中的产品使用需求 成功参与访谈者将获得至少300元京…

Xshell7和Xftp7的下载、安装及连接服务器的教程

1.下载 1.官网地址&#xff1a; XSHELL - NetSarang Website 选择学校免费版下载 2.将XSHELL和XFTP全都下载下来 2.安装 安装过程就是选择默认选项&#xff0c;然后无脑下一步 3.连接服务器 1.打开Xshell7&#xff0c;然后新建会话 2.填写相关信息 出现Connection establ…

【算法】双指针求解盛最多水的容器

Problem: 11. 盛最多水的容器 文章目录 题目解析算法原理讲解复杂度Code 题目解析 首先我们来解析一下本题 题目中说到&#xff0c;要找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 那我们现在来看最外侧的两根&#xff0c;一个高度为8&#…

Databend 开源周报第 108 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 多源数据目录 …

无涯教程-Android - Intents/Filters

Android Intent 是要执行的操作的抽象描述。它可以与 startActivity 一起启动Activity&#xff0c;将 broadcastIntent 发送给任何BroadcastReceiver组件&#xff0c;并与 startService(Intent)或 bindService(Intent&#xff0c;ServiceConnection&#xff0c;int)与后台服务进…

华硕笔记本摄像头倒置怎么办?华硕笔记本摄像头上下颠倒怎么调整

笔记本电脑相较于台式电脑&#xff0c;更易携带&#xff0c;解决了很大一部分人的使用需求。但是笔记本电脑也存在很多不足&#xff0c;比如华硕笔记本电脑就经常会出现摄像头倒置的错误&#xff0c;出现这种问题要如何修复呢&#xff1f;下面就来看看详细的调整方法。 华硕笔记…

centos安装Nginx配置Nginx

1. 查看操作系统有没有安装Nginx which nginx 2. 使用epel的方式进行安装&#xff08;方法二&#xff09; 先安装epel sudo yum install yum-utils 安装完成后&#xff0c;查看安装的epel包即可 sudo yum install epel 3 开始安装nginx 上面的两个方法不管选择哪个&…

MySQL官网下载安装包

MySQL官网&#xff1a; MySQL MySQL 8.0官网下载地址&#xff1a; MySQL :: Download MySQL Community Server 2023-07-18 MySQL 8.1.0 发布&#xff0c;这是 MySQL 变更发版模型后的第一个创新版本 (Innovation Release) 。 如果在官网中找不到下载位置&#xff0c;点击第二个…

算法面试-深度学习面试题整理(2024.8.29开始,每天下午持续更新....)

一、无监督相关&#xff08;聚类、异常检测&#xff09; 1、常见的距离度量方法有哪些&#xff1f;写一下距离计算公式。 1&#xff09;连续数据的距离计算&#xff1a; 闵可夫斯基距离家族&#xff1a; 当p 1时&#xff0c;为曼哈顿距离&#xff1b;p 2时&#xff0c;为欧…

新建Spring Boot项目

使用IDEA 来创建: 文件-新建-项目 填写项目元数据 选择依赖项 此处可以先选 web-spring web 关于这些依赖项&#xff0c;更多可参考&#xff1a; IDEA创建Spring boot项目时各依赖的说明&#xff08;Developer Tools篇&#xff09;[1] 项目结构介绍 展开项目&#xff0c;此时…

栈和队列(详解)

一、栈 1.1、栈的基本概念 1.1.1、栈的定义 栈&#xff08;Stack&#xff09;&#xff1a;是只允许在一端进行插入或删除的线性表。首先栈是一种线性表&#xff0c;但限定这种线性表只能在某一端进行插入和删除操作。 栈顶&#xff08;Top&#xff09;&#xff1a;线性表允许…

Tensorflow调用训练好的yolov5模型进行推理

文章目录 1、安装TensorFlow-GPU版本1.2、验证是否安装正常 2、将训练好的pt文件转换成onnx文件2.2、什么是Onnx模型和Tensorflow模型2.1、将onnx文件转换成pb文件 1、安装TensorFlow-GPU版本 1、创建虚拟环境python3.8 conda create -n TF2.4 python3.82、进入虚拟环境 conda…

Oracle 本地客户端连接远程 Oracle 服务端并使用 c# 连接测试

这里写自定义目录标题 前言Oracle 客户端安装先决条件下载 Oracle 客户端Oracle 客户端环境变量配置 PL/SQLPL/SQL 下载PL/SQL 配置 配置远程连接tnsnames.ora 文件配置 使用 PL/SQL 连接远程数据库使用 C# 远程访问 Oracle 数据库结语 前言 最近有一个需要使用本地的 Oracle …

即时通讯开发中的性能优化技巧

即时通讯开发在如今的数字化社会中扮演着重要角色&#xff0c;然而&#xff0c;随着用户对即时通讯应用的需求不断增长&#xff0c;开发者们面临着使其应用保持高性能和可靠性的挑战。本文将探讨即时通讯开发中关键的性能优化技巧&#xff0c;帮助开发者们提升应用的用户体验和…

C语言:指针类型的意义

1.指针的类型决定了解引用时访问几个字节 2.指针的类型决定了指针1、-1跳过几个字节 一、指针的类型决定指针解引用时访问几个字节 例如 int 型指针解引用时访问4个字节 char 型指针解引用时访问1个字节 详解代码如下&#xff1a; int b 0x11223344&#xff08;十六进制&…

CSS 滚动容器与固定 Tabbar 自适应的几种方式

问题 容器高度使用 px 定高时&#xff0c;随着页面高度发生变化&#xff0c;组件展示的数量不能最大化的铺满&#xff0c;导致出现底部留白。容器高度使用 vw 定高时&#xff0c;随着页面宽度发生变化&#xff0c;组件展示的数量不能最大化的铺满&#xff0c;导致出现底部留白…