FuFu KK8s
  • K~K8s index
  • Kubernetes 的基礎世界
  • Why container is not Docker
  • Startup Local Kubernetes via Minikube
  • K8s Master node Component 介紹
  • NameSpace、Deployments 概念說明
  • 常見的 kubectl 指令
  • 回顧第一次部署,淺談 Pod、Deployment
  • 回顧第一次部署,淺談 Service
  • 今日來介紹 Pod 靜態文件~ Manifest
  • Pod 的健康檢查方式
  • Pod 的健康檢查方式 Part-2
  • Pod 的資源請求、上限
  • Pod 資料,如何持久化存放、讀取
  • Pod 副本管理~ 描述 ReplicaSet 控制器
  • Pod 副本管理~ 實作篇
  • 淺談 DaemonSet,及相對 ReplicaSet 的差異
  • 來說說 Label
  • 從 Label 再回頭談 Service
  • Service 續集之 Cluster IP、Kube-proxy、LoadBalancer
  • 從 Service 發現 K8s 網路層全貌
  • Container Data Persistent
  • 發現、初談 StatefulSet
  • 再談 StatefulSet
  • 認識 ConfigMap
  • 第一次使用 Play with Kubernetes
  • 手工 Installing kubeadm
  • 手工 Installing CRI-O、kubeadm init
  • 繼上篇,排查 kubelet、kubeadm init 問題
  • Installing a pod network add-on
  • K8s add Nodes(join)
  • 驗證自建的 K8s
  • 筆記
    • kubectl get 筆記
    • kubectl 部署筆記
    • kubectl describe nodes
  • 實務記憶篇
    • 整理下記憶
    • 有哪些 Kubernetes 雲端服務
    • 如何從本機連線至 GKE Pod
    • GCP Memorystore 服務介紹
    • 如何連線至 GCP Memorystore
    • GCP Cloud SQL 服務介紹
    • 如何連線至 Cloud SQL
    • 關於 GCP VPC 網路
    • HELM 工具用途
    • 臨時題目:查修 prometheus
    • 繼續離題:繼續查修Prometheus
    • 臨時題目:限定 Pod 訪問外網時,固定 public ip
    • K8s 監控數據來源 Prometheus
    • 監控要告警啊 AlertManager
    • 監控要有圖表啊 Grafana
    • Grafana收集Kubernetes系統資訊
    • 系統 Log 資料
    • 系統 Log 資料收集至 EFK
    • 關於 EFK 角色
    • 系統 Log 資料 - fluent-bit 串接
    • 開放網站對外存取
    • 網站提供 https 安全連線服務 - 憑證管理
    • 網站提供 https 安全連線服務 - 憑證與Ingress整合
    • 網站提供 https 安全連線服務 - Istio 範例
    • 需要額外的 非http 連線
    • Istio 初略介紹
    • Istio 整合 Certmanager DNS01
    • 番外篇:Istio 如何限制訪問來源
    • 番外篇:如何擴充 PV PVC storage size
    • 番外篇:如何利用 Binlog 還原資料庫
  • Helm 實務學習心得
    • Helm requirements 見解
    • 同環境,一次部署多個相同App
  • Python
    • 11-1 Firebase 資料庫簡介
Powered by GitBook
On this page
  • 11-1-1 NoSQL 資料庫觀念
  • RDBMS 與 NoSQL 差異
  • CAP 理論概要
  • 課本實做筆記
  1. Python

11-1 Firebase 資料庫簡介

NoSQL 資料庫觀念

11-1-1 NoSQL 資料庫觀念

  1. 資料主體是資料項,每筆資料皆是key-value對應關係。

  2. 資料庫類型

    1. Wide Column Store / Column Families

    2. Document Store

    3. Key Value / Tuple Store

    4. Graph Database Management Systems

    5. Multimodel Database Management Systems

RDBMS 與 NoSQL 差異

RDBMS

NoSQL

資料相依性

關聯式

狀態性

應用面

高邏輯

非邏輯

擴充性

垂直擴充

水平擴充

理論性目標

ACID

CAP

CAP 理論概要

CAP 定義如下: C: Consistency 一致性 A: Availability 可用性 P: Partition Tolerance分區容錯性

CAP理論的核心是:一個分布式系統不可能同時很好的滿足一致性,可用性和分區容錯性這三個需求,最多只能同時較好的滿足兩個。

轉載文章:換 NoSQL 前的建議...

  1. 其實 SQL 可以解決大部分的事情,大家都知道 SQL 的瓶頸在哪裡,有哪些 workaround 可以避開。

  2. 通常可以用 cache 解決的就用 cache 試著解看看,雖然 invalidate 問題不太好處哩... XD

  3. 如果是 Read 數量太多,可以用 replication 解決不少問題。

  4. 試著去理解 index 的「原理」,也就是資料結構,這對於要怎麼用 index 絕對有強力的幫助。

  5. 當上面都做完而發現還是不夠的時候就 sharding 吧。

課本實做筆記

pip install requests==1.1.0
pip install python-firebase

如果不小心安裝到 requests 2.x.x 版本,會出現很多模組匯入失敗,進而需要安裝下列模組
pip install requests
pip install python-jwt
pip install gcloud
pip install sseclient
pip install pycrypto
pip install cryptography
pip install requests-toolbelt

但即使安裝上述模組,最終仍會出現下列錯誤:

Traceback (most recent call last):
  File "11-1.py", line 4, in <module>
    from firebase import firebase
ImportError: cannot import name firebase

debug 筆記

出現錯誤1: python 2.7

Traceback (most recent call last):
  File "11-2.py", line 4, in <module>
    from firebase import firebase
  File "/usr/local/lib/python2.7/site-packages/firebase/__init__.py", line 22, in <module>
    from urllib.parse import urlencode, quote
ImportError: No module named parse

解法

修改 File "/usr/local/lib/python2.7/site-packages/firebase/__init__.py", line 22, in <module>
第22行
from urllib.parse import urlencode, quote

修改如
""
# from urllib.parse import urlencode, quote
try:
    from urllib.parse import urlencode, quote
except:
    from urllib import urlencode, quote
""

出現錯誤2: python 3.8

Traceback (most recent call last):
  File "11-2.py", line 4, in <module>
    from firebase import firebase
  File "/Users/afu/Library/Python/3.8/lib/python/site-packages/firebase/__init__.py", line 3
    from .async import process_pool
          ^
SyntaxError: invalid syntax

解法

cd /Users/afu/Library/Python/3.8/lib/python/site-packages/firebase/
cp async.py async2.py
vi __init__.py
vi firebase.py

Previous同環境,一次部署多個相同App

Last updated 5 years ago

NoSQL 受到CAP理論的約束,不可能達到高一致性,高可用性,高分區容錯性的完美設計。所以我們在設計的時候要懂得取舍,重點關注對應用需求來說比較重要的,而放棄不重要的,在CAP這三者之間進行取舍,設計出貼合應用的存儲方案。

文章 重點摘要:

不要因為 做不到就覺得 SQL 不好用,在這種情況下, 的功能與成熟度很值得看看。

不要用 官方版本的 MySQL... XD

資料轉載\來源連結
來源連結
MySQL
PostgreSQL
Oracle