最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Rainbond自動(dòng)部署初始化Schema的數(shù)據(jù)庫(kù)步驟教程

 更新時(shí)間:2022年04月20日 14:57:35   作者:張震  
這篇文章主要為大家介紹了Rainbond自動(dòng)部署初始化Schema的數(shù)據(jù)庫(kù)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

為什么使用Rainbond?

我們使用容器的方式部署數(shù)據(jù)庫(kù)組件,特別是企業(yè)有大量的項(xiàng)目開發(fā)業(yè)務(wù)的,部署的開發(fā)、測(cè)試數(shù)據(jù)庫(kù)組件較多時(shí)。經(jīng)常會(huì)遇到以下問題:

  • 業(yè)務(wù)需要使用數(shù)據(jù)庫(kù),但部署完數(shù)據(jù)庫(kù)后,需要在數(shù)據(jù)庫(kù)中執(zhí)行創(chuàng)建schema的操作或者一些初始化數(shù)據(jù)的創(chuàng)建。
  • 開發(fā)測(cè)試多套部署環(huán)境,需要多次重復(fù)1的步驟。
  • 項(xiàng)目比較多,時(shí)間久了項(xiàng)目需要的數(shù)據(jù)庫(kù)Schema不清楚。
  • 項(xiàng)目交付時(shí)數(shù)據(jù)庫(kù)Schema管理混亂。

現(xiàn)在如果是使用Go等語言研發(fā)的業(yè)務(wù)系統(tǒng),都具備了ORM層自動(dòng)初始化和更新Schema的能力,如果是這樣本文對(duì)你無用。但目前大多數(shù)其他開發(fā)語言的業(yè)務(wù)都不具備這種能力。

如果我們把數(shù)據(jù)庫(kù)也作為一個(gè)業(yè)務(wù)中的一個(gè)服務(wù)模塊來管理的話,我們希望服務(wù)啟動(dòng)后即可直接完成Schema的初始化,直接提供數(shù)據(jù)服務(wù)能力。

那么在Rainbond中如何達(dá)成這樣的效果呢?

Schema初始化在傳統(tǒng)模式中一般有兩種方案:

在數(shù)據(jù)庫(kù)啟動(dòng)后手動(dòng)導(dǎo)入;人工通過客戶端操作,沒有自動(dòng)化程度可言;在業(yè)務(wù)服務(wù)啟動(dòng)時(shí)連接數(shù)據(jù)庫(kù)進(jìn)行初始化,依賴業(yè)務(wù)服務(wù)端的能力。

可以看出,這兩種方式都存在各自的弊端,那么有沒有方式能夠讓數(shù)據(jù)庫(kù)啟動(dòng)時(shí)自動(dòng)初始化指定的數(shù)據(jù)呢?答案是 有!

我們以MySQL為例, 官方對(duì)于 Docker 有著良好的支持,首先來看 Dockerhub上 Mysql官方鏡像 的一段描述:

description

在數(shù)據(jù)庫(kù)容器首次啟動(dòng)時(shí),將創(chuàng)建一個(gè)指定名稱的新數(shù)據(jù)庫(kù),并使用提供的環(huán)境變量對(duì)其進(jìn)行初始化。 此外,它將執(zhí)行在 /docker-entrypoint-initdb.d 中找到的擴(kuò)展名為 .sh,.sql 和 .sql.gz 的文件。 文件將按字母順序執(zhí)行。 默認(rèn)情況下,SQL文件將導(dǎo)入到MYSQL_DATABASE 變量指定的數(shù)據(jù)庫(kù)中。因此我們只需要在Mysql鏡像工作機(jī)制的基礎(chǔ)上維護(hù)好數(shù)據(jù)庫(kù)初始化所需要的SQL即可。上文我們說到把數(shù)據(jù)庫(kù)也作為一個(gè)獨(dú)立的服務(wù)模塊,我們也可以通過代碼把Sql等腳步管理起來,劃分版本分支。

Rainbond 支持多種組件創(chuàng)建方式,在這里我們采用 從源碼創(chuàng)建組件 的方式,編寫 Dockerfile 并上傳至支持 Git/Svn 協(xié)議的客戶端,即可在平臺(tái)直接進(jìn)行構(gòu)建;這種方式 透明、可復(fù)用、并且能夠進(jìn)行自動(dòng)化構(gòu)建。

目錄結(jié)構(gòu)

