日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ABP 框架 数据库底层迁移 Mysql 集群

發布時間:2023/12/4 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABP 框架 数据库底层迁移 Mysql 集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

技術交流,請加QQ群:538327407

我的各種github 開源項目和代碼:https://github.com/linbin524

背景

?

筆者 目前架構的IOT 項目是使用abp 框架作為后臺,雖然abp的框架適用于中小型項目框架,但由于架構優美,筆者認為還是可以經過改造,作為大型項目中使用。但IOT 的這個項目目前剛上線不久,十幾天數據庫已經有了上百GB,而且由于實施檢查設備狀態,調用設備狀態維護表,審計日志壓力很大,單單審計日志一天的數據量就有幾十萬,目前在架構上,筆者做了幾個優化處理;

1、針對審計日志,筆者重寫了Abp 原有的?IAuditingStore,實現mongodb和redis 兩種轉移,并且針對審計日志內容做了過濾,DisableAuditing特性標記指定的類或方法不進行記錄。

ps:abp 雖然有mongodb 的封裝,但它的出發點是和EF 同一個模式,左右系統唯一的ORM,如果要使用abp 的mongo 封裝,必須要替代EF,或者重寫ABP?UnitOfWorkOptions,否則直接用會出現工作單元轉換失敗的問題。

2、站點層面使用nginx 做了反向代理,進行多站點服務,通信模式由原來的隊列、改為服務化,EventBus等方式

3、數據庫底層 做了Percona XtraDB Cluster—MySQL 集群處理遷移。

?

思考評估:1、審計日志這樣處理,從源頭做了縮減,并且進行Nosql拆分,有助于緩解數據庫壓力。

? ? ? ? ? ? ? ? ?2、中間層的處理是一般IOT 中間件各種腳手架的組合,成熟,也有經過多年生產環境的檢驗。

? ? ? ? ? ? ? ? ?3、數據庫底層 使用Percona XtraDB Cluster,是因為它支持集群,可以緩解數據庫請求壓力,又支持abp的事務;

? ? ? ? ? ? ? ?但從真正大系統考慮,其實最理性的模式應該是分片,結合SOA、或者微服務才能真正解決底層壓力,目前考量了Tidb(張善友 張隊推薦的)、oceanbase(淘寶 自有數據庫,生產環境十年)、mycat中間件(聽說這個坑多)等,

? ? ? ? ? ? ? ?為了暫時不做大改造,只能先使用?Percona XtraDB Cluster,后續可能使用Orleans(Azure 云框架)、akka.net(大型的框架) 或者?Service Fabric(微服務框架)

? ? ?

二、Percona XtraDB Cluster 評估

?

?

優點如下:

1.當執行一個查詢時,在本地節點上執行。因為所有數據都在本地,無需遠程訪問。

2.無需集中管理。可以在任何時間點失去任何節點,但是集群將照常工作。

3.良好的讀負載擴展,任意節點都可以查詢。

缺點如下:

1.加入新節點,開銷大。需要復制完整的數據。

2.不能有效的解決寫縮放問題,所有的寫操作都將發生在所有節點上。

3.有多少個節點就有多少重復的數據。

?

Percona XtraDB Cluster是MySQL高可用性和可擴展性的解決方案.

Percona XtraDB Cluster提供的特性有:

1.同步復制,事務要么在所有節點提交或不提交。

2.多主復制,可以在任意節點進行寫操作。

3.在從服務器上并行應用事件,真正意義上的并行復制。

4.節點自動配置。

5.數據一致性,不再是異步復制。

Percona XtraDB Cluster完全兼容MySQL和Percona Server,表現在:

1.數據的兼容性

2.應用程序的兼容性:無需更改應用程序

?

1.集群是有節點組成的,推薦配置至少3個節點,但是也可以運行在2個節點上。

2.每個節點都是普通的mysql/percona服務器,可以將現有的數據庫服務器組成集群,反之,也可以將集群拆分成單獨的服務器。

3.每個節點都包含完整的數據副本。

?

三、部署流程

?

1、環境準備

?

? 在騰訊云上開設三個測試服務器,系統 鏡像 CentOS 7.5 64

?

?

用遠程工具連接三臺測試服務器,完成如下操作

?

(1)? 關閉firewalld防火墻

# setenforce 0# sed -i 's,^SELINUX=enforcing,SELINUX=disabled,g' /etc/selinux/config

?

2、主節點部署

?

(1)安裝PXC yum源

# yum install Percona-XtraDB-Cluster-56

?

最終下載下來的版本是Percona-XtraDB-Cluster-56-5.6.30

(3) 修改? ? /etc/my.cnf

[mysqld]datadir=/var/lib/mysql user=mysqlwsrep_provider=/usr/lib64/galera3/libgalera_smm.so #集群的ip wsrep_cluster_address=gcomm://節點ip1,節點ip2,節點ip3binlog_format=ROWdefault_storage_engine=InnoDBinnodb_autoinc_lock_mode=2#當前主節點的ip wsrep_node_address=當前節點ipwsrep_sst_method=xtrabackup-v2wsrep_cluster_name=my_centos_cluster #初始化一個mysql的用戶和密碼 wsrep_sst_auth="admin:123456"

?

(4)啟動主節點

mysql -uroot -p

?

(6) 登錄客戶端查看數據庫的狀態,在進行權限配置允許ip訪問,默認無法遠程訪問,但是我們需要遠程通過圖形化等界面查看,所以要做如下配置

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

(2) 安裝PXC

vim /etc/my.cnf

?

systemctl start mysql

(5)進入mysql

登錄 (初始化狀態,無密碼,遇到要輸密碼直接回車)

mysql> show status like 'wsrep%';CREATE USER 'admin'@'localhost' IDENTIFIED BY '123456';//如果這里報錯,看一下是否有 用戶存在了GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'admin'@'localhost'; FLUSH PRIVILEGES;


?

完成后可以用Navicat For mysql 連接看一下是否可以成功訪問

?(7)可以在mysql中執行如下命令查看

systemctl stop mysql@bootstrap.service systemctl start mysql@bootstrap.service

其他節點也再次啟動

<add name="Default" connectionString="server=主節點ip;port=3306;database=abpzero4_6db;uid=admin;password=123456;" providerName="MySql.Data.MySqlClient" />

(3) 執行遷移?

?

?(4)查看對應的三臺服務器集群都自動同步該數據庫

?

?

(5)在Appservice 中建立測試服務進行增刪改查、事務等測試

<pre style="margin-top: 0px;margin-bottom: 0px;padding: 0px;white-space: pre-wrap;overflow-wrap: break-word;font-family: " !important;"="" 12px="" courier="">using _consigneeRepository.DeleteAsync(predicate); ? ? ? ?} ? ?} }

在swagger ui中增刪改查都已經正常,而且數據在三個數據庫中正常同步

?

?

針對事務,做了人為異常處理,確認會實現回滾(abp 自帶工作單元處理事務)

?

?

?五、后記

?這一次只是做了簡單的實驗性測試,后續需要在加強深入檢測,才可以用生產環境中。

原文地址: https://www.cnblogs.com/linbin524/p/10150300.html

.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com


總結

以上是生活随笔為你收集整理的ABP 框架 数据库底层迁移 Mysql 集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。