Knowledge Graph 資料庫

使用 Docker 快速部署最新版 Neo4j 資料庫

使用Docker快速部署最新版Neo4j資料庫_dataagent_資料探員

在本教學中,我們將學習如何使用 Docker 快速部署 Neo4j 社群版資料庫。我們將採用 docker-compose 來簡化部署過程。以下是詳細的步驟和設定說明。


前置準備

在開始之前,確保你的系統上已安裝 Docker 和 Docker Compose。這些工具允許你容易地運行和管理容器。

 

1. 創建 Docker Compose 文件

首先,你需要創建一個名為 docker-compose.yml 的文件,用以定義和配置你的 Neo4j 服務。將以下內容保存到文件中:

version: "3.3"
services:
  neo4j:
    image: neo4j:latest
    restart: unless-stopped
    ports:
      - 7474:7474
      - 7687:7687
    volumes:
      - /var/lib/docker/volumes/neo4j_volume/conf:/conf
      - /var/lib/docker/volumes/neo4j_volume/data:/data
      - /var/lib/docker/volumes/neo4j_volume/import:/import
      - /var/lib/docker/volumes/neo4j_volume/logs:/logs
      - /var/lib/docker/volumes/neo4j_volume/plugins:/plugins
    environment:
      - NEO4J_dbms_memory_pagecache_size=1G
      - NEO4J_dbms_memory_heap_initial__size=1G
      - NEO4J_dbms_memory_heap_max__size=1G

找尋其他版本的 Neo4j image: https://hub.docker.com/_/neo4j/tags


2. 環境變數解釋

docker-compose.yml 文件中,我們配置了多個環境變數來調整 Neo4j 的記憶體使用:

  • NEO4J_dbms_memory_pagecache_size 設定了頁面快取的大小。
  • NEO4J_dbms_memory_heap_initial__size 指定了啟始堆大小。
  • NEO4J_dbms_memory_heap_max__size 指定了最大堆大小。

更多其他環境變數: Configuration settings – Operations Manual (neo4j.com)

 

添加新的環境變數

為了進一步優化 Neo4j 的性能,你可能會想要調整部分環境變數。

這邊以調整 Neo4j 工作線程數量為例。

如果你想要調整 Neo4j 在處理請求時使用的工作線程數量,可以通過環境變數 NEO4J_dbms_server_threads_worker_count 進行設定。這個設定對於高負載環境下提高資料庫的響應能力尤為重要。下面我們將在 docker-compose.yml 文件中進行相應的設定。

 

添加環境變數

打開你的 docker-compose.yml 文件並新增以下環境變數:

environment:
  - NEO4J_dbms_memory_pagecache_size=1G
  - NEO4J_dbms_memory_heap_initial_size=1G
  - NEO4J_dbms_memory_heap_max__size=1G
  - NEO4J_dbms_server_threads_worker_count=10

 

server.threads.worker_count 的意義

server.threads.worker_count 是一個重要的配置選項,用於設定 Neo4j 中用於處理 REST 請求的 Jetty 伺服器的工作線程數量。這個設定不影響 Bolt 伺服器,僅對 REST 交互有效。

線程數量的重要性

增加線程數可以提高處理多個並行 REST 請求的能力,從而提高數據庫的吞吐量。然而,需要注意的是,操作系統可能會對可以使用的線程數量施加限制,不一定能達到配置中指定的最大值。

適用範圍

這個設定適用於需要高吞吐量的應用,特別是當 Neo4j 需要處理大量的 REST 請求時。適當增加工作線程數量可以顯著提升性能。

默認和有效值範圍

  • 默認值: 在沒有手動設置時,Neo4j 將根據可用處理器的數量自動配置工作線程數。
  • 有效值範圍: 1 到 44738 的整數。

由於環境變數名稱在 Docker 環境中需要使用底線形式,因此原始配置名 server.threads.worker_count 應改寫為 NEO4J_dbms_server_threads_worker_count

 

重新啟動 Neo4j 容器

修改完 docker-compose.yml 文件後,需要重新啟動容器以使新設定生效。在命令行介面中執行以下命令:

$ docker-compose down
$ docker-compose up -d

首先用 docker-compose down 命令停止並移除當前運行的容器,然後使用 docker-compose up -d 重新啟動容器。

驗證設定

重新啟動後,你可以通過 Neo4j 的管理界面或日誌文件查看新的設定是否已正確應用。更多線程可能會顯著提升處理多請求的能力,特別是在高負載環境下。透過調整這些參數,你可以更好地控制 Neo4j 服務的性能,以應對不同的工作負載需求。

 


3. 啟動 Neo4j 容器

在你的終端機介面,移動到包含 docker-compose.yml 的目錄下。執行以下命令來啟動你的 Neo4j 服務:

$ docker-compose up -d

這條命令將在後台啟動 Neo4j 容器。

  • -d 代表 “detached” 模式,讓容器在後台運行。

4. 訪問 Neo4j

一旦容器運行,你可以通過瀏覽器訪問 Neo4j 的 Web 介面:

你將會看到 Neo4j 的登入頁面。初次使用時的預設帳密:

  • username: neo4j
  • password: neo4j

接著會要求你更新密碼。

成功登入後就會看到互動介面


5. 管理和維護

若需要停止服務,可以使用以下命令:

$ docker-compose down

此命令會停止並移除所有相關的容器實例。


結語

透過 Docker 和 Docker Compose,我們能夠快速且輕鬆地設定和運行 Neo4j 資料庫,為開發和測試提供一個高效且可控的環境。

%d 位部落客按了讚: