【云原生 | 59】Docker中通過docker-compose部署ELK

目錄

1、組件介紹

2 、項目環境

2.1 各個環境版本

2.2 Docker-Compose變量配置

2.3 Docker-Compose服務配置

3、在Services中聲明了四個服務

3.1 ElasticSearch服務

3.2 Logstash服務

3.3 Kibana服務

3.4 Filebeat服務

4、使用方法

4.1 方法一

4.2 方法二

5、啟動


1、組件介紹

在ELK Stack中同時包括了Elastic Search、LogStash、Kibana以及Filebeat;

各個組件的作用如下:

  • Filebeat:采集文件等日志數據;

  • LogStash:過濾日志數據;

  • Elastic Search:存儲、索引日志;

  • Kibana:用戶界面;

各個組件之間的關系如下圖所示:

image-20221117141758485

2 、項目環境

因為ElasticSearch是用Java語言編寫的,所以必須安裝JDK的環境,并且是JDK 1.8以上。

# 安裝
sudo yum install java-11-openjdk -y
# 安裝完成查看java版本
java -version
>>>:
[root@VM-0-5-centos config]# java --version
openjdk 11.0.16.1 2022-08-12 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.16.1.1-1.el7_9) (build 11.0.16.1+1-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.16.1.1-1.el7_9) (build 11.0.16.1+1-LTS, mixed mode, sharing)

2.1 各個環境版本

  • 操作系統:CentOS 7

  • Docker:20.10.18

  • Docker-Compose:2.4.1

  • ELK Version:7.4.2

  • Filebeat:7.4.2

  • JAVA:11.0.16.1

2.2 Docker-Compose變量配置

首先,在配置文件.env中統一聲明了ES以及各個組件的版本:

.env

ES_VERSION=7.1.0

2.3 Docker-Compose服務配置

創建Docker-Compose的配置文件:

version: '3.4'
?
services:elasticsearch:image: "docker.elastic.co/elasticsearch/elasticsearch:${ES_VERSION}"environment:- discovery.type=single-nodevolumes:- /etc/localtime:/etc/localtime- /elk/elasticsearch/data:/usr/share/elasticsearch/data- /elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- /elk/elasticsearch/plugins:/usr/share/elasticsearch/pluginsports:- "9200:9200"- "9300:9300"logstash:depends_on:- elasticsearchimage: "docker.elastic.co/logstash/logstash:${ES_VERSION}"volumes:- /elk/logstash/config/conf.d/logstash.conf:/usr/share/logstash/pipeline/logstash.confports:- "5044:5044"links:- elasticsearch
?kibana:depends_on:- elasticsearchimage: "docker.elastic.co/kibana/kibana:${ES_VERSION}"volumes:- /etc/localtime:/etc/localtime# kibana.yml配置文件放在宿主機目錄下,方便后續漢化- /elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.ymlports:- "5601:5601"links:- elasticsearch
?filebeat:depends_on:- elasticsearch- logstashimage: "docker.elastic.co/beats/filebeat:${ES_VERSION}"user: root # 必須為rootenvironment:- strict.perms=falsevolumes:- /elk/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro# 映射到容器中[作為數據源]- /elk/filebeat/logs:/usr/share/filebeat/logs:rw- /elk/filebeat/data:/usr/share/filebeat/data:rw# 將指定容器連接到當前連接,可以設置別名,避免ip方式導致的容器重啟動態改變的無法連接情況links:- logstash

3、在Services中聲明了四個服務

  • elasticsearch

  • logstash

  • kibana

  • filebeat

3.1 ElasticSearch服務

創建docker容器掛在的目錄

注意:chmod -R 777 /elk/elasticsearch 要有訪問權限

mkdir -p /elk/elasticsearch/config/
mkdir -p /elk/elasticsearch/data/
mkdir -p /elk/elasticsearch/plugins/
echo "http.host: 0.0.0.0">>/elk/elasticsearch/config/elasticsearch.yml

在elasticsearch服務的配置中有幾點需要特別注意:

  • discovery.type=single-node:將ES的集群發現模式配置為單節點模式;

  • /etc/localtime:/etc/localtime:Docker容器中時間和宿主機同步;

  • /docker_es/data:/usr/share/elasticsearch/data:將ES的數據映射并持久化至宿主機中;

  • /elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins:將插件掛載到主機;

  • /elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:將配置文件掛載到主機;

3.2 Logstash服務

創建docker容器掛在的目錄

注意:chmod -R 777 /elk/logstash 要有訪問權限

mkdir -p /elk/logstash/config/conf.d

在logstash服務的配置中有幾點需要特別注意:

  • /elk/logstash/config/conf.d/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:將宿主機本地的logstash配置映射至logstash容器內部;

下面是LogStash的配置,在使用時可以自定義logstash.conf:

input {# 來源beatsbeats {# 端口port => "5044"}
}
?
output {elasticsearch {hosts => ["http://elasticsearch:9200"]index => "test"}stdout { codec => rubydebug }
}

在這里我們將原來tcp收集方式修改為由filebeat上報,同時固定了索引為test

3.3 Kibana服務

創建docker容器掛在的目錄

注意:chmod -R 777 /elk/kibana 要有訪問權限

mkdir -p /elk/kibana/config

在kibana服務的配置中有幾點需要特別注意:

  • /elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:配置ES的地址;

  • /etc/localtime:/etc/localtime:Docker容器中時間和宿主機同步;

修改 kibana.yml 配置文件,新增(修改)配置項i18n.locale: "zh-CN"

[root@VM-0-5-centos ~]# cd /mydata/kibana/config
?
[root@VM-0-5-centos config]# cat kibana.yml 
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"        # 設置為中文
?
[root@VM-0-5-centos config]# 

3.4 Filebeat服務

注意:chmod -R 777 /elk/filebeat 要有訪問權限

創建docker容器掛在的目錄

mkdir -p /elk/filebeat/config
mkdir -p /elk/filebeat/logs
mkdir -p /elk/filebeat/data

在Filebeat服務的配置中有幾點需要特別注意

  • 配置user: root和環境變量strict.perms=false:如果不配置可能會因為權限問題無法啟動;

volumes:
- ?- /elk/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
+    - <your_log_path>/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
- ?- /elk/filebeat/logs:/usr/share/filebeat/logs:rw
+    - <your_log_path>:/usr/share/filebeat/logs:rw
- ?- /elk/filebeat/data:/usr/share/filebeat/data:rw
+    - <your_data_path>:/usr/share/filebeat/logs:rw

同時還需要創建Filebeat配置文件:

filebeat.yml

filebeat.inputs:- type: logenabled: truepaths:# 容器中目錄下的所有.log文件- /usr/share/filebeat/logs/*.logmultiline.pattern: ^\[multiline.negate: truemultiline.match: after
?
filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false
?
setup.template.settings:index.number_of_shards: 1
?
setup.dashboards.enabled: false
?
setup.kibana:host: "http://kibana:5601"
?
# 直接傳輸至ES
#output.elasticsearch:
# hosts: ["http://es-master:9200"]
# index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"
?
# 傳輸至LogStash
output.logstash:hosts: ["logstash:5044"]
?
processors:- add_host_metadata: ~- add_cloud_metadata: ~

上面給出了一個filebeat配置文件示例,實際使用時可以根據需求進行修改;

4、使用方法

4.1 方法一

使用前必看:

① 修改ELK版本

可以修改在.env中的ES_VERSION字段,修改你想要使用的ELK版本;

② LogStash配置

修改logstash.conf為你需要的日志配置;

③ 修改ES文件映射路徑

修改docker-composeelasticsearch服務的volumes,將宿主機路徑修改為你實際的路徑:

volumes:- /etc/localtime:/etc/localtime
-  - /docker_es/data:/usr/share/elasticsearch/data
+ - [your_path]:/usr/share/elasticsearch/data

并且修改宿主機文件所屬:

sudo chown -R 1000:1000 [your_path]

④ 修改filebeat服務配置

修改docker-composefilebeat服務的volumes,將宿主機路徑修改為你實際的路徑:

volumes:- ./filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
- ?  - /elk/filebeat/logs:/usr/share/filebeat/logs:rw
+    - <your_log_path>:/usr/share/filebeat/logs:rw
- ?  - /elk/filebeat/data:/usr/share/filebeat/data:rw
+    - <your_data_path>:/usr/share/filebeat/logs:rw

⑤ 修改Filebeat配置

修改filebeat.yml為你需要的配置;

Filebeat配置文件詳情參見如下:

