【监控系统】日志可视化监控体系ELK搭建

1.ELK架构是什么

ELK是Elasticsearch+Logstash+Kibana的简称。

Elasticsearch是一个开源的分布式搜索和分析引擎,可以用于全文检索、结构化检索和分析,它构建在Lucene搜索引擎库之上,是当前使用较为广泛的开源搜索引擎之一。

Logstash是一个开源的数据搜集引擎是一个用来搜集、分析、过滤日志的工具,使用它可以将搜集来的日志信息进行处理然后进行输出。Logstash支持许多功能强大的插件,可以合理使用这些插件来对搜集到 的日志信息进行过滤和处理。

Kibana是一个基于Web的图形界面,可以使用它对Elasticsearch索引中的数据进行搜索、查看、交互操作。还可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。

Filebeat是一个轻量级的日志搜集器,用于搜集和转发日志数据,Filebeat一般都会安装在需要搜集日志的服务器上,指定需要搜集日志的日志文件的位置,搜集日志信息并转发到Elasticsearch 或Logstash上进行索引。

在这里插入图片描述

其中, Filebeat 主要用于在服务器中采集服务日志信息并输出到 Logstash, Logstash 负责接收所有 Filebeat 传递过来的日志数据,并对数据进行过滤筛选处理后输出到 Elasticsearch, Elasticsearch 主要用于日志消息的存储,搜索和分析,在 Elasticsearch 中存储的索引信息最终会通过 Kibana 在页面上直观的进行展示。最终用户可以在 Kibana 页面中操作索引,查询日志, 监控 Elasticsearch 和 Kibana 的健康状态,以及配置多种 Dashboard 来展示聚合数据信息。

总结来说,ELK 日志监控大体上分为两部分,Elasticsearch、Logstash 和 Filebeat 负责数据的搜集,过滤,存储和分析,Kibana 负责操作存储在 Elasticsearch 中的索引信息,监控 Elasticsearch 和 Kibana 的健康状态以及管理用户信息。 同时用户还可以配置多种 Dashboard 来展示数据聚合信息。

2.为什么采用ELK架构

(1)Elasticsearch、Logstash、Kibana、Filebeat 均为开源组件,并且使用 ELK 搭建日志监控系统的方案也比较成熟。

(2)一般的日志监控系统架构都是采用 ELK(Elasticsearch、Logstash、Kibana)架构去搭建的,但是由于 Logstash 本身是基于 jdk 的,且它集成了许多插件,所以占用内存较大,在每台服务器上都部署一 个 Logstash 有些占用资源,因此我们使用轻量级的 Filebeat 组件来完成搜集日志的操作。但是 Filebeat 只能采集日志数据却无法对数据进行过滤,因此我们在将日志信息输出到 Elasticsearch 之前先使 用 Logstash 对数据进行过滤处理,再将处理好的数据输出到 Elasticsearch。

(3)在微服务场景下,可能存在如下两种情况:

  • 开发或生产环境的微服务项目部署在多台服务器上,此时需要监控多台服务器下的日志信息情况;
  • 一台服务器下既存在开发环境的微服务项目,又存在生产环境的微服务项目,此时需要将搜集到的日志信息加以区分。

这种情况下我们可以在 Filebeat 采集日志时为日志信息指定每个不同环境的唯一前缀后再输出。

3.ElasticSearch8.X源码部署

(1)什么是ElasticSearch

在这里插入图片描述

官网:https://www.elastic.co/cn/elasticsearch/

ElasticSearch是⼀个开源,是⼀个基于Apache Lucene库构建的Restful搜索引擎. Elasticsearch是在Solr之后⼏年推出的。
它提供了⼀个分布式,多租户能⼒的全⽂搜索引擎,具有HTTP Web界⾯(REST)和⽆架构JSON⽂档。
Elasticsearch的官⽅客户端库提供Java,Groovy,PHP,Ruby,Perl,Python,.NET和Javascript。
应⽤场景:维基百科、Stack Overflow、GitHub、电商⽹站、⽇志数据分析、商品价格监控⽹站、BI系统、站内搜索

(2)Elasticsearch核心概念

  • Index索引