./
└── Dockerfile
    └── config
        ├── my.cnf
        ├── conf.d
             ├── docker.cnf
    └── sql
        ├── init_database
    └── README.md

Dockerfile文件

#基礎(chǔ)鏡像
FROM mysql:latest
MAINTAINER Aaron <Aaron_ops@163.com>
#把sql文件拷貝到/docker-entrypoint-initdb.d/目錄下,以便啟動(dòng)時(shí)自動(dòng)執(zhí)行這個(gè)sql
COPY ./sql/*.sql /docker-entrypoint-initdb.d
#拷貝mysql配置文件
COPY ./config/ /etc/mysql/
#Mysql密碼
ENV MYSQL_ROOT_PASSWORD rainbond
#數(shù)據(jù)持久化目錄
VOLUME [ "/var/lib/mysql" ]
#端口
EXPOSE 3306

項(xiàng)目地址:https://github.com/Aaron-23/Initialize-db

使用該項(xiàng)目在平臺(tái)進(jìn)行構(gòu)建,Rainbond 將會(huì)自動(dòng)檢測(cè) Dockerfile 中定義的環(huán)境變量,存儲(chǔ),端口等信息,對(duì)這些配置項(xiàng)進(jìn)行自動(dòng)化配置,在 Dockerfile 構(gòu)建完畢后自動(dòng)啟動(dòng)數(shù)據(jù)庫(kù)。

需要注意的是 MySQL 屬于有狀態(tài)服務(wù),所以在構(gòu)建前需將組件類型修改為有狀態(tài)單實(shí)例,關(guān)于組件狀態(tài)請(qǐng)參考 組件部署類型

advancedsettings

status

啟動(dòng)完成,進(jìn)入運(yùn)行中狀態(tài)

Overview

通過 Web終端 進(jìn)入數(shù)據(jù)庫(kù)查看相關(guān)數(shù)據(jù)已經(jīng)完成初始化

db

通過這種方式進(jìn)行數(shù)據(jù)庫(kù)初始化,不需要修改程序代碼,無需借助外部工具,通過平臺(tái)的能力快速部署數(shù)據(jù)庫(kù)并完成初始化,在后續(xù)使用過程中可以通過性能分析,資源監(jiān)控,實(shí)例伸縮等功能完成服務(wù)運(yùn)行時(shí)的全生命周期管理,提升開發(fā)效率,增強(qiáng)業(yè)務(wù)穩(wěn)定性。

另外我們還可以將此組件發(fā)布到 Rainbond 內(nèi)部組件庫(kù)中,后續(xù)開發(fā)、測(cè)試和交付過程可以直接一鍵安裝此組件即可獲得數(shù)據(jù)初始完成的數(shù)據(jù)庫(kù)服務(wù)。

以上 MySQL數(shù)據(jù)庫(kù) 僅為參考示例,MongoDB,PostgreSQL等數(shù)據(jù)庫(kù)均支持同類型數(shù)據(jù)初始化方式。

Rainbond 云原生應(yīng)用管理平臺(tái),實(shí)現(xiàn)微服務(wù)架構(gòu)不用改代碼,管理 Kubernetes 不用學(xué)容器,幫企業(yè)實(shí)現(xiàn)應(yīng)用上云,一站式將任何企業(yè)應(yīng)用持續(xù)交付到 Kubernetes 集群、混合云、多云等基礎(chǔ)設(shè)施。是 Rainstore 云原生應(yīng)用商店的支撐平臺(tái)。

1. Rainbond 官網(wǎng)

2. Rainbond 安裝使用

3. Rainbond 參考手冊(cè)全集

以上就是Rainbond自動(dòng)部署初始化Schema的數(shù)據(jù)庫(kù)步驟教程的詳細(xì)內(nèi)容,更多關(guān)于Rainbond自動(dòng)部署初始化Schema數(shù)據(jù)庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • K8s中Pod處于Pending狀態(tài)的八種原因分析

    K8s中Pod處于Pending狀態(tài)的八種原因分析

    文章詳細(xì)介紹了Pod處于Pending狀態(tài)的八種常見原因,并提供了相應(yīng)的排查和解決方法,這些原因包括資源不足、調(diào)度約束、存儲(chǔ)依賴、鏡像問題、配額限制、網(wǎng)絡(luò)暗礁、系統(tǒng)級(jí)異常以及冷門陷阱,每種原因都附帶了具體的診斷方法和解決建議,感興趣的朋友一起看看吧
    2025-02-02
  • 在?k8s?中部署Jenkins的實(shí)踐指南(最新推薦)

    在?k8s?中部署Jenkins的實(shí)踐指南(最新推薦)

    本文介紹了在Kubernetes(K8s)中部署Jenkins的方法和步驟,包括準(zhǔn)備K8s集群、選擇Jenkins鏡像、創(chuàng)建存儲(chǔ)資源、賬號(hào)授權(quán)、部署Jenkins、創(chuàng)建Service以及訪問測(cè)試,Jenkins在K8s中的部署可以實(shí)現(xiàn)動(dòng)態(tài)資源管理、提高可靠性和容錯(cuò)能力、快速響應(yīng)變化和統(tǒng)一環(huán)境等優(yōu)勢(shì)
    2025-03-03
  • K8S?prometheus?operator監(jiān)控工作原理介紹

    K8S?prometheus?operator監(jiān)控工作原理介紹

    這篇文章主要為大家介紹了K8S?prometheus?operator監(jiān)控工作原理介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • k8s設(shè)置非強(qiáng)一致反親和性示例

    k8s設(shè)置非強(qiáng)一致反親和性示例

    這篇文章主要為大家介紹了k8s設(shè)置非強(qiáng)一致反親和性示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Kubernetes中使用臨時(shí)容器進(jìn)行故障排查的方法

    Kubernetes中使用臨時(shí)容器進(jìn)行故障排查的方法

    在使用Kubernetes時(shí),用戶常常會(huì)遇到一些錯(cuò)誤和迷惑,下面這篇文章主要給大家介紹了關(guān)于Kubernetes中使用臨時(shí)容器進(jìn)行故障排查的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • K8S部署Kafka界面管理工具(kafkamanager)方法詳解

    K8S部署Kafka界面管理工具(kafkamanager)方法詳解

    這篇文章主要介紹了K8S部署Kafka界面管理工具(kafkamanager)方法詳解,需要的朋友可以參考下
    2022-01-01
  • Kubernetes核心組件實(shí)戰(zhàn)解析之API?Server與Scheduler的生產(chǎn)級(jí)應(yīng)用指南

    Kubernetes核心組件實(shí)戰(zhàn)解析之API?Server與Scheduler的生產(chǎn)級(jí)應(yīng)用指南

    在Kubernetes集群中,kube-apiserver和kube-scheduler如同機(jī)場(chǎng)的塔臺(tái)控制系統(tǒng),一個(gè)負(fù)責(zé)全局通信調(diào)度,一個(gè)專注資源分配優(yōu)化,本文將深入解析這兩個(gè)核心組件在生產(chǎn)環(huán)境中的關(guān)鍵作用與實(shí)戰(zhàn)配置,需要的朋友可以參考下
    2025-03-03
  • Kubernetes探針使用介紹

    Kubernetes探針使用介紹

    這篇文章主要為大家介紹了Kubernetes探針使用詳細(xì)介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • k8s如何給node添加標(biāo)簽(最新推薦)

    k8s如何給node添加標(biāo)簽(最新推薦)

    k8s集群如果由大量節(jié)點(diǎn)組成,可將節(jié)點(diǎn)打上對(duì)應(yīng)的標(biāo)簽,然后通過標(biāo)簽進(jìn)行篩選及查看,更好的進(jìn)行資源對(duì)象的相關(guān)選擇與匹配,這篇文章主要介紹了k8s如何給node添加標(biāo)簽,需要的朋友可以參考下
    2023-02-02
  • K8S刪除pod的4種方法小結(jié)

    K8S刪除pod的4種方法小結(jié)

    在Kubernetes集群環(huán)境中工作時(shí),有時(shí)會(huì)遇到需要從一個(gè)工作節(jié)點(diǎn)中刪除pod的情況,下面這篇文章主要給大家介紹了關(guān)于K8S刪除pod的4種方法,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

镇巴县| 义乌市| 土默特左旗| 黎城县| 乌兰浩特市| 玉龙| 陆川县| 朝阳市| 广宁县| 浑源县| 建阳市| 南开区| 巴彦淖尔市| 南充市| 根河市| 高安市| 麻栗坡县| 喀喇沁旗| 东海县| 新乡市| 新兴县| 东莞市| 衡南县| 巩义市| 蓝山县| 青州市| 金坛市| 固阳县| 西和县| 清水县| 凤庆县| 利津县| 邹城市| 正镶白旗| 晋城| 泸西县| 安阳市| 赤城县| 浦县| 平阳县| 新绛县|