[vagrant@localhost filebeat-7.7.1]$ vi filebeat.yml
###################### Filebeat Configuration Example #########################
#=========================== Filebeat inputs =============================filebeat.inputs:# Each - is an input. Most options can be set at the input level, so
#每個-是一個輸入。大多數選項可以在輸入級別設置,因此
# you can use different inputs for various configurations.
#您可以為各種配置使用不同的輸入。
# Below are the input specific configurations.
#下面是特定于輸入的配置。- type: log# Change to true to enable this input configuration.#更改為true以啟用此輸入配置。enabled: true# Paths that should be crawled and fetched. Glob based paths.#應該被爬取的路徑。基礎路徑。paths:#可配置多個路徑- /home/vagrant/apache-tomcat-9.0.20/logs/catalina.*.out#- c:\programdata\elasticsearch\logs\*# Exclude lines. A list of regular expressions to match. It drops the lines that are#排除線路。要匹配的正則表達式列表。它去掉了# matching any regular expression from the list.#匹配列表中的任何正則表達式。#exclude_lines: ['^DBG']# Include lines. A list of regular expressions to match. It exports the lines that are#要匹配的正則表達式列表。它導出# matching any regular expression from the list.#匹配列表中的任何正則表達式。#include_lines: ['^INFO','^ERR', '^WARN']# Exclude files. A list of regular expressions to match. Filebeat drops the files that#排除的文件。要匹配的正則表達式列表。Filebeat刪除的文件# are matching any regular expression from the list. By default, no files are dropped.#匹配列表中的任何正則表達式。默認情況下,沒有文件被刪除。#exclude_files: ['.gz$']# Optional additional fields. These fields can be freely picked#可選的附加字段。這些字段可以自由選擇# to add additional information to the crawled log files for filtering#添加附加信息到抓取的日志文件進行過濾#fields:#  level: debug#  review: 1### Multiline options# Multiline can be used for log messages spanning multiple lines. This is common# Multiline可用于記錄跨多行的消息。這是常見的# for Java Stack Traces or C-Line Continuation#用于Java堆棧跟蹤或c行延續# The regexp Pattern that has to be matched. The example pattern matches all lines starting with [#必須匹配的regexp模式。示例模式匹配以[開頭的所有行multiline.pattern: ^\[# Defines if the pattern set under pattern should be negated or not. Default is false.#定義模式下的模式集是否應該被否定。默認是falsemultiline.negate: true# Match can be set to "after" or "before". It is used to define if lines should be append to a pattern#Match可以設置為“after”或“before”。它用于定義是否應該將行追加到模式中# that was (not) matched before or after or as long as a pattern is not matched based on negate.#在之前或之后匹配的,或者只要模式沒有基于negate匹配。    # Note: After is the equivalent to previous and before is the equivalent to to next in Logstash#注意:在Logstash中,After等同于previous, before等同于nextmultiline.match: after#============================= Filebeat modules ===============================filebeat.config.modules:# Glob pattern for configuration loading#配置加載的Glob模式path: ${path.config}/modules.d/*.yml# Set to true to enable config reloading#設置為true可重新加載配置reload.enabled: false# Period on which files under path should be checked for changes#應該檢查path下的文件是否有更改的時間段#reload.period: 10s#==================== Elasticsearch template setting ==========================setup.template.settings:index.number_of_shards: 1#index.codec: best_compression#_source.enabled: false#================================ General =====================================# The name of the shipper that publishes the network data. It can be used to group
#應該檢查path下文件更改的時間段#發布網絡數據的托運人的名稱。它可以用來分組
# all the transactions sent by a single shipper in the web interface.
#由一個托運人在web interfac中發送的所有事務
#name:# The tags of the shipper are included in their own field with each
#每個托運人的標簽都包含在它們自己的字段中
# transaction published.
#事務發表。
#tags: ["service-X", "web-tier"]# Optional fields that you can specify to add additional information to the
#屬性中添加附加信息的可選字段
# output.
#fields:
#  env: staging#============================== Dashboards =====================================
# These settings control loading the sample dashboards to the Kibana index. Loading
#這些設置控制將樣例指示板加載到Kibana索引。加載
# the dashboards is disabled by default and can be enabled either by setting the
#儀表板在默認情況下是禁用的,可以通過設置
# options here or by using the `setup` command.
#選項或使用' setup '命令。
#setup.dashboards.enabled: false# The URL from where to download the dashboards archive. By default this URL
#下載儀表板歸檔文件的URL。默認情況下,這個URL
# has a value which is computed based on the Beat name and version. For released
#有一個基于節拍名稱和版本計算的值。對發布的
# versions, this URL points to the dashboard archive on the artifacts.elastic.co
#版本號,此URL指向工件.elastic.co上的儀表板存檔
# website.
#setup.dashboards.url:#============================== Kibana =====================================# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
#從Beats 6.0.0版本開始,儀表板是通過Kibana API加載的。
# This requires a Kibana endpoint configuration.
#這需要Kibana端點配置。
setup.kibana:# Kibana Host# Scheme and port can be left out and will be set to the default (http and 5601)# In case you specify and additional path, the scheme is required: http://localhost:5601/path# IPv6 addresses should always be defined as: https://[2001:db8::1]:5601host: "192.168.0.140:5601"# Kibana Space ID# ID of the Kibana Space into which the dashboards should be loaded. By default,# the Default Space will be used.#space.id:#============================= Elastic Cloud ==================================# These settings simplify using Filebeat with the Elastic Cloud (https://cloud.elastic.co/).# The cloud.id setting overwrites the `output.elasticsearch.hosts` and
# `setup.kibana.host` options.
# You can find the `cloud.id` in the Elastic Cloud web UI.
#cloud.id:# The cloud.auth setting overwrites the `output.elasticsearch.username` and
# `output.elasticsearch.password` settings. The format is `<user>:<pass>`.
#cloud.auth:#================================ Outputs =====================================# Configure what output to use when sending the data collected by the beat.
#配置在發送由節拍收集的數據時使用的輸出。#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:# Array of hosts to connect to.#hosts: ["192.168.0.140:9200"]# Protocol - either `http` (default) or `https`.#protocol: "https"# Authentication credentials - either API key or username/password.#api_key: "id:api_key"#username: "elastic"#password: "changeme"#----------------------------- Logstash output --------------------------------
output.logstash:# The Logstash hostshosts: ["192.168.0.140:5044"]# Optional SSL. By default is off.# List of root certificates for HTTPS server verifications#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]# Certificate for SSL client authentication#ssl.certificate: "/etc/pki/client/cert.pem"# Client Certificate Key#ssl.key: "/etc/pki/client/cert.key"#================================ Processors =====================================# Configure processors to enhance or manipulate events generated by the beat.
#配置處理器以增強或操縱節拍生成的事件。processors:- add_host_metadata: ~- add_cloud_metadata: ~- add_docker_metadata: ~- add_kubernetes_metadata: ~#================================ Logging =====================================# Sets log level. The default log level is info.
# Available log levels are: error, warning, info, debug
#logging.level: debug# At debug level, you can selectively enable logging only for some components.
# To enable all selectors use ["*"]. Examples of other selectors are "beat",
# "publish", "service".
#logging.selectors: ["*"]#============================== X-Pack Monitoring ===============================
# filebeat can export internal metrics to a central Elasticsearch monitoring
# cluster.  This requires xpack monitoring to be enabled in Elasticsearch.  The
# reporting is disabled by default.# Set to true to enable the monitoring reporter.
#monitoring.enabled: false# Sets the UUID of the Elasticsearch cluster under which monitoring data for this
# Filebeat instance will appear in the Stack Monitoring UI. If output.elasticsearch
# is enabled, the UUID is derived from the Elasticsearch cluster referenced by output.elasticsearch.
#monitoring.cluster_uuid:# Uncomment to send the metrics to Elasticsearch. Most settings from the
# Elasticsearch output are accepted here as well.
# Note that the settings should point to your Elasticsearch *monitoring* cluster.
# Any setting that is not set is automatically inherited from the Elasticsearch
# output configuration, so if you have the Elasticsearch output configured such
# that it is pointing to your Elasticsearch monitoring cluster, you can simply
# uncomment the following line.
#monitoring.elasticsearch:#================================= Migration ==================================# This allows to enable 6.7 migration aliases
#migration.6_to_7.enabled: true

4.2 方法二

cd ELK
#修改run.sh里面的ES_HOST、LOG_HOST、KB_HOST
chmod +x ./run.sh ?#使腳本具有執行權限
./run.sh ?#執行腳本

5、啟動

隨后使用docker-compose命令啟動:

docker-compose up -d
Creating network "docker_repo_default" with the default driver
Creating docker_repo_elasticsearch_1 ... done
Creating docker_repo_kibana_1 ? ? ?  ... done
Creating docker_repo_logstash_1 ? ?  ... done
Creating docker_repo_filebeat_1 ? ?  ... done

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18628.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18628.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker安裝nginx 記錄

1、準備工作&#xff08;創建對應目錄&#xff09; mkdir /home/nginx/conf/ mkdir /home/nginx/conf/conf.d mkdir /home/nginx/ssl mkdir /home/nginx/www mkdir /home/nginx/logs2、拉取鏡像 docker pull nginx3、創建臨時nginx docker run -d --name nginxtest -p 8080:…

MySQL8報錯Public Key Retrieval is not allowedz 怎么解決?

問題描述 當我們使用數據庫管理工具連接mysql8的時候&#xff0c;可能遇到報錯&#xff1a; Public Key Retrieval is not allowed 解決辦法 1、在連接屬性中配置allowPublicKeyRetrieval設置為true 2、在連接URL中加上配置allowPublicKeyRetrieval為true

