当前位置: 首页 > news >正文

2.4路由日志管理

2.4路由/日志管理

一、静态路由和动态路由

路由器在转发数据时,需要现在路由表中查找相应的路由,有三种途径

(1)直连路由:路由器自动添加和自己直连的路由 (2)静态路由:管理员手动添加的路由 (3)动态路由:由路由协议动态建立的路由 

静态路由

缺点 不能动态的反映网络拓扑,当网络发生变化的时候,管理员必须 手动的改变路由 优点 不会占用路由器太多的cpu和RAM资源,也不会占用太多带宽。 如果出于安全的考虑想隐藏网咯的某些部分或者管理员想控制数据转 发路径也可以使用静态路由,小网络也可以配置静态路由 因为便捷

默认路由

(1) 实际上默认路由是一种特殊的静态路由,指的是当 路由表中与包的 目的地址之间没有匹配的表项时,路由器能够做出选择。如果没有默 认路由,那么目的地址在路由表中没有匹配表项的包将被丢弃。 (2)默认路由(Default route),如果IP数据包中的目的地址找不到存在 的其它路由时,路由器会默认的选择的路由。 默认路由为0.0.0.0 匹配IP地址时,0表示wildcard,任何值都是可以的,所有0.0.0.0.和任 何目的地址匹配都会成功,造成默认路由要求的效果。就是说0可以匹 配任何的IP地址。

动态路由

动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之 间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链 路和节点的变化适时地进行自动调整。当网络中节点或节点间的链路 发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可 用路由并继续转发报文。

二、Linux路由操作

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.120.2   0.0.0.0         UG    100    0        0 ens33
192.168.120.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33Destination  目标网络或目标主机
Gateway 网关
Genmask 网络掩码
Flags 定义的标记Metric  路由的距离Ref  路由的中转次数Use  此路由向查找的次数Iface 设备名称ip方式(rhel7)
查看路由表
[root@localhost ~]# ip r
default via 10.18.44.1 dev enp0s25
10.18.40.100 via 10.18.44.1 dev enp0s25 proto dhcp metric 100
10.18.44.0/24 dev enp0s25 proto kernel scope link src 10.18.44.196 metric
100
10.18.45.0/24 via 10.18.44.1 dev enp0s25
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1删除默认网关
[root@localhost ~]#ip r d default删除静态路由:
[root@localhost ~]#ip r del 10.18.45.0/24添加默认网关:
[root@localhost ~]# ip r add default via 10.18.44.1 dev enp0s25添加静态路由:
[root@localhost ~]# ip r add 10.18.45.0/24 via 10.18.44.1 dev enp0s25

三、实战

1、添加默认路由

2、Linux服务器配置静态路由并测试

四、端口和服务解析

1、网络端口

在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器
的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口
等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP
协议中的端口,是逻辑意义上的端口。
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房
子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之
多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到
65535(2^16-1)。
在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据
包根据其目的主机的ip地址来进行互联网络中的路由选择,把数据包顺
利的传送到目的主机。大多数操作系统都支持多程序(进程)同时运
行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程
中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进 来。 本地操作系统会给那些有需求的进程分配协议端口(protocol port,即 我们常说的端口),每个协议端口由一个正整数标识,如:80,139, 445,等等。当目的主机接收到数据包后,将根据报文首部的目的端口 号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取 数据并等待下一组数据的到来。说到这里,端口的概念似乎仍然抽 象,那么继续跟我来,别走开。 端口其实就是队,操作系统为各个进程分配了不同的队,数据包按照 目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下, 这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己 的队的大小。 不光接受数据包的进程需要开启它自己的端口,发送数据包的进程也 需要开启端口,这样,数据包中将会标识有源端口,以便接受方能顺 利地回传数据包到这个端口。 

2、常见服务管理操作