ES将数据存储于一个或多个索引中,索引是具有类似特性的文档的集合,相当于关系型数据库中的一个Database。索引由其名称(必须为全小写字符)进行标识,并通过引用此名称完成文档的创建、搜索、更新及删除操作。一个ES集群中可以按需创建任意数目的索引。
  • 类型Type
类型是索引内部的逻辑分区,在一个索引内部可定义一个或多个类型(type),类似于传统数据库中的表。一般来说,类型就是为那些拥有相同的域的文档做的预定义。例如,在索引中,可以定义一个用于存储用户数据的类型,一个存储日志数据的类型,以及一个存储评论数据的类型。
  • 文档Document
文档是索引和搜索的原子单位,它是存储在ES中的一个JSON格式的字符串,其中包含了一个或多个域(Field)的容器。在ES中每个文档都有一个类型和ID,每个文档由一个或多个域组成,每个域拥有一个名字及一个或多个值,有多个值的域通常称为“多值域”。每个文档可以存储不同的域集,但同一类型下的文档至应该有某种程度上的相似之处。
  • 集群Cluster
集群由一个或多个节点组成,对外提供索引和搜索功能。在一个集群中所有的节点都有一个唯一的名称默认为“Elasticsearch”,当某个节点被设置为相同的集群名称时,会自动加入到集群。如果有多个集群,需要设置不同的名称,否则节点可能会加入到错误的集群。需要注意的是一个节点只能加入一个集群。
  • 节点Node
一个运行中的Elasticsearch实例称为一个节点,它是一个逻辑上独立的服务,可以存储数据,是ES集群的一部分。ES集群由一个或者多个拥有相同cluster.name配置的节点组成,它们共同承担数据和负载的压力。ES集群中的节点有三种不同的类型:
主节点:负责管理集群范围内的所有变更,例如增加、删除索引,或者增加、删除节点等,并决定哪些分片分配给相关的节点、追踪集群中节点的状态等。主节点并不需要涉及到文档级别的变更和搜索等操作,可以通过属性node.master进行设置。
数据节点:存储数据和其对应的倒排索引,同时对数据进行增删改查和聚合等操作。默认每一个节点都是数据节点(包括主节点),可以通过node.data属性进行设置。通常随着集群的扩大,需要增加更多的数据节点来提高性能和可用性。
协调节点:如果node.master和node.data属性均为false,则此节点称为协调节点,用来响应客户请求,均衡每个节点的负载。
  • 路由Routing
当存储一个文档的时候,它会存储在唯一的主分片中,具体哪个分片是通过散列值进行选择。默认情况下这个值由文档的ID生成,如果文档中指定了一个父文档,则从父文档ID中生成。
注:Routing值和路由计算具体到哪个分片有关。
  • 分片Sharding
ES中的索引数据量太大的时候,可以通过水平拆分的方式将一个索引上的数据拆分出来分配到不同的数据块上,这个数据块称为分片,相当于水平分表。一个分片便是一个Lucene的实例,ES中的index就是指向主分片和副本分片的逻辑空间。实际的文档数据被存储和索引到分片内,但是应用程序是直接与索引而不是与分片进行交互。主分片:每个文档都存储在一个分片中,当存储一个文档的时候,ES首先将数据存储在主分片中,然后复制到不同的副本中。ES默认为一个索引创建 5 个主分片, 并分别为每个分片创建一个副本,通过参数可以指定。在索引建立的时候就已经确定了主分片数,但是副本分片数可以随时修改。副本分片:副本分片是主分片的复制,每个主分片有0个或者多个副本。当主分片异常的时候,可以从副本分片中选择一个作为主分片,提高可用性。同时,查询可以在副本分片进行,减轻主分片的压力,提高性能。
  • 元数据
Elasticsearch中以 “ _” 开头的属性都成为元数据,都有自己特定的意思。

(3)上传安装包和解压

tar -zxvf elasticsearch-8.4.1-linux-x86_64.tar.gz

(4)elasticsearch默认不允许以root账号运行,新建一个用户运行es

创建用户:useradd es_user
设置密码:passwd es_user

在这里插入图片描述

(5)修改目录权限

