微服務基礎環境搭建-centos7

文章目錄

  • 1、安裝docker
    • 1.1、安裝步驟
    • 1.2、docker常用命令
  • 2、安裝Nginx
  • 3、Docker安裝Mysql
  • 4、Docker安裝Redis
  • 5、安裝Nacos
    • 5.1、Nacos的作用
    • 5.2、單體服務安裝
  • 6、安裝RocketMQ服務
    • 6.1 MQ的作用
    • 6.2 RocketMQ的基礎服務架構
    • 6.2、安裝RocketMQ服務
    • 6.3、安裝dashboard面板服務
    • 6.4、RocketMQ快速體驗

1、安裝docker

1.1、安裝步驟

  1. 卸載舊版本docker
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
  1. 安裝工具包
yum install -y yum-utils
  1. 設置鏡像倉庫
  • 推薦使?國內阿?云的倉庫
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 更新yum軟件包索引
yum makecache fast
  • 鏡像加速配置
    登錄阿里云, 搜索進入容器鏡像服務,配置鏡像加速器,
    修改daemon配置文件/etc/docker/daemon.json來使用加速器, 沒有daemon.json文件,就創建一個,將下方的https://xxxx.mirror.aliyuncs.com換成自己的加速器地址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 安裝docker
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 檢查docker是否安裝成功
docker version
# 啟動docker服務
systemctl start docker
# 查看docker服務狀態
systemctl status docker
  1. 跑一個hello-world
docker run hello-world

1.2、docker常用命令

# 幫助命令
docker version # docker版本
docker info # docker系統信息
docker xxx --help #查看幫助
# 鏡像操作
docker images # docker image ls
docker search xxx # 搜索鏡像
docker pull xxx # 下載鏡像 docker image pull
docker inspect xxx # 查看鏡像信息
docker run -d --name myxxx -p 80:80 xxx # 啟動鏡像
docker ps # 查看鏡像執?情況
docker exec -it {container_id} /bin/bash
docker rmi 鏡像ID # 刪除鏡像
docker image rm -f $(docker image ls -q) #刪除所有鏡像
# 容器操作
docker ps
docker container ls -a #查詢所有容器
docker rm $(docker ps -aq) #刪除所有容器

2、安裝Nginx

# 搜索鏡像
docker search nginx
# 下載安裝
docker pull nginx
# 啟動鏡像
docker run -d --name mynginx -p 80:80 nginx

3、Docker安裝Mysql

dockerhub參考地址: https://hub.docker.com/_/mysql
需要特別注意的是,對于鏡像中需要持久化保存的?件,需要通過-v掛載到宿主機上,這樣這些?件才不會隨
著容器關閉?消失。
對于MySQL,需要將他的?志?件、數據?件和配置?件掛載到宿主機上

# 拉取鏡像
docker pull mysql:8
# 啟動mysql并配置?作?錄。將容器中的?作?錄掛載到本機,這樣這些數據?件才能持久化保存。
docker run -p 3306:3306 --name mysql8 -v /app/docker/mysql/log:/var/log/mysql -v /app/docker/mysql/data:/var/lib/mysql -v /app/docker/mysql/conf:/etc/mysql -v /app/docker/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=root -d mysql:8
# MySQL默認只能在本機登錄,也就是只能從容器內登錄。需要調整權限,允許遠程訪問。
docker container ls #獲取容器ID
# 進?容器
docker exec -it e6b5762cb698 /bin/bash
# 在容器內登錄MySQL 。 不要輸密碼  
mysql -u root
# 調整MySQL,允許遠程連接
mysql> use mysql;
mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
mysql> update user set host='%' where user='root';
mysql> ALTER user 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
mysql> flush privileges;
# 如果都正常執?,那么MySQL服務就可以?客戶端?具遠程登錄了

4、Docker安裝Redis

需要注意將Redis的配置?件和?志?件掛載到宿主機上。

docker pull redis:latest
# 將Redis的配置?件和數據?件掛載到宿主機上
docker run -p 6388:6379 --name redis -v /app/docker/redis/config:/etc/redis.conf -v /app/docker/redis/data:/app/redis -d redis redis-server /etc/redis.conf
# 如果正常執?,那么Redis的服務就可以?客戶端?具遠程登錄了。

5、安裝Nacos

