全国咨询热线:18720358503

公司如何制作做小程序-.NET Core+MongoDB集群搭建与

类别:媒体报道 发布时间:2021-04-18 浏览人次:

--------

公司如何制作做小程序

-------

文件目录安裝 MongoDBapt 立即安裝(方式1)apt 库房安裝(方式2)方式1、2起动 MongoDB根据二进制包安裝(方式3)安裝依靠deb 安裝 MongoDBtgz 安裝 MongoDB起动 MongoDB卸载方式apt 卸载方式tgz 卸载方式特定起动的配备根据配备文档根据主要参数MongoDB 关联IP、端口号检测远程控制 IP 联接加上登陆密码认证设定账号登陆密码开启登陆认证终止 MongoDB构建群集副本集常见故障迁移计划方案设计方案案例名字怎样建立群集起动两个案例(配备)副本集情况查询.NET Core 联接 MongoDB

安裝 MongoDB

安裝 MongoDB 在网上有许多实例教程,MongoDB 官方文本文档:manual/tutorial/install-mongodb-on-ubuntu/

笔者这里简易写一下安裝全过程,笔者应用 ubuntu 系统软件。

要依照的总体目标版本号:MongoDB 4.4 Community Edition

适用的系统软件:

20.04 LTS (“Focal”) 18.04 LTS (“Bionic”) 16.04 LTS (“Xenial”)

升级手机软件源

sudo apt update
sudo apt upgrade
apt 立即安裝(方式1)

假如你要安裝平稳版本号,则立即应用一条指令安裝:

sudo apt install mongodb

实行指令查验 MingoDB 的情况:

sudo systemctl status mongodb
apt 库房安裝(方式2)

此种方法能够让你安裝全新版本号的 MongoDB 。

导入检修口理系统软件应用的公匙

wget -qO - static/pgp/server-4.4.asc | sudo apt-key add -

加上 MongoDB 的库房源文档

 /etc/apt/sources.list.-4.4.list

加上 MongoDB 的库房源详细地址

# ubuntu 16.04
echo "deb [ arch=amd64,arm64 ] apt/ubuntu /4.4 multiverse" | sudo tee /etc/apt/sources.list.-4.4.list
# ubuntu 18.04
echo "deb [ arch=amd64,arm64 ] apt/ubuntu /4.4 multiverse" | sudo tee /etc/apt/sources.list.-4.4.list
# ubuntu 20.04
echo "deb [ arch=amd64,arm64 ] apt/ubuntu /4.4 multiverse" | sudo tee /etc/apt/sources.list.-4.4.list

载入 MongoDB 的手机软件包

sudo apt-get update

安裝全新平稳版本号的 MongoDB

sudo apt-get install -

假如你想安裝特定版本号:

sudo apt-get install -=4.4.-server=4.4.-shell=4.4.-mongos=4.4.-tools=4.4.1
方式1、2起动 MongoDB

实行指令查验 MongoDB 的情况:

sudo systemctl status mongodb

起动 MongoDB:

sudo systemctl start mongod

启动起动 MongoDB:

sudo systemctl enable mongod

查询 MongoDB 版本号:

mongo --version
mongod --version

留意:因为 Linux/Unix 系统软件会对文档叙述符的数量或进程数量加以限定,假如安裝全过程或起动时出错,需要自主此外搜索方式处理,这里已不赘述。

根据二进制包安裝(方式3)

合适互联网不会或线下安裝,有 tgz、deb 、source code 等方式安裝,这里只应用 tgz 方法。

# ubuntu 16.04
sudo apt-get install libcurl3 openssl liblzma5
# ubuntu 18.04 20.04
sudo apt-get install libcurl4 openssl liblzma5

挑选适合的系统软件免费下载二进制包:

munity?tck=docs_server

Package 能够挑选包的方式,如 shell(deb)、shell(tgz)。

留意,要在服务器免费下载的话,就不关键点击 Download,而是点一下 Copy Link 拷贝二进制包的免费下载连接。