列出所有启动的units
[root@localhost ~]#systemctl list-units列出所有的启动文件
[root@localhost ~]#systemctl list-unit-files启动服务httpd
[root@localhost ~]#systemctl start httpd查看服务的状态
[root@localhost ~]#systemctl status httpd
[root@localhost ~]#systemctl status httpd -l关闭
[root@localhost ~]#systemctl stop httpd先关闭在重启
[root@localhost ~]#systemctl restart httpd重新加载配置文件
[root@localhost ~]#systemctl reload httpd设置开机启动
[root@localhost ~]#systemctl enable httpd设置开机关闭
[root@localhost ~]#systemctl disable httpd

五、日志

1、日志重要性

Linux系统日志对管理员来说,是了解系统运行的主要途径,因此需要 对 Linux 日志系统有个详细的了解。 Linux 系统内核和许多程序会产生各种错误信息、告警信息和其他的提 示信息,这些各种信息都应该记录到日志文件中,完成这个过程的程 序就是 rsyslog,rsyslog 可以根据日志的类别和优先级将日志保存到不 同的文件中。 

2、常见系统日志

/var/log/message:记录Linux操作系统常见的系统和服务错误信息 登录安装删除等/var/log/boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自
检过程显示的信息/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息(一般通
过命令 lastlog 查看)/var/log/secure :Linux系统安全日志,记录用户和工作组变坏情况、用户登
陆认证情况 用户登录失败 成功  建用户的日志/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停
机的事件,使用last命令查看
/var/log/message:记录Linux操作系统常见的系统和服务错误信息
[root@localhost ~]# tailf /var/log/messages 
Nov 17 16:35:22 localhost NetworkManager[687]: <info>  [1700210122.0512] dhcp4 (ens33):   domain name 'localdomain'
Nov 17 16:35:22 localhost NetworkManager[687]: <info>  [1700210122.0512] dhcp4 (ens33): state changed bound -> bound
Nov 17 16:35:22 localhost dbus[650]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Nov 17 16:35:22 localhost systemd: Starting Network Manager Script Dispatcher Service...
Nov 17 16:35:22 localhost dhclient[22705]: bound to 192.168.120.132 -- renewal in 710 seconds.
Nov 17 16:35:22 localhost dbus[650]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Nov 17 16:35:22 localhost systemd: Started Network Manager Script Dispatcher Service.
Nov 17 16:35:22 localhost nm-dispatcher: req:1 'dhcp4-change' [ens33]: new request (3 scripts)
Nov 17 16:35:22 localhost nm-dispatcher: req:1 'dhcp4-change' [ens33]: start running ordered scripts...
Nov 17 16:38:08 localhost auditd[627]: Audit daemon rotating log files
[root@localhost ~]# yum -y install nginx
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
没有可用软件包 nginx。
错误:无须任何处理
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install nginx
[root@localhost ~]# yum -y remove httpd[root@localhost ~]# id apache
uid=48(apache) gid=48(apache) 组=48(apache)[root@localhost ~]# userdel -r apache
userdel: apache 邮件池 (/var/spool/mail/apache) 未找到
userdel:未找到 apache 的主目录“/usr/share/httpd”[root@localhost ~]# id apache
id: apache: no such user[root@localhost ~]# chattr -i /etc/passwd
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# lsof -i:80[root@localhost ~]# systemctl restart httpd会包这个错 我的刚才的用户应该是没有删除
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.[root@localhost ~]# tailf /var/l
lib/   local/ lock/  log/   
[root@localhost ~]# tailf /var/log/messages 
Nov 17 16:47:12 localhost systemd: Started Network Manager Script Dispatcher Service.
Nov 17 16:47:12 localhost nm-dispatcher: req:1 'dhcp4-change' [ens33]: new request (3 scripts)
Nov 17 16:47:12 localhost nm-dispatcher: req:1 'dhcp4-change' [ens33]: start running ordered scripts...
Nov 17 16:49:21 localhost yum[79649]: Erased: httpd-2.4.6-99.el7.centos.1.x86_64
Nov 17 16:49:21 localhost systemd: Reloading.
Nov 17 16:52:33 localhost systemd: Reloading.
Nov 17 16:52:33 localhost yum[82550]: Installed: httpd-2.4.6-99.el7.centos.1.x86_64
Nov 17 16:54:24 localhost systemd: Starting The Apache HTTP Server...
Nov 17 16:54:24 localhost httpd: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Nov 17 16:54:24 localhost systemd: Started The Apache HTTP Server.[root@localhost ~]# useradd apache
useradd:用户“apache”已存在
进去删除之前的就可以了
[root@localhost ~]# vi  /etc/group[root@localhost ~]# lsattr /etc/passwd
---------------- /etc/passwd
[root@localhost ~]# chattr -i /etc/passwd
[root@localhost ~]# useradd apache
useradd:用户“apache”已存在

