前言

在是一篇文章mongodb如何做数据备灾 中已经介绍mongodb集群是如何工作,可能很多人都有这样一个疑问:客户端如何知道主服务挂了呢?这一篇文章将介绍如何在net中访问这个集群。

第一步、安装MongoDB.Driver

在demo中,打开nuget安装MongoDB.Driver,如下图所示:

第二步、配置MongoClient构造

从上图中,可以看到,这个集群只有两个mongodb实例40001,40002

第三步、运行demo

循环100次,写入数据;当人为停止一个主mongodb时,将会捕捉异常。

运行结果如下:

可以看到,当人为停止主mongodb服务,在客户端将会捕捉到异常。在实际项目中,需要考虑如何处理这个异常,比如j将数据放到一个队列中,下次重发;又或者做记录日志文件等。

在超时时间(默认30秒)允许范围内,Mongodb集群没有选举出新的主服务器之前,程序是处于阻塞状态的。这个选举过程大概耗时2-3秒。当从集群中选举新的主服务器后,程序将继续执行。

源码下载

最新文章

  1. Nginx 遇到的问题
  2. STM32移植RT-Thread的串口只能接收一个字节数据的问题
  3. Jmeter之Bean shell使用(二)
  4. HTML5 Canvas rect()和strokeRect() 的区别
  5. 异步解压ZIP文件
  6. Java异常处理之try-catch-finally
  7. android bindService()
  8. [转载]C#开源项目(国外的还是很多)
  9. Javascript进阶篇——总结--DOM案例+选项卡效果
  10. 代码管理器 TFS2013
  11. Python验证码通过pytesser识别
  12. Swift:消除Null值
  13. 如果BarTender出现卸载不干净的问题如何处理
  14. 在IE10下,DropDownList的AutoPostBack不能触发
  15. Redis数据结构(三)
  16. Centos6.9下PXE安装centos 7
  17. Java笔记8:Hibernate连接Oracle
  18. for-in和for 循环 的区别
  19. Python可执行对象——exec、eval、compile
  20. BZOJ2844: albus就是要第一个出场(线性基)

热门文章

  1. Cocos2D结合CoreGraphics实现RPG人物中空黑洞吸入效果
  2. 1049. Counting Ones (30)
  3. Intent的Data和Type和Flag属性-amdroid学习之旅(五十一)
  4. svn 回退/更新/取消至某个版本命令详解
  5. USB OTG原理+ ID 检测原理
  6. pig的内置函数小总结(不全)
  7. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上
  8. Linux多线程实践(4) --线程特定数据
  9. Java虚拟机结构
  10. 敏捷测试(7)--基于story的敏捷基础知识