请留意免费下载的手机软件版本号,mongos 、tagz 包括所有作用;

其它的是独立出示 server 或 client(shell) 作用。

本小标题将出示安裝 .deb 和 tgz 包的表明,请自主挑选要安裝的包!(提议立即免费下载 tgz)。

deb 安裝 MongoDB

假如免费下载了 .deb 文档,请应用下面指令安裝。

wget {免费下载详细地址}
sudo dpkg -i {手机软件包名}.deb
tgz 安裝 MongoDB

假如免费下载了 .tar.gz 文档,请应用下面指令安裝。

tar -zxvf mongodb-{版本号}.tgz
# 下面是示例
cd mongodb-linux-x86_64-ubuntu1604-4.4.1
... ...
|-- bin
| `-- mongo
|-- LICENSE-Community.txt
|-- MPL-2
|-- README
`-- THIRD-PARTY-NOTICES

开启解压的文件目录,实行:

sudo cp bin/* /usr/local/bin/
# 具体上就是将二进制可实行文档放到 bin 文件目录
起动 MongoDB

建立数据信息储放文件目录:

sudo mkdir -p /var/lib/mongo

建立系统日志储放文件目录:

sudo mkdir -p /var/log/mongodb

假如并不是应用 root 客户登陆,则需要获得文档管理权限:

# whoami是你的客户名
sudo chown `whoami` /var/lib/mongo
sudo chown `whoami` /var/log/mongodb

运作 MongoDB:

mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

以后终端设备会提醒早已取得成功起动;还可以查询 /var/log/mongodb/mongod.log 系统日志文档中的內容明确 MongoDB 的运作状况;

cat /var/log/mongodb/mongod.log 系统日志文档,会发现第一行:

pid=22639 port=27017

port 即 MongoDB 的联接端口号。

apt 卸载方式

合适应用 镜像系统库房安裝的 MongoDB。

sudo apt-get purge mongodb mongodb-clients mongodb-server mongodb-dev
sudo apt-get purge mongodb⑽gen
sudo apt-get autoremove

注:实行全过程出错无需管。

tgz 卸载方式

合适卸载应用 .tar.gz 安裝的包。

rm /usr/local/bin/mongo*
特定起动的配备 根据配备文档

假如前面提到过配备文档 /etc/mongod.conf,假如根据配备文档起动,则会便捷许多,应用配备文档起动 MongoDB 的方式:

mongod --config /etc/mongod.conf

根据主要参数起动 MongoDB 的话,每次起动都比较麻烦:

mongod --bind_ip=0.0.0.0 --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
MongoDB 关联IP、端口号

查询 MongoDB 配备:

# 进到 shell
mongo
use admin
db.runCommand( { getParameter : '*' } )

默认设置 MongoDB 是当地服务,外界没法浏览主机的 MongoDB 服务,这里来配备一下,使其可以被外网地址浏览。

在 MongoDB 起动后,实行以下指令改动配备。

# 关联全部详细地址
mongod --bind_ip_all
# 改动端口号
mongod --port 27017

或停了 MongoDB 服务后,应用以下指令起动:

mongod --bind_ip=0.0.0.0 --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

或手动式改动 /etc/mongod.conf 配备文档,把在其中一段改成 0.0.0.0:

# network interfaces
 port: 27017
 bindIp: 0.0.0.0 

改动结束后,需要关掉 MongoDB,再开启,请参照后边 ”终止 MongoDB“ 一节。

检测远程控制 IP 联接

检测联接特定 IP 和 port 的 MongoDB 服务:

mongo {你的服务器公网IP}:27017
加上登陆密码认证 设定账号登陆密码
mongo
# 进到 MongoDB shell 后
use admin
db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})

假如不起效,请自主找方式处理,这里已不赘述~

开启登陆认证

随后开启 /etc/mongod.conf 文档,将 #security: 改成:

security:
 authorization: enabled

假如不起效,请自主找方式处理,这里已不赘述~

终止 MongoDB
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown

依照此方式,再炮制一台服务器就行。

提议应用 docker 一次性搞好,自身手动式在物理学机上面安裝,太折腾了。

接下来,大家要依据官方文本文档,构建简易的副本群集。

副本集是一组 MongoDB 案例来维护保养同样数据信息集。

官方网站文本文档解释:一个副本集包括多个数据信息承载连接点和一个诉讼器连接点(可选)。在数据信息承载连接点中,仅有一个组员被视作关键连接点,而别的连接点则被视作主次连接点。

用一下官方的图:

图中有三台 MongoDB 案例,当 Primary 挂了后,Secondary 能够换掉挂了的服务器,变成新的 Primary。

因为我仅有两台服务器,因而只能组双机热备。

主连接点(Primary)

对外接受全部恳求,随后将改动同歩到全部 Secondary 中。

当 主连接点(Primary) 挂了后,其它 Secondary 或 Arbiter 连接点就会再次大选一个主连接点出来。

副本连接点(Secondary)

副本连接点是备胎,数据信息集跟主连接点(Primary)一致,当主连接点挂了后,有机遇变成正胎(Primary)。

诉讼者(Arbiter)

不储存数据信息集,也不可以变成(Primary)。功效是当主连接点挂了后,网络投票给 Secondary,让 Secondary 变成 Primary。

可是如何配备原来的 MongoDB 案例,使其变成 Primary - Secondary 群集呢?Google 了很久。

找到 MongoDB 官方的文本文档:

manual/tutorial/deploy-replica-set/

设计方案案例名字

在 primary 设备和 secondary 设备上,各自开启 /etc/mongod.conf 文档,找到 #replication,设定连接点名字。

replication:
 replSetName: {名字}

primary 设备设定 primary,secondary 设备设定 beitai。

replSetName 的功效解释以下:

manual/reference/configuration-options/#replication.replSetName

还可以在起动 MongoDB 时加上 --replSet "beitai" 的主要参数。

mongod --replSet "beitai" ... ...

请终止 MongoDB 后,应用长寿令的方式起动 MongoDB。

请在要设定为 Primary 的设备,实行:

mongod --replSet "primary" --bind_ip=0.0.0.0 --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

请在要设定为 Secondary 的设备,实行:

mongod --replSet "beitai" --bind_ip=0.0.0.0 --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
怎样建立群集

务必要做到以下两点配备:

Add Members to a Replica Set Deploy a Replica Set

笔者在这里踩了很大的坑,试了许多种方式和配备才取得成功。

起动两个案例(配备)

提早表明,假如应用 rs. 命令配备案例,想再次配备,出現 ”"errmsg" : "already initialized"“,能够应用 rs.reconfig() 消除配备。

rsconf = rs.conf()
rsconf.members = [{_id: 1, host: "本机的ip:27017"}]
rs.reconfig(rsconf, {force: true})

在 Secondary 设备,实行指令终止运作:

mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown

再次起动 Secondary 设备:

mongod --replSet "beitai" --bind_ip=0.0.0.0 --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

设定为 Secondary 连接点:

rs.initiate(
 _id: "beitai",
 version: 1,
 members: [
 { _id: 0, host : "primary的ip:27017" }
 { _id: 1, host : "secondary的ip:27017" }

注:id是优先选择级。

在 primary 设备,实行指令终止运作:

mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown

再次起动 primary:

mongod --replSet "beitai" --bind_ip=0.0.0.0 --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

在 primary 进到 shell:

mongo

实行指令开展原始化并设定自身为 primary:

rs.initiate(
 _id: "primary",
 version: 1,
 members: [
 { _id: 0, host : "primary的ip:27017" },
 { _id: 1, host : "secondary的ip:27017" }

各自在两个案例开启 mongo shell,实行:

rs.status()

发现:

beitai:SECONDARY 
primary:PRIMARY 

应用专用工具联接 MongoDB 并建立一个名为 Test 的数据信息库:

副本集情况查询

查询拷贝延迟时间:

rs.printSlaveReplicationInfo()

实行結果:

WARNING: printSlaveReplicationInfo is deprecated and may be removed in the next major release. Please use printSecondaryReplicationInfo instead.
source: *.*.*.*:27017
 syncedTo: Sat Oct 17 2020  GMT+0800 (CST)
 0 secs (0 hrs) behind the freshest member (no primary available at the moment)
source: *.*.*.*:27017
 syncedTo: Thu Jan 01 1970  GMT+0800 (CST)
  secs (445260.05 hrs) behind the freshest member (no primary available at the moment)
.NET Core 联接 MongoDB

.NET 程序要联接 MongoDB ,需要根据 Nuget 包安裝 MongoDB.Driver 驱动器。

大家来建立一个操纵台程序,Nuget 检索 MongoDB.Driver 并安裝,接下来一步步应用联接 MongoDB。

加上 using 引入:

using MongoDB.Bson;
using MongoDB.Driver;

联接 MongoDB

var client = new MongoClient("mongodb://primary的ip:27017,secondary的ip:27017");

获得数据信息库

IMongoDatabase database = client.GetDatabase("Test");

获得文本文档结合

var collection = database.GetCollection BsonDocument ("MyCollection");

插进文本文档(json)

 var document = new BsonDocument
 { "name", "MongoDB" },
 { "type", "Database" },
 { "count", 1 },
 { "info", new BsonDocument
 { "x", 203 },
 { "y", 102 }

其源构造的 json 以下:

{
 "name": "MongoDB",
 "type": "database",
 "count": 1,
 "info": {
 x: 203,
 y: 102

将文本文档插进到结合中:

 collection.InsertOne(document);
 // 应用多线程 await collection.InsertOneAsync(document);

随后实行程序,一会儿后,开启 MongoDB 管理方法器,查询结合。

---------

公司如何制作做小程序

------------
下一篇:没有了

推荐阅读

公司如何制作做小程序-.NET Core+MongoDB集群搭建与

文件目录安裝 MongoDBapt 立即安裝(方式1)apt 库房安裝(方式2)方式1、2起动 MongoDB根据二进制包安裝(方式3)安裝依靠deb 安裝 MongoDBtgz 安裝 MongoDB起动 MongoDB卸载掉方式apt 卸载掉方式tgz 卸载掉...

2021-04-18
如何自己建网站-临朐企业网站建设推荐:企业网

企业网站建设有一定的新项目全过程,终究它是一个较为繁杂的新项目,因此在站点基本建设以前务必有确立的流程,如今要我们看来看企业网站建设新项目的全过程。 1。选购平稳...

2021-04-18
商城微信小程序-一定要防止踩到自助式建网站的

随着互联网热潮的不断渗入,每个企业都纷纷投入到互联网这个充满红利的大海中。企业网站作为企业开展互联网营销的一把利器,它能够有效帮助企业扩大影响力以及收获更多利润。...

2021-04-18
流程图制作网站-凡科抠图为高清的人像脸部增强

Photoshop为超清的人像图片面部提高层次感艺流影象 公布 创作者:野火荒岛 我想评价超清人像图片解决大概分成2个大的环节。第一环节便是修补缺陷及简易润饰,各种各样保关键...

2021-04-18
丰都网站商城建设-武汉网站制作,网页制作与制作

以质量立足于,以知名品牌决战对知名品牌开展多方位的知名品牌品牌形象基本建设,以精确的定义选择销售市场,根据为知名品牌出示知名品牌营造、知名品牌视觉效果几大版块的环...

2021-04-17
小N营销建站之家-Edge有望支持现有的Chrome扩展程

但是这一伏笔今日早已拥有回答,Edge的新项目主管Kyle Alden在Reddit上表露,新的Edge的确会为Google Chrome拓展程序出示适用,他说道:大家准备适用目前的Chrome拓展程序。该贴子还确认,...

2021-04-17
X

400-8700-61718720358503
企业邮箱2639601583@qq.com
官方微信