3、rsyslog日志管理

3.1、日志类型
auth pam 产生的日志 authpriv ssh,ftp 等登录信息的验证信息 cron 时间任务相关 kern 内核 lpr 打印 mail 邮件 mark(syslog)-rsyslog 服务内部的信息,时间标识 news 新闻组 user 用户程序产生的相关信息 
3.2、日志优先级
日志级别分为:7种日志级别代号0-7 0 debug 有调试信息的,日志信息最多 1 info 一般信息的日志,最常用 2 notice 最具有重要性的普通条件的信息 3 warning 警告级别 4 err 错误级别,阻止某个功能或者模块不能正常工作的信息 5 crit 严重级别,阻止整个系统或者整个软件不能工作的信息6 alert 需要立刻修改的信息7 emerg 内核崩溃等严重信息none 什么都不记录
3.3、自定义日志
[root@localhost ~]#vim /etc/rsyslog.conf
日志对象(设备):你要对什么东东做日志
日志级别:级别越低,信息越多
日志文件:存储日志的文件
日志对象.日志级别 日志文件
. 大于或者等于后面指定的日志级别
.= 等于后面指定的日志级别
.! 非
例:
*.* /var/log/mylog
kern.err /var/log/kernel.log
*.info;mail.none /var/log/big.log
mail.info /var/log/mail.log
cron.info;cron.!err /var/log/newcron
cron.info /var/log/newcron
重启日志服务:
[root@localhost ~]#systemctl restart rsyslog清空文件内容
[root@localhost ~]# >  /var/log/rsyslog

4、logrotate日志轮转

4.1、日志轮转
[root@localhost ~]#vim /etc/logrotate.conf
//全局配置
weekly 轮转周期 默认一周轮转一次
rotate 4 轮转次数 默认轮转4次
create 创建新文件
dateext 以轮转时刻的时间作为轮转文件的结尾
//局部配置
include /etc/logrotate.d
missingok 在文件不存在的时候也不报错
create 0644 root utmp强制轮转:
[root@localhost ~]# logrotate -s /var/lib/logrotate/logrotate.status
/etc/logrotate.conf
-s 指定最后的日志轮转记录文件为/var/lib/logrotate/logrotate.status
4.2、日志轮转实例
1:测试日志轮转,轮转文件/var/log/yum.log
[root@localhost ~]#vim /etc/logrotate.d/yum
/var/log/yum.log {
missingok
# notifempty
# size 30k
# yearly
daily
rotate 3
create 0777 root root
}
测试:
[root@localhost ~]#logrotate /etc/logrotate.conf //手动轮转
[root@localhost ~]#ls /var/log/yum*
/var/log/yum.log /var/log/yum.log-20170331
[root@localhost ~]#grep 'yum' /var/lib/logrotate/logrotate.status //记录
所有日志文件最近轮转的时间
"/var/log/yum.log" 2017-3-31-10:0:23
[root@localhost ~]#date 09011000
[root@localhost ~]#logrotate -s /var/lib/logrotate/logrotate.status
/etc/logrotate.conf2:日志安全,操作日志的隐藏权限
/etc/logrotate.d/messages
建议测试时先把/etc/logrotate.d/syslog中messages删除
/var/log/messages {
prerotate
chattr -a /var/log/messages
endscript
#notifempty
daily
create 0600 root root
missingok
rotate 5
postrotate
chattr +a /var/log/messages
endscript
}3:为多个日志文件配置日志轮转
[root@qfedu.com ~]#vim /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}

