精华内容
下载资源
问答
  • 现代网络应用程序有两种主流体系结构: 客户机/服务器体系结构P2P体系结构(peer to peer “对等”) 一 . 客户机/服务器体系结构 客户机/服务器体系结构是最为喜闻乐见网络体系结构,它...

    网络体系结构的分类

    现代网络应用程序有两种主流的体系结构: 客户机/服务器体系结构和P2P体系结构(peer to peer “对等”)
     

    一 . 客户机/服务器体系结构

     

     

     
    客户机/服务器体系结构是最为喜闻乐见的网络体系结构,它的最大特点是“一台服务器 — 多个客户机”,  客户机通常充当发起请求的角色,而服务器则通常充当接收请求,提供响应的角色。
    这种网络体系结构还有以下几个特点;
    1. 服务器主机是总是打开的, 客户机主机则并不总是打开
    2. 服务器是处理所有逻辑的中心
    3. 基于2的原因,两个客户机一般是不能直接通信的, 要进行通信必须经过服务器
     

     

     
    4. 虽然客户机/服务器体系结构的特征是“一对多”,但是服务器却并不总是一台,因为有的时候要处理海量的客户机的请求, 一台服务器很快就会不堪重负,所以这个时候常用服务器集群技术(server clustering)创建强大的虚拟服务器。所以这里“一对多”的一要理解为一组服务器组成的“一”个整体的意思。
     
     

     

     
    5. 由于4的原因,客户机/服务器体系的应用服务通常是基础设施密集的(infrastructure intensive),也就是说,提供该服务的互联网商家,例如搜索引擎(百度),网络商务(淘宝)通常要为服务器场的购买,安装和维护投入巨额的费用。
     
     
     
     

    二. P2P体系结构

     
    和客户机/服务器体系结构截然不同的是P2P体系结构(对等结构), 在P2P中,进行通信的的并不是客户机/服务器,而是两台客户机。
    进行通信的可能是两台用户的电脑,两个手机,或者一台电脑和一个手机,总之,进行通信的任意一对都被称为“对等方”
     

     

     
    我们结合以下这副图来说明P2P体系结构讨人欢喜的优点
     

     

     
    1.客户机间的直接通信使得P2P有了强大的自扩展性(self-calability),什么意思呢? 假设上面这幅图是一个发送文件(上载/下载)文件的过程,我们可以看到,从上至下,接收文件的主机的数量是指数递增的,系统的服务能力在逐渐增强,而且越来越强。
     
    2.P2P体系结构对基础设施服务器有最小的依赖, 这是和基础设施密集的客户机/服务器体系结构是截然相反的。
    我们假设在上图的P2P结构中增加一个服务器,并且要求在客户机/服务器结构和P2P结构间做一个发送文件的能力的对比: 要求是每个客户机都成功下载一个文件,那么
    • 在客户机/服务器结构上,一个服务器要向7台客户机上载这个文件,共上载7次,而P2P结构下,服务器最少只要上载文件一次就够了。 相比之下, 前者服务器不堪重负,后者服务器则毫无压力
    • 事实上,完成这个任务。P2P会比客户机/服务器结构的应用快的多
     
    对服务器依赖小就意味着投入建设的成本会大大减小,正因此许多互联网公司尤其喜欢P2P。 但话虽如此,但实际上具体的还是要看应用的具体业务,上面的表述仍然只是很单方面的对比。
     

    两种网络体系结构各自的应用

     

     

    许多我们常见的应用层协议,都是以客户机/服务器体系结构为基础的,例如http, FTP ,SMTP。从明天开始,我将发布一系列关于应用层协议的文章,以作为自己学习的总结
     

    【完】

    参考书籍

    《计算机网络-自顶向下》  作者 James F. Kurose

    博客目录

    【目录】 你好! 我是博客总目录

     

     

     

     

    转载于:https://www.cnblogs.com/penghuwan/p/7705088.html

    展开全文
  • C/SB/SRIA

    千次阅读 2015-02-21 15:29:25
     C/S(Client/Server,客户/服务器)方式网络计算模式,A、服务器负责管理数据库访问,并对客户机/服务器网络结构中数据库安全层加锁,进行保护;B、客户机负责与用户交互,收集用户信息,通过网络向服务器...

    注:以下是我收集网友写的一点总结和百度百科所收集的资料

    C/S

    特点:

             C/S(Client/Server,客户/服务器)方式的网络计算模式,A、服务器负责管理数据库的访问,并对客户机/服务器网络结构中的数据库安全层加锁,进行保护;B、客户机负责与用户的交互,收集用户信息,通过网络向服务器发送请求。C、C/S模式中,资源明显不对等,是一种“胖客户机(fat client)”或“瘦服务器(thin server)”结构。D、客户程序(前台程序)在客户机上运行,数据库服务程序(后台程序)在应用服务器上运行。

    工作模式:

          Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。

    优点:

         结合客户端的pc处理响应比较快,应用服务器运行数据负荷较轻分为前台(客户端)和后台(服务器端),数据的储存管理功能较为透明

    缺点:

       客户端需要安装专用的客户端软件,涉及到软件的安装维护,升级等问题。传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S更是猛烈冲击C/S,并对其形成威胁和挑战。

    B/S

    特点:

      B/S(Browser/Server,浏览器/服务器)方式的网络结构,A、客户端统一采用浏览器如:Netscape和IE,通过Web浏览器向Web服务器提出请求,由Web服务器对数据库进行操作,并将结果传回客户端。B、B/S结构简化了客户机的工作,但服务器将担负更多的工作,对数据库的访问和应用程序的执行都将在这里完成。即当浏览器发出请求后,其数据请求、加工、返回结果、动态网页生成等工作全部由Web服务器完成。

            B/S结构是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器,简化了系统的开发、维护和使用。维护和升级方式简单。当前,软件系统的改进和升级越发频繁,B/S架构的产品明显体现着更为方便的特性

    客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。但是缺点是应用服务器运行数据负荷较重。一旦发生服务器“崩溃”等问题,后果不堪设想。

    RIA

    特点:

            其实RiA实际上一种基于Web的C/S架构(我称之为C/B/S)。由于有一个客户端,所以RiA应用可以提供强大的功能,让用户体验到高交互性,高用户体验。同时,RiA又是基于Internet浏览器的应用,所以,用户使用RiA非常方便。理想来说,用户使用RiA应当像现在使用普通网页一样方便。用户不需要安装任何的客户端软件,只要拥有浏览器。当用户通过浏览器发出指令,希望运行某种RiA应用程序时,一切都会飞快的建立在客户端机器上,就像你在Web上点击一个页面一样。

          其实我们从上述知道c/s和b/s的优缺点,而RiA就是他两的完美结合和互补。它将部分的服务器负载转移到客户端,同时又不会丧失使用和部署上的方便性。RiA就是我们找到了最佳结合点,也就是C/S和B/S的交集。







    展开全文
  • P2P网络穿透实战例子

    2019-07-03 14:09:18
    P2P简介 对等网络P2P(peer-to-peer)技术是...因为传统意义上Client/Server模式采用是一种垄断手段,所有资料都存放在服务器上,客户机只能被动服务器上读取信息,并且客户机之间不具有交互能力;而集中式
  • Mongodb一些介绍

    2017-11-05 16:14:00
    简介 1.MongoD歌基于分布式文件存储的数据库。 分布式文件系统是指文件系统管理的物理存储...另外,对等特性允许一些系统扮演客户机和服务器的双重角色。 特点 .它的特点是高性能、易部署、易使用,存储数据非...

    简介

    1.MongoD歌基于分布式文件存储的数据库。

                分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。

    特点

    .它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

    1.*面向集合存储,易存储对象类型的数据。

    2.*模式自由。

    3.*支持动态查询

    4.*支持完全索引,包含内部对象。

    5.*支持查询。

    6.*支持复制和故障恢复。

    7.*使用高效的二进制数据存储,包括大型对象(如视频等)。

    8.*自动处理碎片,以支持云计算层次的扩展性。

    9.*支持RUBYPYTHONJAVAC++PHPC#等多种语言。

    10.文件存储格式为BSON(一种JSON的扩展)。

    11.*可通过网络访问。

    安装MongoDB

    1:创建yum仓库配置文件,编辑 /etc/yum.repos.d/mongodb.repo文件,添加
    [mongodb]
    name=MongoDB Repository
    baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
    gpgcheck=0
    enabled=1
     
    2:安装mongodb-org,且mongodb-org-server、mongodb-org-mongos、mongodb-org-shell、mongodb-org-tools将一并被安装
     
    yum install -y mongodb-org

    修改配置文件 /etc/mongodb.conf

    bind_ip = 0.0.0.0 让所有的用户都可以连接服务端, 生成环境里请自行按需修改
    dbpath = /data/mongo 重新指定数据存储的路径
    httpinterface = true 打开基于web接口来监控mongodb的工作特性,且监听于28017
    rest = true 支持restful编程接口
    port = 27017 指定mongodb-server监听的端口

    创建数据目录,并且修改权限

    mkdir -pv /data/mongo
    chown -R mongod.mongod /data/mongo

    启动MongoDB,并且查看数据目录是否存在数据

    systemctl start mongod.service
     
    ll /data/mongo/
    查看客户端连接到服务端的帮助
    [root@mongodb1 data]# mongo --help
    MongoDB shell version: 2.6.12
    usage: mongo [options] [db address] [file names (ending in .js)]

    MongoDB的帮助

    (三):通过客户端连接到服务端
    mongo --host 192.168.23.9 连接到服务端,默认是连接192.168.23.9:27017/test, test为数据库名
    show dbs; 查看数据库
     
    登录MongoDB
     
    MongoDB的命令介绍
     
    db.help() 查看库级别的命令
    db.stats() 查看数据库状态
    db.version() 查看数据库版本
    db.serverStatus() 查看数据库服务器状态
    db.mycoll.help() 查看表级别的命令
    db.getCollectionNames 显示当前库中所有的表的列表
    sh.help() 关于sharding的操作
    rs.help() 集合赋值命令
    help admin 管理命令
    help connect 连接操作语法
    help keys key shortcuts
    help misc misc things to know
    help mr mapreduce
    show dbs 显示数据库名称
    show collections 显示表名称
    show users 查看已有用户
    show profile 显示profile信息,显示性能评估工具
    show logs 显示日志名信息
    show log [name] 显示指定的日志名的信息
    use <db_name> 进入某库,设定某库为当前库
    db.foo.find()
    db.foo.find( { a : 1 } )
    it result of the last line evaluated; use to further iterate
    DBQuery.shellBatchSize = x set default number of items to display on shell
    exit quit the mongo shell
     
    增删改查
    db.students.insert({name:"dage",age:20}) 插入一条数据,默认会创建students表
    show collections 显示当前的表
    db.students.stats() 显示students表的数据信息
    db.students.find() 查询插入的各个字段
    db.students.count() 查看students表中有多少个document
     
    查询过滤操作
    find()的高级用法:比较操作:
    (一) db.students.find({age: {$gt: 30}}) age大于30
    { "_id" : ObjectId("597b49b4072d632a342867cc"), "name" : "data", "age" : 34 }
     
    (二)db.students.find({age: {$gte: 30}}) age大于等于30
    (三)db.students.find({age: {$lt: 30}}) age小于30
    (四)db.students.find({age: {$lte: 30}}) age小于等于30
    (五)db.students.find({age: {$in: [20, 30]}}) age在[20, 30]的document
    (六)db.students.find({age: {$nin: [20, 30]}}) age不在[20, 30]的document
    collection的 复杂查询过滤操作
     
    find()的高级用法:组合条件:逻辑运算
    (一)db.students.find({$or: [{name: {$eq: "yhy"}}, {age: {$nin: [40,50]}}]}) 或运算
    (二)$and:与运算
    (三)$not:非运算
    (四)$nor:取反运算
     
    find()的高级用法:元素查询: 根据document中是否存在指定的字段进行的查询
    (一)db.students.find({gender: {$exists: true}}) 查询存在gender字段的document
    (二)$mod:取摸
    (三)$type:返回指定字段的值类型为指定类型的document
     
    MongoDB支持的数据类型有:Double, String, Object, Array, Binary data, Undefined, Boolean, Date, Null 等
     
    update()的高级用法:$set 更新,或插入字段的值, $unset 删除指定字段 ,$rename 修改字段名
    (一)db.students.update({name: "yhy"}, {$set: {age: 44}})
    将name为yhy的这个document的age字段的值改为44
    db.students.update({name: "yhy"}, {$set: {age: 50}})
    将name为yhy的这个document的age字段的值改为50
     
    (二)db.students.update({name: "yhy"}, {$unset: {age: 50}})
    删除name字段为yhy的document的age为50的字段
     
    (三)db.students.update({name: "yhy"}, {$rename: {age: "Age"}})
    修改name字段为yhy的document的age字段名为Age字段名
     
    (四)db.students.update({name: "yhy"}, {$inc: {course: "Python"}})
    给name字段为yhy的document增加一个字段course且值为Python
     
     
    # 删除字段
    db.students.remove({"name": "yhy"})
     
    # 删除表
    db.students.drop()
     
    # 删除当前数据库
    db.dropDatabase()
     
    索引
     
    1:MongoDB中的索引与MySQL中的索引有类似的功能,将表中的字段添加索引,索引会将字段做排序,依次索引能够大大提高MongoDB的查询能力,但是会削弱一部分的i/o能力
    2:在MySQL的学习过程中,我们知道,当用户去查询一行数据的时候,都需要指定条件过滤,那么在条件过滤时,最好能够使用字段上建立的索引,能够帮助我们快速匹配到行,拿到需要的数据。如果使用到了索引,那么MySQL先会去查找索引,然后通过索引定位到数据表中的数据,最后返回给调用者, MySQL的索引类型有如下几类:B Tree索引、hash索引、空间索引、全文索引
    3:mongoDB索引类型有:单键索引、组合索引、多键索引、空间索引、文本索引、hash索引

     

    db.student.ensureIndex({name: 1})
    给name字段创建索引, 1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可。
    实例
     
    db.student.getIndexes()
    查看索引
     
    db.student.find({"name": "yhy"}).explain()
    查看是否使用到了索引(由于MongoDB调优)
     
    db.student.dropIndex("name_1")
    删除索引
     
    db.students.ensureIndex({name: 1}, {unique: true})
    给name字段创建一个唯一键索引,那么再给students表增加一条行document,且name与之前存在的document的name值相同,那么就会报错, 如:增加一条document
    db.students.insert({name: "yhy"})
    报错的信息如下:
    WriteResult({
    "nInserted" : 0,
    "writeError" : {
    "code" : 11000,
    "errmsg" : "insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.students.$name_1 dup key: { : \"yhy\" }"
    }
    }) 
     
    授权认证
     mongodb存储所有的用户信息在admin 数据库的集合system.users中,保存用户名、密码和数据库信息。mongodb默认不启用授权认证,只要能连接到该服务器,就可连接到mongod。若要启用安全认证,需要更改配置文件参数auth
     
    1:创建一个root用户,角色为userAdminAnyDatabase,因此root用户对数据库具有管理权限,但是不具备操作权限
    db.createUser({user:"root",pwd:"123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }]});
     
    2:createUser()方法说明
    user:定义用户名
    pwd:设置密码
    roles:指定用户的角色,可以用一个空数组给新用户设定空角色; 在roles字段,可以指定内置角色和用户定义的角色。
    db:指定用户对哪个数据库具有管理员权限
     
    3:角色种类说明
    Built-In Roles(内置角色):
    ①. 数据库用户角色:read、readWrite;
    ②. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
    ③. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    ④. 备份恢复角色:backup、restore;
    ⑤. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    ⑥. 超级用户角色:root
    // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
    ⑦. 内部角色:__system
     
    4:角色对应的意义说明
    Read:允许用户读取指定数据库
    readWrite:允许用户读写指定数据库
    dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root:只在admin数据库中可用。超级账号,超级权限
     
    5:查看授权表
    db.system.users.find();
     
    6:此时退出MongoDB,且编辑配置文件/etc/mongod.conf, 添加
    auth=true(针对于2.6版本)
    security:(针对于3.4版本)
    authorization: enabled
     
    7:可以在连接数据库的时候认证,也可以在登入时候认证,这里使用登入之后认证的方式
    show dbs; (会报错,因为没有管理授权)
    db.auth("root", "123456") 授权之后再查看数据库就没有问题了
     
    8:此时登入使用的是root用户,角色是管理角色,但是不具备对数据库的操作权限
    use test;
    show collections; (会报错,因为没有操作权限)
     
    9:再次创建一个用户: test,让其对test具有读写操作, 且切换用户为test
    db.createUser({user:"test",pwd:"test", roles: [{ role: "readWrite", db: "test" }]});
    db.auth("test", "test")
     
    10:再次查看test库的表,发现可以查看了
    show collections;
     
    11:其实,如果需要创建一个用户具有管理权限且同时具有操作权限,那么这个用户的角色必须是root
    db.createUser({user:"yhy",pwd:"123456", roles: [{ role: "root", db: "admn" }]});
     
    mongod是服务器程序,mongo是客户端程序,不要搞混乱了,我们不仅可以使用systemctl来启动mongoDB, 还可以直接使用mongod来启动
    在启动mongod的时候,可以指定一系列的选项,那么mongodb中,提供了一个配置文件:/etc/mongod.conf ,那么可以将这些选项都写在这个配置文件里,使得启动mongod时,mongodb会先读取这个配置文件中的选项,之后在读取命令行的选项来启动mongodb
    ①:在配置mongodb2.6的时候,常用的一些选项有
    fork = {true=false}:指定mongod是否运行在后台
    bind_ip = IP地址:指定监听的地址,如果不指定,默认是监听本地的所有IP地址
    port = 监听的端口:指定监听的端口
    maxConns = 并发连接数:指定支持的最大并发连接数
    logappend = {true=false}:指定是否支持日志滚动
    auth = :指定是否启用认证功能
     
    ②:在配置mongodb3.4的时候,常用的选项有(如果想使用mongodb的web管理页面,在/usr/lib/systemd/system/mongod.service文件中,修改:Environment="OPTIONS=-f /etc/mongod.conf --rest")(/usr/lib/systemd/system/mongod.service这个unit file可以指定很多环境配置选项)
    systemLog:
    destination: file
    logAppend: true
    path: /var/log/mongodb/mongod.log
     
    # Where and how to store data.
    storage:
    dbPath: /data/mongodb
    journal:
    enabled: true
    processManagement:
    fork: true # fork and run in background
    pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
    net:
    port: 27017
    bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces.
     
    # 启用认证
    security:
    authorization: enabled
     
    参考官方文档:https://docs.mongodb.com/compass/current/install/#install-on-red-hat-enterprise-linux-rhel
    Mongodb compass 提供图形化管理界面管理MongoDB
    1:下载安装包:
    wget https://downloads.mongodb.com/compass/mongodb-compass-1.6.0.x86_64.rpm;
     
    2:安装
    yum install mongodb-compass-1.6.0.x86_64.rpm;
     
    3:启动
    DEBUG=* mongodb-compass;

     

    MongoDB的复制架构

    以上所有的内容都是 MongoDB standalone方式 运行,下面我们将重点讲解MongoDB的复制,也就是副本集的概念(MongoDB的集群架构)
    MongoDB复制是将数据同步在多个服务器的过程,复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性, 复制还允许您从硬件故障和服务中断中恢复数据
    1:在mongodb的集群中,一般会部署多个节点,且有多个节点有相同的数据。
     
    2:主节点可以进行读写操作,而从节点一般只能够进行读操作
     
    3:副本集就是服务所有的mongodb实例的同一个数据集(也就是说副本集定义了一个集群,一个已经运行的集群中如果添加了一个新的节点,那么必须指定这个新的节点加入到哪个副本集中。一个副本集就定义了一个集群,一个副本集可以最多支持12个成员,但是只有7个成员可以参与投票)
     
    4:对应MySQL而言:从节点在主节点复制数据的方式为主节点将数据操作保存在二进制日志中,而从节点就是复制主节点的二进制日志,在本地再执行一次,那么这就实现了与主节点的数据一致。而mongodb是主节点将数据操作保存在操作日志(oplog)中,从节点复制操作日志(oplog),在本地再执行一次实现数据集一致
     
    5:从节点每隔一段时间会探测一次主节点的心跳信息,如果在一段时间中无法获得主节点的心跳信息,那么其余的从节点会重新进行一次投票选举操作,谁的优先级高就会成为下一个主节点。
     
    6:mongodb节点集群至少需要三个节点,一个主节点,两个从节点
     
    7:复制中的四种特殊的从节点分类
    a:0优先级的节点:冷备节点,不会被选举成为主节点,但是可以参与选举过程
    b:被隐藏的从节点:不想让客户端访问数据的节点,必须为0优先级的节点,不会显示在mongodb集群的信息中
    c:延迟复制的从节点:必须为0优先级的节点,且复制时间落后于主节点一个固定时间,可以参与选举过程
    d:arbiter:没有数据
     
    8:oplog:记录数据改变的操作日志,用于数据同步复制,大小固定的文件,存储在local数据库中,集群中每一个节点都有oplog。但是只有当其成为主节点的时候,才会将其数据改变的操作记录到oplog之中
     
    同步的步骤分为:
    初始同步
    同步之后追赶主节点
    切分块迁移(切片)
    local库中存放了副本集的所有的元数据和oplog,用于存储oplog的一个叫oplog.rs的collection表,oplog.rs的大小默认与文件系统有关,但是可以自定义
    • 基于MongoDB2.6版本配置MongoDB主从复制集群架构实战(请大家自行完成3.4版本的MongoDB主从复制集群架构)
    1:集群环境说明:mongodb1:192.168.43.10、mongodb2:192.168.43.11、mongodb3:192.168.43.12。且基于主机名相互通信/etc/hosts文件(为了集群信息同步不出现问题,先关闭认证功能anth)
     
    2:编辑mongodb1的/etc/mongod.conf文件,注释auth指令,添加如下内容
    # 指定副本集的名称
    replSet=uplooking
    # 指定预拷贝的索引,这里只拷贝id那个系统自动生成的索引
    replIndexPrefetch=_id_only
    noauth=true
     
    3:将mongodb1的配置文件拷贝到mongodb2、mongodb3
    scp /etc/mongod.conf 192.168.43.11:/etc/
    scp /etc/mongod.conf 192.168.43.12:/etc/
     
    3:启动mongodb1、mongodb2、mongodb3
     
    4:登入mongodb1的shell接口
    > rs.status(); (查看集群中的节点状态)
    > rs.initiate();(初始化副本集)
    > rs.status();(再次查看集群中的节点状态)
    uplooking:PRIMARY> (此时的提示符已经变了)
     
    5:当初始化了主节点以后,需要添加其他的从节点到mongodb集群中来
    uplooking:PRIMARY> rs.add("192.168.43.11")
    uplooking:PRIMARY> rs.add("192.168.43.12")
     
    6:添加了其他节点以后,就可以查看配置信息和副本集的状态信息
    uplooking:PRIMARY> rs.conf()
    {
    "_id" : "uplooking",
    "version" : 3,
    "members" : [
    {
    "_id" : 0,
    "host" : "mongodb1:27017"
    },
    {
    "_id" : 1,
    "host" : "192.168.43.11:27017"
    },
    {
    "_id" : 2,
    "host" : "192.168.43.12:27017"
    }
    ]
    }
     
    7:再次查看状态副本集的状态信息
    uplooking:PRIMARY> rs.status()
    {
    "set" : "uplooking",
    "date" : ISODate("2017-10-29T16:05:55Z"),
    "myState" : 1,
    "members" : [
    {
    "_id" : 0,
    "name" : "mongodb1:27017",
    "health" : 1,
    "state" : 1,
    "stateStr" : "PRIMARY",
    "uptime" : 914,
    "optime" : Timestamp(1509292923, 1),
    "optimeDate" : ISODate("2017-10-29T16:02:03Z"),
    "electionTime" : Timestamp(1509292619, 1),
    "electionDate" : ISODate("2017-10-29T15:56:59Z"),
    "self" : true
    },
    {
    "_id" : 1,
    "name" : "192.168.43.11:27017",
    "health" : 1,
    "state" : 2,
    "stateStr" : "SECONDARY",
    "uptime" : 237,
    "optime" : Timestamp(1509292923, 1),
    "optimeDate" : ISODate("2017-10-29T16:02:03Z"),
    "lastHeartbeat" : ISODate("2017-10-29T16:05:54Z"),
    "lastHeartbeatRecv" : ISODate("2017-10-29T16:05:54Z"),
    "pingMs" : 0,
    "syncingTo" : "mongodb1:27017"
    },
    {
    "_id" : 2,
    "name" : "192.168.43.12:27017",
    "health" : 1,
    "state" : 2,
    "stateStr" : "SECONDARY",
    "uptime" : 232,
    "optime" : Timestamp(1509292923, 1),
    "optimeDate" : ISODate("2017-10-29T16:02:03Z"),
    "lastHeartbeat" : ISODate("2017-10-29T16:05:55Z"),
    "lastHeartbeatRecv" : ISODate("2017-10-29T16:05:55Z"),
    "pingMs" : 0,
    "syncingTo" : "mongodb1:27017"
    }
    ],
    "ok" : 1
    }
     
    8:此时从节点可以在shell接口查看到在主节点复制过来的数据库和表,但是不能查询表的内容,因此需要通过命令让从节点变为可用节点,在查询就可以了
    uplooking:SECONDARY> rs.slaveOk()
     
    9:主节点也可以通过命令变为从节点, 此时其他的节点通过投票将会变为主节点
    uplooking:SECONDARY> rs.stepDown()
     
    10:在新的主节点(mongodb2)中可以设置从节点的优先级让从节点变为主节点,让第一个从节点优先级为10,那么第一个从节点就会变为主节点
    uplooking:PRIMARY> config=rs.conf() # 先使用一个config临时变量保存rs.conf()的值,也就是当前的副本集配置
    uplooking:PRIMARY> config.members[0].priority=10 # 让第一个节点,也即是mongodb1的优先级为10
    uplooking:PRIMARY> rs.reconfig(config) # 让副本集获得新的配置,此时,mongodb1将会成为主节点
     
    11:在主节点中,从副本集中移除一个节点,
    rs.conf() # 先查看需要删除的host
    rs.remove("192.168.43.12:27017")
     
    12:也可以将一个从节点变为arbiter仲裁节点,这里将mongodb3变为arbiter节点,必须先让mongodb3下线,然后删除数据目录,在重启,再设置为arbiter仲裁节点
    rs.addArb("192.168.43.12")
     
     

     

     
     
     
     
     

    转载于:https://www.cnblogs.com/gongll/p/7787697.html

    展开全文
  • java 网络(update20201118)

    2017-05-20 16:54:42
    网络类型: 计算机网络,按照不同分类方式来划分,可以分为不同类型。 按照网络地理位置可分为:局域网(LAN),城域...按照服务方式可以分为:客户机 / 服务器网络(Client / Server),对等网(Peer-to-Pe...

    网络类型:

    计算机网络,按照不同的分类方式来划分,可以分为不同的类型。

    按照网络的地理位置可分为:局域网(LAN),城域网(MAN),广域网(WAN)。目前局域网和广域网是网络的特点。局域网是组成其他两种类型网络的基础,城域网一般都加入了广域网。广域网典型的代表是 Internet。

    按照服务方式可以分为:客户机 / 服务器网络(Client / Server),对等网(Peer-to-Peer)。

    通信协议:

    通信协议即网络中传递、管理信息的一些规范。如果人与人之间交流需要遵循特定的语言定义一样,计算机之间的通信也需要共同遵守一定的规则,这些规则就称为网络协议。网络协议的划分:

    物理层:以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等。
    数据链路层:Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ATM · DTM · 令牌环 · 以太网 ·FDDI · 帧中继 · GPRS · EVDO ·HSPA · HDLC · PPP · L2TP ·PPTP · ISDN·STP 等。
    网络层协议:IP (IPv4 · IPv6) · ICMP· ICMPv6·IGMP ·IS-IS · IPsec · ARP · RARP等。
    传输层协议:TCP · UDP · TLS · DCCP · SCTP · RSVP · OSPF 等。
    应用层协议:DHCP ·DNS · FTP · Gopher · HTTP· IMAP4 · IRC · NNTP · XMPP ·POP3 · SIP · SMTP ·SNMP · SSH ·TELNET · RPC · RTCP · RTP ·RTSP· SDP · SOAP · GTP · STUN · NTP· SSDP · BGP · RIP 等。

    什么是 TCP/IP?

    TCP/IP 是供已连接因特网的计算机进行通信的通信协议。
    TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol)。
    TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。

    在 TCP/IP 内部

    在 TCP/IP 中包含一系列用于处理数据通信的协议:

    • TCP (传输控制协议) - 应用程序之间通信
    • UDP (用户数据包协议) - 应用程序之间的简单通信
    • IP (网际协议) - 计算机之间的通信
    • ICMP (因特网消息控制协议) - 针对错误和状态
    • DHCP (动态主机配置协议) - 针对动态寻址

    TCP 使用固定的连接

    TCP 用于应用程序之间的通信。
    当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。
    这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。
    UDP 和 TCP 很相似,但是更简单,同时可靠性低于 TCP。

    IP 是无连接的

    IP 用于计算机之间的通信。
    IP 是无连接的通信协议。它不会占用两个正在通信的计算机之间的通信线路。这样,IP 就降低了对网络线路的需求。每条线可以同时满足许多不同的计算机之间的通信需要。
    通过 IP,消息(或者其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送。
    IP 负责将每个包路由至它的目的地。

    IP 路由器

    当一个 IP 包从一台计算机被发送,它会到达一个 IP 路由器。
    IP 路由器负责将这个包路由至它的目的地,直接地或者通过其他的路由器。
    在一个相同的通信中,一个包所经由的路径可能会和其他的包不同。而路由器负责根据通信量、网络中的错误或者其他参数来进行正确地寻址。

    TCP/IP

    TCP/IP 意味着 TCP 和 IP 在一起协同工作。
    TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。
    IP 负责计算机之间的通信。
    TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。
    IP 负责将包发送至接受者。

    TCP / IP 是 Internet 的基础协议,也是一种计算机数据打包和寻址的标准方法。如果访问 Internet,则必须在网络协议中添加 TCP / IP 协议。IP 协议只保证计算机能发送和接收数据,而 TCP 协议则提供一个可靠的、可流控的、全双工的信息流传输服务。虽然 TCP 和 IP 这两个协议的功能不尽相同,也可以分开单独使用。但只有两者的结合,才能保证 Internet 在 复杂的情况下正常运行。

    Java 网络编程

    Java 中有关网络方面的功能都定义在 java.net 包中:

    InetAddress 类:地址是网络通信的基础,在 Java 中使用 InetAddress 类来封装 IP 地址和该地址的域名。InetAddress 类无构造方法,不能直接创建对象,但可以通过该类的静态方法创建一个 InetAddress 对象或者 InetAddress 数组。

    URL 类:Java 将 URL 封装成 URL 类,可以通过 URL 对象记录下完整的 URL 信息。http://www.mhttp.com:8080/index.html 是一个合法的 URL 示例。一个完整的 URL 由协议名、主机名(IP)、端口号和文件路径组成。URL 类的构造方法都声明抛出异常 MalformedURLException,因此构造 URL 对象时,需要对此进行异常处理。

    URLConnection 类:通过 URL 类的方法 openSteam(),只能从网络上读取数据,如果需要输出数据,此时就要用到 URLConnection 类。URLConnection 是一个抽象类,代表与 URL 指定的数据源的动态连接,提供比 URL 类更强的服务器交互控制,运行用 POST 或 PUT 或其他 HTTP 请求方法将数据送到服务器。

    两种最常用的 HTTP 方法是:GET 和 POST。

    HTTP(HyperText Transfer Protocol)是网络应用层的协议,建立在TCP/IP协议基础之上。HTTP使用可靠的TCP连接,默认端口为80,目前最新的版本为1.1。
    HTTP 的工作方式是客户机与服务器之间的请求(Request)-应答(Response)协议,设计目的是保证客户机与服务器之间的通信。在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。

    GET - 从指定的资源请求数据。
    POST - 向指定的资源提交要被处理的数据

    GET 方法
    请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:
    /test/demo_form.asp?name1=value1&name2=value2

    POST 方法
    请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:
    POST /test/demo_form.asp HTTP/1.1
    Host: w3schools.com
    name1=value1&name2=value2

    比较 GET 与 POST

    下面的表格比较了两种 HTTP 方法:GET 和 POST。

      GET POST
    后退按钮/刷新 无害 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
    书签 可收藏为书签 不可收藏为书签
    缓存 能被缓存 不能缓存
    编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
    历史 参数保留在浏览器历史中。 参数不会保存在浏览器历史中。
    对数据长度的限制 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 无限制。
    对数据类型的限制 只允许 ASCII 字符。 没有限制。也允许二进制数据。
    安全性

    与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。

    在发送密码或其他敏感信息时绝不要使用 GET !

    POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
    可见性 数据在 URL 中对所有人都是可见的。 数据不会显示在 URL 中。

     

    展开全文
  • 1.3.5 客户机服务器的通信过程 19 1.3.6 网络协议与C/S模式的关系 19 1.3.7 错综复杂的C/S交互 19 1.3.8 服务器如何同时为多个客户机服务 21 1.3.9 标识一个特定服务 22 1.4 P2P模式 23 1.4.1 P2P技术的...
  • 1.3.3 客户机服务器的特性 15 1.3.4 容易混淆的术语 16 1.3.5 客户机服务器的通信过程 16 1.3.6 网络协议与C/S模式的关系 17 1.3.7 错综复杂的C/S交互 17 1.3.8 服务器如何同时为多个客户机服务 18 ...
  • 这是两种网络管理模式中...D工作组中计算机地位平等,不分客户机和服务器,都可能是客户机和服务器 E网络规模少于10台计算机 加入工作组:我电脑-属性-计算机名-更改,下端选择“隶属于”工作组,为工作组起个名...
  • TCP/IP协议笔记

    2019-07-22 14:19:58
    网络边缘端系统通讯方式:C/S(客户机-服务器方式)P2P(对等方式)。 客户机和服务器都是指通讯中涉及两个进程。 客户是服务请求方,服务器是服务提供方。 对等连接不区分服务请求方和服务提供方。 ...
  • 计算机网络 ...边缘部分:客户-服务器方式,对等连接方式(两者既是服务端也是客户) 核心部分:交换方式:电路交换(一定面向连接),报文交换,分组交换(就是将报文细分然后连续发送) 计算机...
  • 分布式文件系统概念

    2019-10-07 22:59:35
    基础知识 什么是分布式文件系统  分布式文件系统 distributed file system 是指文件系统管理的物理存储资源不一定直接... 对等特性允许一些系统扮演客户机和服务器的双重角色 分布式文件系统的特点 分布式...
  • 分布式文件系统

    2019-10-08 01:40:55
    一、基础知识 什么是分布式文件系统 分布式文件系统 distributed file system 是指文件系统管理的物理存储资源不...对等特性允许一些系统扮演客户机和服务器的双重角色 分布式文件系统的特点 分布式文件系统可以...
  • 计算机网络_第一章

    2019-04-24 21:30:09
    网络边缘通信方式通常分为两类:客户-—服务器模式(CS)、对等方式(P2P) 客户——服务器模式(CS):客户和服务器之间是服务与被服务关系,客户是服务请求方,服务器是服务提供方。 特点客户程序在通信...
  • linux 分布式文件系统

    2017-09-25 17:36:00
    而是通过计算机网络与节点相连 分布式文件系统的设计基于客户机/服务器模式 一个典型的网络可能包括多个多个用户访问的服务器 对等特性允许一些系统扮演客户机和服务器的双重角色 分布式文件系统的特点 分布式文件...
  • P2P简介 对等网络P2P(peer-to-peer)技术是...因为传统意义上Client/Server模式采用是一种垄断手段,所有资料都存放在服务器上,客户机只能被动服务器上读取信息,并且客户机之间不具有交互能力;而集中式
  • 计算机网络(谢希仁第七版)

    千次阅读 2020-01-25 22:25:53
    1.三大网络:电信网络、有线电视网络、计算机网络 2.互联网两个重要基本特点:连通性、共享 3.计算机网络是由若干结点连接这些结点链路组成 ...类:客户-服务器方式(C/S方式)和对等方式(P2P方式) ...
  • 一、概述 1、三网:电信网络、有线电视网络计算机网络 ...6、在网络边缘端系统之间通信方式通常可划分为两大类:客户服务器方式(C/S)、对等方式(P2P) 7、路由器是实现分组交换关键构件,其
  • 参考资料:计算机网络自顶向下方法一、应用层协议原理1、应用程序体系结构客户-服务器体系结构P2P体系结构P2P体系结构特点:1、对数据中心专用服务器有最小依赖。2、具有自扩展性,例如在文件共享应用中,每个...
  • 计算机网络习题整理

    2021-01-11 00:12:23
    在网络边缘端系统之间通信方式通常可划分为**客户-服务器方式(C/S方式)和对等方式(P2P方式)**两大类。 网络中三种数据交换方式分别是电路交换、分组交换报文交换。 主机不属于互联网核心部分。网线、...
  • 在P2P网络中(如右图所示),所有通信节点地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信实现文件信息、处理器运算能力、存储空间等资源共享。P2P网络具有分散性、可扩展性、...
  • 第一章:概述 (1)计算机网络在信息时代作用 (2)因特网标准化工作(标准组织、标准制定) (3)因特网组成(重点) ...(通信特点客户程序:通信时主动向服务器发起通信,不需要特殊硬件操作系...
  • 分布式处理

    2019-01-07 11:06:09
    什么是分布式系统? 分布式系统大致可分为松散耦合、自治计算机集合或网络,具有以下特点: 。节点是相对松散耦合...客户机-服务器 基于资源不对等,且为实现共享提出来 C/S软件体系结构定义了工作站...
  • 问题1-19:局域网、广域网和公用网、专用网有什么关系? 问题1-20:信道利用率是否越高越好? 问题1-21:怎样理解教材中图1-8所示椭圆形表示各种服务提供者?这些ISP都在具体什么位置? 问题1-22:在计算机...
  • 文件系统 FastDFS

    2018-03-06 11:26:21
    文件系统管理的物理存储资源不一定在本地,而是通过计算机网络与节点相连C/S模式对等性允许一些系统扮演客户机和服务器的双重角色 特点分布式文件系统可有效解决数据存储管理难题将固定于某个地点的某个文件系统...
  • 在网络边缘端系统通信通常可分为**(客户/服务器方式)C/S,(对等连接)P2P**。 互联网可以划分为由**核心部分(由大量网络和来连接这些网络路由器组成。这部分是为边缘部分提供服务,提供连通性交换)边缘...
  • windowsnt 技术内幕

    2014-04-09 20:47:17
    配置TAPI位置 通过拨号网络登录 配置自动拨号管理器 RAS疑难解答 微软IIS简介 安装IIS Internet站点Intranet站点概念 介绍Windows NT Workstation上的对等Web服务(PeerWebServices) 配置IIS(Internet ...
  • 重点:用Winsock实现POP3协议,从而,加深学生对TCP协议理解和客户机程序深入编程,为以后基于网络计算机监控打下基础。 第十二章 基于短信电话客户管理系统(2学时) 12.1 系统要求和准备工作 12.2 系统...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

对等网和客户机服务器的特点