# chmod是更改文件的权限   
# chown是改改文件的属主与属组  
# chgrp只是更改文件的属组。chgrp -R es_user /usr/local/software/elasticsearch-8.4.1
chown -R es_user /usr/local/software/elasticsearch-8.4.1
chmod -R  777 /usr/local/software/elasticsearch-8.4.1

在这里插入图片描述

(6)修改文件和进程最大打开数,需要root用户,如果系统本身有这个文件最大打开数和进程最大打开数配置,则不用

vi /etc/security/limits.conf* soft nofile 65536
* hard nofile 65536

(7)修改虚拟内存空间,默认太小

在配置文件中改配置 最后一行上加上,执行 sysctl -p(立即生效)
vi /etc/sysctl.conf vm.max_map_count=262145

(8)修改elasticsearch的JVM内存,机器内存不足,常规线上推荐16到24G内存

vi config/jvm.options-Xms1g
-Xmx1g

(9)修改 elasticsearch相关配置

vi config/elasticsearch.ymlcluster.name: my-application
node.name: node-1
path.data: /usr/local/software/elasticsearch-8.4.1/data
path.logs: /usr/local/software/elasticsearch-8.4.1/logs
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
ingest.geoip.downloader.enabled: false
配置说明:
cluster.name: 指定Elasticsearch集群的名称。所有具有相同集群名称的节点将组成一个集群。
node.name: 指定节点的名称。每个节点在集群中应该具有唯一的名称。
path.data: 指定用于存储Elasticsearch索引数据的路径。
path.logs: 指定Elasticsearch日志文件的存储路径。
network.host: 指定节点监听的网络接口地址。0.0.0.0表示监听所有可用的网络接口,开启远程访问连接
http.port: 指定节点上的HTTP服务监听的端口号。默认情况下,Elasticsearch的HTTP端口是9200。
cluster.initial_master_nodes: 指定在启动集群时作为初始主节点的节点名称。
xpack.security.enabled: 指定是否启用Elasticsearch的安全特性。在这里它被禁用(false),意味着不使用安全功能。
xpack.security.enrollment.enabled: 指定是否启用Elasticsearch的安全认证和密钥管理特性。在这里它被禁用(false)。
ingest.geoip.downloader.enabled: 指定是否启用GeoIP数据库下载功能。在这里它被禁用(false)

(10)启动ElasticSearch,切换到es_user用户启动

./elasticsearch &

在这里插入图片描述

(11)常见命令访问es的服务状态

#查看集群健康情况
http://ip:9200/_cluster/health

在这里插入图片描述

#查看分片情况
http://ip:9200/_cat/shards?v=true&pretty

在这里插入图片描述

#查看节点分布情况
http://ip:9200/_cat/nodes?v=true&pretty

在这里插入图片描述

#查看索引列表
http://ip:9200/_cat/indices?vip

在这里插入图片描述

(12)部署es常见的问题

磁盘空间需要85%以下,不然ES状态会不正常
不要用root用户安装
linux内存不够
linux文件句柄
没开启远程访问 或者 网络安全组没看开放端口
有9300 tcp端口,和http 9200端口,要区分
没权限访问,重新执行目录权限分配

4.Kibana8.X源码部署

(1)什么是Kibana

在这里插入图片描述

  • 基于node.js开发,数据可视化和仪表盘工具,连接到Elasticsearch,通过简单易用的用户界面创建各种图表、图形和仪表盘
  • 帮助用户快速探索和理解数据,并进行强大的数据分析和可视化

(2)上传安装包和解压

tar -zxvf kibana-8.4.1-linux-x86_64.tar.gz

(3)配置用户权限

chgrp -R es_user /usr/local/software/kibana-8.4.1
chown -R es_user /usr/local/software/kibana-8.4.1
chmod -R  777 /usr/local/software/kibana-8.4.1

(4)修改配置文件

vim config/kibana.ymlserver.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://ip:9200"] #es部署机器的IP地址
i18n.locale: "zh-CN" #汉化
server.port: 指定Kibana服务器监听的端口号,Kibana将在5601端口上监听HTTP请求。
server.host: 指定Kibana服务器绑定的网络接口地址, "0.0.0.0"表示监听所有可用的网络接口。
elasticsearch.hosts: 指定ES集群的主机地址,可以配置多个,Kibana将连接到位于"120.24.7.58"主机上、使用默认HTTP端口9200的es
i18n.locale: 指定Kibana界面的语言区域,"zh-CN"表示使用简体中文作为语言。