实验

[root@localhost ~]# vi /etc/logrotate.d/yum 
/var/log/yum.log {missingoknotifemptymaxsize 30kyearlycreate 0600 root root
}[root@localhost ~]# cat /etc/logrotate.d/yum 
/var/log/yum.log {missingok# notifempty# maxsize 30k# yearlydailyrotate 3create 0777 root root
}
[root@localhost ~]# ls /var/log/yum.*
/var/log/yum.log[root@localhost ~]# date
2023年 11月 17日 星期五 17:16:33 CST
[root@localhost ~]# date 11181716
2023年 11月 18日 星期六 17:16:00 CST
[root@localhost ~]# logrotate /etc/logrotate.conf 
[root@localhost ~]# ls /var/log/yum.*
/var/log/yum.log  /var/log/yum.log-20231118在执行  
[root@localhost ~]# logrotate /etc/logrotate.conf 
[root@localhost ~]# ls /var/log/yum.*
/var/log/yum.log  /var/log/yum.log-20231118
4.3、日志轮转中重启服务的重要性
日志轮转配置文件中重启服务的脚本 是为了把新的日志内容写入到新 的日志文件里 因为旧的日志文件被轮转只是改了个名字,INODE并没 有变,但是日志程序是按日志文件的 inode号识别文件的,所以需要重 启日志以改变日志文件为新的文件 

六、实战

1、使用rsyslog自定义日志

2、使用Logrotate对日志进行日志轮转

相关文章:

2.4路由日志管理

2.4路由/日志管理 一、静态路由和动态路由 路由器在转发数据时&#xff0c;需要现在路由表中查找相应的路由&#xff0c;有三种途径 &#xff08;1&#xff09;直连路由&#xff1a;路由器自动添加和自己直连的路由 &#xff08;2&#xff09;静态路由&#xff1a;管理员手动…...

归并排序详解:递归实现+非递归实现(图文详解+代码)

文章目录 归并排序1.递归实现2.非递归实现3.海量数据的排序问题 归并排序 时间复杂度&#xff1a;O ( N * logzN ) 每一层都是N,有log2N层空间复杂度&#xff1a;O&#xff08;N&#xff09;&#xff0c;每个区间都会申请内存&#xff0c;最后申请的数组大小和array大小相同稳定…...

DataBinding原理

1、MainActivity首先使用DataBindingUtil.setContentView设置布局文件activity_main.xml。 2、随后&#xff0c;经过一系列函数调用&#xff0c;ActivityMainBindingImpl对象最终会实例化&#xff0c;并与activity_main.xml进行绑定。 3、实例化后的ActivityMainBindingImpl对象…...

docker更换国内源

docker更换国内源 1、编辑Docker配置文件 在终端中执行以下命令&#xff0c;编辑Docker配置文件&#xff1a; vi /etc/docker/daemon.json2、添加更新源 在打开的配置文件中&#xff0c;添加以下内容&#xff1a; {"registry-mirrors": ["https://hub-mirror…...

【咖啡品牌分析】Google Maps数据采集咖啡市场数据分析区域分析热度分布分析数据抓取瑞幸星巴克

引言 咖啡作为一种受欢迎的饮品&#xff0c;已经成为我们生活中不可或缺的一部分。随着国内外咖啡品牌的涌入&#xff0c;新加坡咖啡市场愈加多元化和竞争激烈。 本文对新加坡咖啡市场进行了全面的品牌门店数占比分析&#xff0c;聚焦于热门品牌的地理分布、投资价值等。通过…...

【Java】异常处理(一)

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;Java ⭐每日一句&#xff1a;什么都不做&#xff0c;才会来不及 &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️ 文章目录 &#x1f4cb;前…...

【高级程序设计】Week2-4Week3-1 JavaScript

一、Javascript 1. What is JS 定义A scripting language used for client-side web development.作用 an implementation of the ECMAScript standard defines the syntax/characteristics of the language and a basic set of commonly used objects such as Number, Date …...