5.1、Nacos的作用

  • 服務注冊中心
  • 配置中心

5.2、單體服務安裝

下載??: https://nacos.io/download/nacos-server/ 。 這次選擇下載2.2.0版本
安裝Nacos之前,需要注意?下。Nacos默認將元數據記錄到derby內存數據庫中,容易丟失。所以通常需要
將元數據改為存儲到MySQL中。
使?MySQL保存元數據,需要在MySQL中創建獨?的庫和表。相關表的初始化腳本記錄在nacos的
conf/mysql-schema.sql?件中。
接下來需要修改nacos的配置?件,主要調整以下部分:

### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use spring.sql.init.platform replaced.
# spring.datasource.platform=mysql
spring.sql.init.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?
characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicod
e=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root

接下來就可以啟動了。單機模式啟動Nacos需要加上參數 -m standalone

bin/startup.sh -m standalone

如果啟動沒有問題,就可以訪問nacos??了。訪問地址:http://xxxxxxx:8848/nacos 。默認?戶名
和密碼都是nacos
在nacos中,有個命名空間的概念。通過命名空間可以在不同應?之間形成數據隔離。

6、安裝RocketMQ服務

6.1 MQ的作用

  • 異步
  • 解耦
  • 削峰

6.2 RocketMQ的基礎服務架構

在這里插入圖片描述

6.2、安裝RocketMQ服務

下載地址:https://rocketmq.apache.org/download/ 選擇5.2.0版本。下載 rocketmq-all-5.2.0-binrelease.zip 和 rocketmq-dashboard-master.zip 兩個組件。
rocketmq-all-5.2.0-bin-release.zip解壓后,可以直接啟動nameserver服務

cd /app/rocketmq_5.2.0
nohup bin/mqnamesrv &

啟動后,會在當前?錄?成?個nohup.out?志?件。觀察?志?件,有以下??關鍵?志,表示服務啟動成功。

The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876

接下來啟動broker服務。啟動之前建議對配置?件做?些調整。vi conf/broker.conf,增加下?內容。主要是
對存儲?件進?規劃,便于后續掌握服務運?情況。

#允許?動創建topic ?于測試
autoCreateTopicEnable=true
#存儲路徑
storePathRootDir=/app/rocketmq/store
storePathCommitLog=/app/rocketmq/store/commitlog
sstorePathConsumeQueue=/app/rocketmq/store/consumequeue
storePathIndex=/app/rocketmq/store/index
storeCheckpoint=/app/rocketmq/store/checkpoint
abortFile=/app/rocketmq/store/abort

然后,需要配置?個環境變量,指向name server服務地址

vi ~/.bash_profile
# 增加下?配置項
# export NAMESRV_ADDR=192.168.65.210:9876
# 增加完成后,讓配置?件?效
source ~/.bash_profile

啟動broker服務

cd /app/rocketmq_5.2.0
nohup bin/mqbroker -c conf/broker.conf &
# 啟動成功的關鍵?志
# The broker[broker-a, 192.168.65.210:10911] boot success. serializeType=JSON and name
server is 192.168.65.210:9876

6.3、安裝dashboard面板服務

RocketMQ提供了?個基于Web的管理服務Dashboard,可以基于瀏覽器快速監控并管理RocketMQ服務。
rocketmq-dashboard-master.zip包中,只包含了Dashboard服務的源碼,并沒有直接提供編譯后的jar包。

mvn clean package -Dmaven.test.skip=true

編譯完成后,在源碼的target?錄下可以獲得可運?的jar包rocketmq-dashboard-1.0.1-SNAPSHOT.jar。
接下來把jar包上傳到服務器上,并在jar包同?錄下創建?個?件application.yml,配置dashboard服務指向的
nameserver服務地址

rocketmq:
config:
namesrvAddrs:
- 192.168.65.210:9876

到此就可以啟動dashboard服務了

nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar &

如果nohup.out中沒有報錯信息,那么就可以訪問dashboard的管理??。
在集群中可以看到當前服務狀況。

6.4、RocketMQ快速體驗

RocketMQ內置了測試案例,可以快速體驗RocketMQ的收發消息功能。

cd /app/rocketmq_5.2.0
# 發送消息
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 接受消息
bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