(5)启动,切换到es_user 用户

./kibana &
  • 访问:192.168.140.100:5601

在这里插入图片描述

(6)开发者工具

在这里插入图片描述

5.SpringBoot部署应用

(1)创建SpringBoot项目,编写测试接口

@RequestMapping("/log")
public String log(){logService.log();return "SUCCESS";
}

(2)配置logback.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration><property name="LOG_HOME" value="./logs" /><!--采用打印到控制台,记录日志的方式--><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 采用保存到日志文件 记录日志的方式,%d{yyyy-MM-dd HH:mm:ss.SSS}:输出日志发生的时间,精确到毫秒。[%thread]:输出日志所在的线程名。%-5level:输出日志级别,使用占位符%5level可以保持日志级别的对齐。%logger{36}:输出日志所在的类名(只输出类名的后36个字符)。%msg:输出日志消息。%n:新行。--><appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/order.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/order-%d{yyyy-MM-dd}.log</fileNamePattern></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 指定某个类单独打印日志 --><logger name="com.lixiang.service.impl.LogServiceImpl"level="INFO" additivity="false"><appender-ref ref="rollingFile" /><appender-ref ref="console" /></logger><root level="INFO" additivity="false"><appender-ref ref="rollingFile" /></root>
</configuration>

(3)打包部署服务器

ps -ef | grep order-service-1.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9 
nohup java -Xms512m -Xmx512m  -jar /usr/local/order/order-service-1.0.jar > order.log 2>&1 &

6.LogStash8.X源码部署

(1)什么是Logstash

  • Logstash是一个用于数据收集、转换和传输的数据处理引擎,支持从各种来源(如文件、日志、数据库等)收集数据。
  • 基于java开发,并对数据进行结构化、过滤和转换,然后将数据发送到Elasticsearch等目标存储或分析系统。
  • 常见的数据采集流程
    • Logstash 采集 –> Elasticsearch –> Kibana
    • Beats 采集(Filebeat/Metricbeat)–> Elasticsearch –> Kibana
    • Beats 采集(Filebeat/Metricbeat)–> Logstash –> Elasticsearch –> Kibana

(2)LogStash宏观配置文件组成

在这里插入图片描述

(3)上传安装包和解压

tar -zxvf logstash-8.4.1-linux-x86_64.tar.gz

(4)修改配置文件

  • JVM内存不够的话修改 config/jvm.options
  • 创建新配置文件 touch config/test-logstash.conf
input {file {path => "/usr/local/order/logs/order.log"start_position => "beginning"stat_interval => "3"type => "order-service-log"}
}output {if [type] == "order-service-log" {elasticsearch {hosts => ["http://192.168.140.100:9200"]index => "order-service-%{+YYYY.MM.dd}"}}
}
input:指定Logstash接收数据的输入插件,使用file插件作为输入。file插件用于读取并处理文件中的数据。
file:指定使用的输入插件是file插件。
path:指定要读取的文件路径,Logstash会读取位于"/usr/local/software/log/access.log"路径下的文件。
start_position:指定从文件的哪个位置开始读取数据。设置为"beginning"表示从文件的开始位置开始读取数据。
stat_interval:指定文件的状态检查间隔(以秒为单位)。设置为"3"表示每隔3秒检查一次文件状态,以判断是否有新数据。
type:指定数据的类型名称。设置为"nginx-access-log"表示数据的类型是Nginx访问日志。
output:指定Logstash处理完数据后的输出插件。使用elasticsearch插件将处理后的日志数据发送到Elasticsearch。
elasticsearch:指定使用的输出插件是elasticsearch插件。
hosts:指定Elasticsearch集群的主机地址。Logstash将处理后的数据发送到位于"192.168.140.100"主机上,HTTP端口9200的ES节点
index:指定数据在Elasticsearch中的索引名称,比如【 filebeat-8.4.1-2023.07.02 】使用[@metadata][beat]字段、[@metadata][version]字段和当前日期来构建索引名称可以根据采集数据的来源和版本动态创建索引。

(5)启动,进入bin目录

./logstash -f /usr/local/software/logstash-8.4.1/config/test-logstash.conf &

(6)访问kibana,查看索引管理

在这里插入图片描述

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

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

相关文章

风电场数字孪生-升压站BIM三维模型-obj格式

简介&#xff1a; 风电场中的升压站三维模型&#xff0c;obj格式&#xff0c;采用BIM技术建模&#xff0c;可应用于风电场三维数字孪生领域&#xff0c;用于对升压站进行漫游浏览&#xff1b;三维可视化场景应用&#xff1b;风电场三维设计模型。 下载地址 风电场数字孪生-升…

【hive-解决】HiveAccessControlException Permission denied: CREATEFUNCTION

文章目录 一.任务描述二. 解决 一.任务描述 Error while compiling statement: FAILED: HiveAccessControlException Permission denied: Principal [nameroot, typeUSER] does not have following privileges for operation CREATEFUNCTION [ADMIN PRIVILEGE on INPUT, ADMIN…

ajax,axios,fetch

文章目录 ajax工作原理ajax发请求四个步骤创建xmlhttprequest对象设置请求方式设置回调函数发送请求 自封装ajax axiosaxios 特性如何用配置拦截器 fetch三者区别 ajax 工作原理 Ajax的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎)&#xff0c;使用户操作与服务…

【Linux】:进程间通信和日志模拟

进程间通信 一.基本概念二.简单的通信-管道(匿名管道)1.建立通信信道2.通信接口 三.命名管道三.模拟命名管道通信&#xff08;加上日志&#xff09;1.完整代码2.基本使用 一.基本概念 是什么 两个或多个进程实现数据层面的交互。 因为进程独立性的存在&#xff0c;导致进程间…

Deep Learning for Monocular Depth Estimation: A Review.基于深度学习的深度估计

传统的深度估计方法通常是使用双目相机&#xff0c;计算两个2D图像的视差&#xff0c;然后通过立体匹配和三角剖分得到深度图。然而&#xff0c;双目深度估计方法至少需要两个固定的摄像机&#xff0c;当场景的纹理较少或者没有纹理的时候&#xff0c;很难从图像中捕捉足够的特…

[JDK工具-3] javac编译器生成class文件 java执行器运行class文件

位置&#xff1a;jdk\bin 语法&#xff1a;javac 源文件 -d class文件输出路径 -encoding utf-8 javac HelloWorld.java -d D:\project1\java8\java8\xin-javademo\src\main\java\com\xin\demo\hutooldemo\ -encoding utf-8 语法&#xff1a;java 类文件完全限定名&#xff08;…

pyinstaller 打包pyqt6等ui文件为exe可执行程序的方法

刚开始使用auto-py-to-exe打包pyqt6的程序&#xff0c;折腾好半天都会出错&#xff0c;关键打包出来的exe单文件有快100兆了&#xff0c;真大啊&#xff01; auto-py-to-exe有图形界面&#xff0c;看起来比较直观。 还有中文语言&#xff0c;对使用者比较友善&#xff0c;可以…

2023年【T电梯修理】考试题及T电梯修理考试报名

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 T电梯修理考试题是安全生产模拟考试一点通总题库中生成的一套T电梯修理考试报名&#xff0c;安全生产模拟考试一点通上T电梯修理作业手机同步练习。2023年【T电梯修理】考试题及T电梯修理考试报名 1、【多选题】GB/T1…

轻量封装WebGPU渲染系统示例<35>- HDR环境数据应用到PBR渲染材质

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/BasePbrMaterialTest.ts 当前示例运行效果: 微调参数之后的效果: 此示例基于此渲染系统实现&#xff0c;当前示例TypeScript源码如下: export class BasePbrMateri…

【GUI】-- 11 贪吃蛇小游戏之绘制静态的小蛇

GUI编程 04 贪吃蛇小游戏 4.2 第二步&#xff1a;绘制静态的小蛇 现在绘制静态的小蛇(即小蛇初始位置)&#xff0c;并且完善游戏默认初始状态。这一步还在GamePanel类中实现。 首先&#xff0c;定义了小蛇的数据结构&#xff0c; //定义蛇的数据结构int length; //小蛇总长…