項目經理常犯的錯

人無完人&#xff0c;任何人都會犯錯&#xff1b;下面我們看看項目經理經常會犯那些錯誤&#xff1a; 01、項目范圍識別不清 業務理解的不夠深入&#xff0c;項目目標不清晰&#xff0c;導致范圍邊界不準確&#xff0c;造成需求蔓延。 02、項目計劃不夠準確缺乏彈性 項目目標…

margin-left: auto;使元素靠右

摘要&#xff1a; 今天寫樣式遇到一個東西&#xff0c;就是需要表單居右顯示的&#xff0c;但是作用了彈性布局&#xff0c;其他的都不行的&#xff0c;一開始使用了浮動&#xff0c;但是使用了浮動后盒子就不繼承父盒子的寬度了&#xff0c;移動端還行&#xff0c;自動回到100…

被追著問UUID和自增ID做主鍵哪個好,為什么?

之前無意間看到群友討論到用什么做主鍵比較好 其實 UUID 和自增主鍵 ID 是常用于數據庫主鍵的兩種方式&#xff0c;各自具有獨特的優缺點。 UUID UUID 是一個由 128 位組成的唯一標識符&#xff0c;通常以字符串形式表示。它可以通過不同的算法生成&#xff0c;例如基于時間…

爆料 iOS 18引入ChatGPT!蘋果與OpenAl達成合作

蘋果公司計劃在iOS 18中引入OpenAI的ChatGPT&#xff0c;標志著蘋果與OpenAI之間達成了重要的合作關系。這一合作預計將在2024年的全球開發者大會&#xff08;WWDC&#xff09;上成為焦點。以下是對這一合作事件的詳細分析&#xff1a; 合作背景 技術趨勢&#xff1a;隨著ChatG…

postgressql——Tuple學習(2)

Tuple含義 作用 PG并沒有像Oracle那樣的undo來存放舊數據&#xff0c;而且PG沒有真正意義上的delete&#xff0c;而是將舊版本直接存放于relation文件中&#xff0c;也就是成為了dead tuple。我們可以理解成“過期的數據”含義 tuple就相當于一個存儲數據的小容器&#xff0c;…

#媒體#知識分享#職場發展

光速論文是一款優秀的論文寫作、查重降重工具&#xff0c;備受學術界和科研人員的青睞。關于“光速論文靠譜不”的問題&#xff0c;筆者認為光速論文絕對是一個非常靠譜的工具&#xff0c;以下就為大家詳細介紹一下它的優點。 首先&#xff0c;光速論文提供了豐富的論文寫作模…

win下ssh配置gitlab的問題

項目場景&#xff1a; win環境下gitlab的ssh配置中遇到的問題 問題描述和原因分析 1、倉庫的gitlab的端口不是默認22 2、gitlab的know_host數據無清除&#xff0c;曾經連接過&#xff0c;公鑰密鑰對是重新生成的 以上&#xff0c;都會導致gitlab的ssh配置不成功&#xff0c;…

sql查詢精準替換

select a.formid,a.ApplyUser,a.ApplyDate,a.DepartmentName,a.OperatorName,a.EventDescription,a.SystemName, REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SystemName, ‘3|’, ‘投資交易系統、’), ‘5|’, ‘估值系統、’), ‘6|’…