很顯然,tools.sh實際上是提供了?個RocketMQ客戶端的運?環境,然后去執?對應的java類。如果想要了解
在Java應?中如何往RocketMQ收發消息,可以去查看下對應的測試類

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

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

相關文章

Netty知識點

一、Netty的零拷貝機制 零拷貝的基本理念&#xff1a;避免在用戶態和內核態之間拷貝數據&#xff0c;從而降低 CPU 占用和內存帶寬的消耗除了系統層面的零拷貝。 1、FileRegion 接口 FileRegion 是 Netty 提供的用于文件傳輸的接口&#xff0c;它通過調用操作系統的 sendfile 函…

Kafka的基本使用

目錄 認識Kafka 消息隊列 消息隊列的核心概念 核心價值與解決的問題 Kafka ZooKeeper Kafka的基本使用 環境安裝 啟動zookeeper 啟動Kafka 消息主題 創建主題 查詢主題 修改主題 發送數據 命令行操作 JavaAPI操作 消費數據 命令行操作 JavaAPI操作 認識Kafka…

Flink2.0學習筆記:Table API SQL

stevensu1/EC0720 表 API 和 SQL# 表 API 和 SQL——用于統一流和批處理 加工。表 API 是適用于 Java、Scala 和 Python 的語言集成查詢 API&#xff0c;它 允許組合來自關系運算符的查詢&#xff0c;例如 selection、filter 和 join in 一種非常直觀的方式。Flink 的 SQL 支…

【 SpringAI核心特性 | Prompt工程 】

1. Prompt 工程 基本概念&#xff1a;Prompt ?工程又叫提示?詞工程&#xff0c;簡單來說&#xff0c;就是輸入?給 AI 的指令。 比如下面?這段內容&#xff0c;就是提示詞&#xff1a; 請問桂林電子科技大學是一個怎么樣的學校&#xff1f;1.1 Prompt分類 在 AI ?對話中…

windows wsl2-06-docker hello world

hello-world 例子 就像其他任何一門語言一樣&#xff0c;我們來體驗 docker 的 hello world $ docker run hello-world但是報錯 :~$ docker run hello-world Unable to find image hello-world:latest locally docker: Error response from daemon: Get "https://registry…

Python知識點4-嵌套循環break和continue使用死循環

一、循環【重點掌握】 1.嵌套循環類似于嵌套if語句 語法&#xff1a; while 表達式1&#xff1a;while 表達式2&#xff1a;語句# 1. # 循環5次&#xff0c;打印0~4 m 0 while m < 5:print(m)m 1 # 循環3次&#xff0c;打印0~2 n 0 while n < 3:print(n)n 1print(&qu…

將HTML+JS+CSS數獨游戲包裝為安卓App

HTMLJSCSS制作一個數獨游戲-CSDN博客 中開發了一個數獨游戲&#xff0c;這個數獨游戲提供了一次性回退到指定步驟的輔助功能&#xff0c;在解決復雜數獨問題時十分有幫助&#xff0c;可作為玩數獨游戲的輔助工具&#xff0c;因此&#xff0c;考慮將它改裝成安卓App安裝在手機上…

編程語言Java入門——核心技術篇(一)封裝、繼承和多態

同專欄基礎知識篇寫在這里&#xff0c;有興趣的可以去看看&#xff1a; 編程語言Java入門——基礎知識篇&#xff08;一&#xff09;-CSDN博客 編程語言Java入門——基礎知識篇&#xff08;二&#xff09;-CSDN博客 編程語言Java入門——基礎知識篇&#xff08;三&#xff0…

【39】MFC入門到精通——C++ /MFC操作文件行(讀取,刪除,修改指定行)

文章目錄1 通過關鍵詞&#xff0c;讀取某一行 &#xff08;3種方法&#xff09;2 刪除 指定行3 修改 指定行1 通過關鍵詞&#xff0c;讀取某一行 &#xff08;3種方法&#xff09; 通過定位關鍵詞&#xff0c;讀取某一行信息,返回CString //通過定位關鍵詞&#xff0c;讀取某…

5 種可行的方法:如何將 Redmi 聯系人備份到 Mac

將 Redmi 聯系人備份到 Mac 是防止因手機損壞、丟失或更換設備而導致數據丟失的重要措施。雖然云服務提供了便利性&#xff0c;但擁有離線備份可以提供額外的安全性&#xff0c;而無需完全依賴互聯網。如果您想知道如何將 Redmi 聯系人備份到 Mac&#xff0c;本文將為您介紹 5 …