ky10 server aarch64 离线安装openssl3.1.4

离线程序 https://gitcode.net/zengliguang/ky10_aarch64_openssl_install.git 输入下面命令执行离线安装脚本 source openssl_offline_install.sh 安装完成

SMART PLC累计流量功能块(梯形积分法+浮点数累加精度控制)

S7-200SMART PLC数值积分器相关知识请参考下面文章链接: SMART PLC数值积分器功能块(矩形+梯形积分法完整源代码)-CSDN博客文章浏览阅读153次。PLC的数值积分器算法也可以参考下面文章链接:PLC算法系列之数值积分器(Integrator)-CSDN博客数值积分和微分在工程上的重要意义不…

3D应用开发引擎HOOPS如何促进AEC数字化架构革新?

随着科技的不断发展&#xff0c;建筑、工程和施工&#xff08;AEC&#xff09;行业正在掀起令人瞩目的数字化转型浪潮。在这一变革的过程中&#xff0c;Tech Soft 3D的HOOPS SDK&#xff08;软件开发工具包&#xff09;正扮演着关键的角色&#xff0c;为构建世界一流的AEC和BIM…

AMEYA360:蔡司扫描电镜Sigma系列:扫描电子显微镜的用途原来这么多

扫描电子显微镜是一种全自动的、非破坏性的显微分析系统&#xff0c;可针对无机材料和部分有机材料&#xff0c;迅速提供在统计学上可靠且可重复的矿物学、岩相学和冶金学数据&#xff0c;在采矿业&#xff0c;可用于矿产勘查、矿石表征和选矿工艺优化&#xff0c;在石油和天然…

RabbitMQ 基础操作

概念 从计算机术语层面来说&#xff0c;RabbitMQ 模型更像是一种交换机模型。 Queue 队列 Queue&#xff1a;队列&#xff0c;是RabbitMQ 的内部对象&#xff0c;用于存储消息。 RabbitMQ 中消息只能存储在队列中&#xff0c;这一点和Kafka相反。Kafka将消息存储在topic&am…

Python与ArcGIS系列(九)自定义python地理处理工具

目录 0 简述1 创建自定义地理处理工具2 创建python工具箱0 简述 在arcgis中可以进行自定义工具箱,将脚本嵌入到自定义的可交互窗口工具中。本篇将介绍如何利用arcpy实现创建自定义地理处理工具以及创建python工具箱。 1 创建自定义地理处理工具 在arctoolbox中的自定义工具箱…

【经验之谈·高频PCB电路设计常见的66个问题】

文章目录 1、如何选择PCB 板材&#xff1f;2、如何避免高频干扰&#xff1f;3、在高速设计中&#xff0c;如何解决信号的完整性问题&#xff1f;4、差分布线方式是如何实现的&#xff1f;5、对于只有一个输出端的时钟信号线&#xff0c;如何实现差分布线&#xff1f;6、接收端差…

模电 01

一.半导体基本知识 1.优点&#xff1a;体积小、重量轻、使用寿命长、输入功率小、功率转换效率高。 2.性能介于导体与绝缘体 3.常用半导体材料&#xff1a;硅&#xff08;SI&#xff09; 镉&#xff08;Ge&#xff09;,化合物半导体&#xff1a;砷化镓&#xff08;GaAs&…

网工内推 | 字节原厂,正式编,网络工程师,最高30K*15薪

01 字节跳动 招聘岗位&#xff1a;网络虚拟化高级研发工程师 职责描述&#xff1a; 1、负责字节跳动虚拟网络产品的研发&#xff0c;包括但不局限于网络VPC、NAT、LB负载均衡等&#xff1b; 2、负责字节跳动网络基础平台的研发&#xff0c;包括但不局限于网络控制面系统、容器…

【Java 进阶篇】JavaScript JSON 语法入门:轻松理解数据的序列化和反序列化

嗨&#xff0c;亲爱的小白们&#xff01;欢迎来到这篇关于 JavaScript 中 JSON&#xff08;JavaScript Object Notation&#xff09;语法的入门指南。JSON 是一种轻量级的数据交换格式&#xff0c;广泛应用于前端开发中。通过这篇博客&#xff0c;我将带你深入了解 JSON 的语法…