【機器學習】解鎖AI密碼:神經網絡算法詳解與前沿探索

&#x1f440;傳送門&#x1f440; &#x1f50d;引言&#x1f340;神經網絡的基本原理&#x1f680;神經網絡的結構&#x1f4d5;神經網絡的訓練過程&#x1f686;神經網絡的應用實例&#x1f496;未來發展趨勢&#x1f496;結語 &#x1f50d;引言 隨著人工智能技術的飛速發…

視頻集中存儲LntonCVS視頻監控匯聚平臺智慧園區應用方案

智慧園區&#xff0c;作為現代化城市發展的重要組成部分&#xff0c;承載著產業升級的使命&#xff0c;是智慧城市建設的重要體現。在當前產業園區競爭日益激烈的情況下&#xff0c;越來越多的用戶關注如何將項目打造成完善的智慧園區。 在智慧園區的建設過程中&#xff0c;各類…

【Linux】使用 s3fs 掛載 MinIO 桶

s3fs&#xff08;S3 File System&#xff09;是一個基于FUSE&#xff08;Filesystem in Userspace&#xff09;的用戶空間文件系統&#xff0c;可以將Amazon S3存儲桶掛載到本地文件系統。通過s3fs&#xff0c;我們可以像操作本地文件一樣&#xff0c;對S3存儲桶中的數據進行讀…

【CALayer-CALayer的基本屬性 Objective-C語言】

一、接下來,我們來說這個Layer啊, 1.首先,Layer能接觸到的,就是我們之前說截圖啊,就是我們self.view里面,有一個layer屬性, [self.view.layer renderInContext:(CGContextRef t)]; 那個里面,有一個layer屬性,然后呢,是CALayer類型的, 接下來,我們就來學習一…

Vim安裝與配置教程(解決軟件包Vim沒有安裝可候選)

一、Vim檢測是否安裝 1-輸入vi查看是否安裝&#xff1b; 2-按Tab鍵&#xff0c;顯示以下字符為未安裝&#xff1b; 3-顯示以下字符為已安裝&#xff08;可以看到有Vim&#xff09; 二、Vim安裝過程 1. 打開終端&#xff0c;輸入 sudo apt install vim; 2. 輸入Y/y&#xff…

來聊聊Redis簡單動態字符串SDS

寫在文章開頭 我們都知道redis基于單線程實現的一個高性能內存數據庫,所以了解其底層設計,會讓我們具備一個從微觀的視角極致壓榨redis性能的能力,這其中對于數據結構的設計也是非常巧妙,所以關于redis源碼解析的系列將直接從最基本的字符串的設計說起。 Hi,我是 sharkCh…

母嬰商城購物網站,基于 SpringBoot+Vue+MySQL 開發的前后端分離的母嬰商城購物網站設計實現

目錄 一. 前言 二. 功能模塊 2.1. 前臺功能 2.2. 用戶信息管理 2.3. 商品分類管理 2.4. 商品信息管理 2.5. 商品資訊管理 三. 部分代碼實現 四. 源碼下載 一. 前言 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&a…

Python實現多線程下載器

分析&#xff1a;實現?個多線程下載器可以顯著提?數據抓取的效率&#xff0c;特別是當需要下載?量數據時。Python的threading 庫可以幫助輕松實現多線程下載。 Python代碼&#xff1a; 使? requests 庫來下載數據&#xff0c;并使? threading 庫來并?處理多個下載任務。…

盤點好用的國產傳輸軟件,看看哪個適合你

流動讓數據釋放價值&#xff0c;無論什么企業&#xff0c;什么行業&#xff0c;業務的正常開展均是以數據和文件的傳輸為基礎&#xff0c;因此&#xff0c;對企業來說&#xff0c;文件傳輸工具是最基礎但也是最舉重若輕的。在琳瑯滿目的多種國產傳輸軟件中&#xff0c;哪個是最…

Glassnode 內容主管:「減半」后的市場「抑郁」

原文標題&#xff1a;《Finance Bridge: Post-Halving Blues》撰文&#xff1a;Marcin Mi?osierny&#xff0c;Glassnode 內容主管編譯&#xff1a;Chris&#xff0c;Techub News 文章來源香港Web3媒體Techun News 摘要&#xff1a; 每月簡報&#xff1a;4 月&#xff0c;盡…