LeRobot 具身智能機械臂 SO-ARM100 從搭建到訓練全流程

今天給大家分享一下 LeRobot 具身智能機械臂 SO-ARM100 的完整使用流程&#xff0c;包括設備組裝、環境配置、遠程控制、數據錄制到模型訓練的全過程。適合剛入門具身智能的小伙伴參考學習。 一、前期準備與資源獲取 在開始之前&#xff0c;我們需要準備好相關的資源和工具&a…

LINUX720 SWAP擴容;新增邏輯卷;邏輯卷擴容;數據庫遷移;gdisk

SWAP空間擴展 方法一 增加硬盤或分區擴展 swap -s mkswap /dev/sdd6 blkid /dev/sdd6 swapon /dev/sdd6 swapon -s vim /etc/fstab /dev/sdd6 swap swap defaults 0 0 開機自動擴容 swap -s [rootweb ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sd…

Python 進程間通信:TCP安全加密數據傳輸

最近在寫安全方面的程序&#xff0c;有需求&#xff0c;就做了這些TCP加密數據傳輸類。 utils.safeUtils的內容詳見&#xff1a; SafeObj&#xff1a;Python 高安全性加密數據容器類-CSDN博客SafeKey&#xff1a;Python 高安全性加密密碼容器類-CSDN博客 如有任何問題或漏洞歡迎…

Windows批量修改文件屬性方法

標題使用icacls命令&#xff08;推薦批量操作&#xff09;打開管理員權限的命令提示符&#xff08;CMD&#xff09;執行以下命令&#xff1a;cmd icacls "文件夾路徑" /grant 用戶名:(OI)(CI)F /T /C 參數說明&#xff1a;(OI)&#xff1a;對象繼承 - 適用于文件夾(C…

Entity Component System架構

ECS架構 1 簡介 在當今快速發展的軟件開發領域&#xff0c;游戲開發、實時模擬等場景對系統的性能、靈活性和可擴展性提出了極高的要求。傳統的面向對象架構在面對復雜且動態變化的實體時&#xff0c;往往會出現代碼耦合度高、擴展性差等問題。? ECS&#xff08;Entity - Com…

.vscode 擴展配置

一、vue快捷鍵配置 在項目.vscode下新建vue3.0.code-snippets 每當輸入vue3.0后自動生成代碼片段 {"Vue3.0快速生成模板": {"scope": "vue","prefix": "Vue3.0","body": ["<template>"," &…

一個基于阿里云的C端Java服務的整體項目架構

1.背景介紹 總結一下工作使用到的基于通常的公有云的項目整體架構&#xff0c;如何基于公有云建設安全可靠的服務&#xff0c;以阿里云為例的整體架構&#xff1b;1. 全局流量治理層&#xff08;用戶請求入口&#xff09;1.1 域名與 DNS 解析域名注冊與備案&#xff1a;通過阿里…

《剝開洋蔥看中間件:Node.js請求處理效率與錯誤控制的深層邏輯》

在Node.js的運行時環境中&#xff0c;中間件如同一系列精密咬合的齒輪&#xff0c;驅動著請求從進入到響應的完整旅程&#xff0c;而洋蔥模型則是這組齒輪的傳動系統。它以一種看似矛盾的方式融合了順序與逆序、分離與協作——讓每個處理環節既能獨立工作&#xff0c;又能感知全…

GaussDB union 的用法

1 union 的作用union 運算符用于組合兩個或更多 select 語句的結果集。2 union 使用前提union 中的每個 select 語句必須具有相同的列數這些列也必須具有相似的數據類型每個 select 語句中的列也必須以相同的順序排列3 union 語法select column_name(s) from table1 union sele…

構建足球實時比分APP:REST API與WebSocket接入方案詳解

在開發足球實時比分應用時&#xff0c;數據接入方式的選擇直接影響用戶體驗和系統性能。本文將客觀分析REST API和WebSocket兩種主流接入方案的技術特點、適用場景和實現策略&#xff0c;幫助開發者做出合理選擇。一、REST API&#xff1a;靈活的數據獲取方案核心優勢標準化接口…