PHP笔记-->读取JSON数据以及获取读取到的JSON里边的数据

由于我以前是写C#的&#xff0c;现在学一下PHP&#xff0c; 在读取json数据的时候被以前的思维卡住了。 以前用C#读取的时候&#xff0c;是先定义一个数组&#xff0c;将反序列化的json存到数组里面&#xff0c;在从数组里面获取jaon中的“data”数据。 其实PHP的思路也是一样…...

【Spring Boot】如何集成Redis

在pom.xml文件中导入spring data redis的maven坐标。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 在application.yml文件中加入redis相关配置。 spr…...

Elasticsearch备份与还原:使用elasticdump

在数据管理的世界里&#xff0c;备份和还原数据是重中之重的日常工作&#xff0c;特别是对于Elasticsearch这样的强大而复杂的搜索引擎。备份不仅可以用于灾难恢复&#xff0c;还可以在数据迁移、测试或者升级等场景中发挥重要作用。 在本博客中&#xff0c;我们将会重点介绍如…...

给大伙讲个笑话:阿里云服务器开了安全组防火墙还是无法访问到服务

铺垫&#xff1a; 某天我在阿里云上买了一个服务器&#xff0c;买完我就通过MobaXterm进行了ssh&#xff08;这个软件是会保存登录信息的&#xff09; 故事开始&#xff1a; 过了n天之后我想用这个服务器来部署流媒体服务&#xff0c;咔咔两下就部署好了流媒体服务器&#x…...

js:react使用zustand实现状态管理

文档 https://www.npmjs.com/package/zustandhttps://github.com/pmndrs/zustandhttps://docs.pmnd.rs/zustand/getting-started/introduction 安装 npm install zustand示例 定义store store/index.js import { create } from "zustand";export const useCount…...

vue3+vite+SQL.js 读取db3文件数据

前言&#xff1a;好久没写博客了&#xff0c;最近一直在忙&#xff0c;没时间梳理。最近遇到一个需求是读取本地SQLite文件&#xff0c;还是花费了点时间才实现&#xff0c;没怎么看到vite方面写这个的文章&#xff0c;现在分享出来完整流程。 1.pnpm下载SQL.js(什么都可以下)…...

微信小程序 限制字数文本域框组件封装

微信小程序 限制字数文本域框 介绍&#xff1a;展示类组件 导入 在app.json或index.json中引入组件 "usingComponents": {"text-field":"/pages/components/text-field/index"}代码使用 <text-field maxlength"500" bindtabsIt…...

阿里国际站(直通车)

1.国际站流量 2.直通车即P4P&#xff08;pay for performance点击付费&#xff09; 2.1直通的含义&#xff1a;按点击付费&#xff0c;通过自助设置多维度展示产品信息&#xff0c;获得大量曝光吸引潜在买家。 注意&#xff1a;中国大陆和尼日利尼地区点击不扣费。 2.2扣费规…...

C# GC机制

在C#中&#xff0c;垃圾回收&#xff08;Garbage Collection&#xff0c;简称GC&#xff09;是CLR&#xff08;公共语言运行时&#xff09;的一个重要部分&#xff0c;用于自动管理内存。它会自动释放不再使用的对象所占用的内存&#xff0c;避免内存泄漏&#xff0c;减少程序员…...

wpf devexpress在未束缚模式中生成Tree

TreeListControl 可以在未束缚模式中没有数据源时操作&#xff0c;这个教程示范如何在没有数据源时创建tree 在XAML生成tree 创建ProjectObject类实现数据对象显示在TreeListControl: public class ProjectObject {public string Name { get; set; }public string Executor {…...

Python利器:os与chardet读取多编码文件

在数据处理中会遇到读取位于不同位置的文件,每个文件所在的层级不同,而且每个文件的编码类型各不相同,那么如何高效地读取文件呢? 在读取文件时首先需要获取文件的位置信息,然后根据文件的编码类型来读取文件。本文将使用os获取文件路径,使用chardet得到文件编码类型。 …...

微服务和注册中心

微服务和注册中心是紧密相关的概念&#xff0c;可以说注册中心是微服务架构中必不可少的一部分。 在微服务架构中&#xff0c;系统被拆分成了若干个独立的服务&#xff0c;因此服务之间需要进行通信和协作。为了实现服务的发现和调用&#xff0c;需要一个中心化的注册中心来进…...

吴恩达《机器学习》9-1-9-3:反向传播算法、反向传播算法的直观理解

一、正向传播的基础 在正向传播中&#xff0c;从神经网络的输入层开始&#xff0c;通过一层一层的计算&#xff0c;最终得到输出层的预测结果。这是一种前向的计算过程&#xff0c;即从输入到输出的传播。 二、反向传播算法概述 反向传播算法是为了计算代价函数相对于模型参数…...

Java 算法篇-链表的经典算法:判断回文链表、判断环链表与寻找环入口节点(“龟兔赛跑“算法实现)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 链表的创建 2.0 判断回文链表说明 2.1 快慢指针方法 2.2 使用递归方式实现反转链表方法 2.3 实现判断回文链表 - 使用快慢指针与反转链表方法 3.0 判断环链表说明…...

【JS】Chapter13-构造函数数据常用函数

站在巨人的肩膀上 黑马程序员前端JavaScript入门到精通全套视频教程&#xff0c;javascript核心进阶ES6语法、API、js高级等基础知识和实战教程 &#xff08;十三&#xff09;构造函数&数据常用函数 1. 深入对象 1.1 创建对象三种方式 利用对象字面量创建对象const o {…...

06-流媒体-YUV数据在SDL控件显示

整体方案&#xff1a; 采集端&#xff1a;摄像头采集&#xff08;YUV&#xff09;->编码&#xff08;YUV转H264&#xff09;->写封装&#xff08;&#xff28;264转FLV&#xff09;->RTMP推流 客户端&#xff1a;RTMP拉流->解封装&#xff08;FLV转H264&#xff09…...

对象和数据结构

文章目录 前言一、从链式调用说起二、数据抽象三、数据、对象的反对称性四、得墨忒尔律五、数据传送对象总结 前言 代码整洁之道读书随笔&#xff0c;第六章 一、从链式调用说起 面向对象语言中常用的一种调用形式&#xff0c;链式调用&#xff0c;是一种较受推崇的编码风格&…...

ESP32-BLE基础知识

一、存储模式 两种存储模式&#xff1a; 大端存储&#xff1a;低地址存高字节&#xff0c;如将0x1234存成[0x12,0x34]。小端存储&#xff1a;低地址存低字节&#xff0c;如将0x1234存成[0x34,0x12]。 一般来说&#xff0c;我们看到的一些字符串形式的数字都是大端存储形式&a…...

vscode终端npm install报错

报错如下&#xff1a; npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion1, but package-lock.json was generated for lockfileVersion2. Ill try to do my best with it! npm ERR! code EPERM npm ERR! syscall open npm ERR! errno -4048…...

雪花算法的使用

雪花算法的使用(工具类utils) import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;// 雪花算法 Component public class SnowflakeUtils { // Generated ID: 1724603634882318341; // Generated ID: 1724603…...

flink源码分析之功能组件(一)-metrics

简介 本系列是flink源码分析的第二个系列,上一个《flink源码分析之集群与资源》分析集群与资源,本系列分析功能组件,kubeclient,rpc,心跳,高可用,slotpool,rest,metric,future。其中kubeclient上一个系列介绍过,本系列不在介绍。 本文介绍flink metrics组件,metric…...

Nginx反向代理和负载均衡

1.反向代理 反向代理&#xff08;Reverse Proxy&#xff09;方式是指以代理服务器来接受internet上的连接请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;并将从服务器上得到的结果返回给internet上请求连接的客户端&#xff0c;此时代理服务器对外就表现为一…...

基于SSM的供电公司安全生产考试系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…...