MongoDB碎碎念

起学习.NET以来,优雅的编程风格,极度简单的而扩展性,足够强劲开发工具,极小的攻曲线,让我本着这个平台发生了深切的兴味,在做事同读书着呢累了有的开源的组件,就当下想到的先行收拾为之,如果更想到,就此起彼伏补就首日记,日积月累,就能形成一个温馨的组件经验库。

1. 怎么样自备份节点读取数据

分布式缓存框架:

    默认是未容许的,会报如下错误:

Microsoft Velocity:微软自家分布式缓存服务框架。

testReplSet:SECONDARY> show dbs
2016-07-19T10:25:03.196+0800 E QUERY    [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 } 

Memcahed:一效分布式的高速缓存系统,目前吃很多网站以以提升网站的访问速度。

  如果要允许备份节点读取数据,需要执行以下命令

Redis:是一个大性能的KV数据库。
它的面世非常充分程度上了Memcached在少数方面的阙如。

db.getMongo().setSlaveOk()

EnyimMemcached:访问Memcached最优质的.NET客户端,集成不错的分布式均衡算法。

2. 关于备份集

开源的.NET系统推荐:

   1>
客户端在单机服务器上实施之操作,都好发送到主节点执行(读,写,执行命令,创建索引等)

OXITE:微软ASP.NET MVC案例演示框架。

   2> 客户端不可知在备份节点上推行写操作

PetShop:微软ASP.NET宠物商店。

   3>
默认情况下,客户端不能够从备份节点读取数据,除非显式地实践了setSlaveOk操作。

Orchard:国外一个MVC开源的博客系统。

   4>
无法用单机服务器移为符合本集,除非关服务还初始化,所以建议,即使单纯发一个服务器,也安排成符合本集的形式,这样持续补加节点就无欲停止服务了。

SSCLI:微软以NET Framework 2.0时期的开源代码。

   5>
副本集中大重大之一个概念是“大多数”:选择主节点需要由死多数决定,主节点只有以博多数支持时才能够继续当主节点,写操作为复制到多数成员经常这个写操作

DasBlog:国外一个基于ASP.NET的博客系统。

       才是高枕无忧之。

BlogEngine.NET:国外相同暂缓免费开源之博客系统。

3. 安查看服务器的吩咐执行参数

Dotnetnuke.NET:一拟好精美的根据ASP.NET的开源门户网站程序。

   db.serverCmdLineOpts()

Discuz.NET:国内开源的论坛社区系统。

4. too many chunks to print, use verbose
if you want to force print

nopCommerce和Aspxcommerce:国外相同仿照高质量的开源B2C网站系统。

    可通过执行以下命令查看

JumboTCMS和DTCMS:国内简单慢性开源之网站管理体系:

    printShardingStatus(db.getSisterDB(“config”),1);

日志记录非常处理:

5. MongoDB的Driver如何使用

Log4Net.dll:轻量级的免费开源.NET日志记录框架。

// 通常的用法

// global MongoClient object
mongoClient = new MongoClient("mongodb://root:****@host1:port1,host2:port2/admin?replicaSet=repl00& maxPoolSize=100");

// request1
db1 = mongoClient.getDatabase("db1");
coll1 = db1.getCollection("coll1");
coll1.find({...})

// request2
db2 = mongoClient.getDatabase("db2");
coll2 = db2.getCollection("coll2");
coll2.update({...})

// requestN
...

Enterprise Library Log Application Black:微软企业库日志记录。

 

Elmah:实现最风靡的ASP.NET应用非常日志记录框架。

// 错误的用法
// request1
mongoClient = new MongoClient("mongodb://root:****@host1:port1,host2:port2/admin?replicaSet=repl00& maxPoolSize=100");
db1 = mongoClient.getDatabase("db1");
coll1 = db1.getCollection("coll1");
coll1.find({...});
mongoClient.close();


// request2
mongoClient = new MongoClient("mongodb://root:****@host1:port1,host2:port2/admin?replicaSet=repl00& maxPoolSize=100");
db2 = mongoClient.getDatabase("db2");
coll2 = db2.getCollection("coll2");
coll2.update({...});
MongoClient.close()

// requestN
...

NLog:是一个简练利落的日记记录类库,性能于Log4Net高,使用及保障难度小。

6. 什么样查看时连接数

关于NoSQL数据库:

rs0:PRIMARY> db.serverStatus().connections
{ "current" : 8, "available" : 811, "totalCreated" : 104 }

Mongodb:分布式文件存储数据库。

7. 怎样查看,kill当前之操作

Membase:家族的一个新的重量级的成员。

rs0:PRIMARY> db.currentOp()
rs0:PRIMARY> db.killOp(opid)

机关任务调度框架:

8. 查询有方等待锁的勾勒操作

Quartz.NET:开源的功课调度和机动任务框架。

db.currentOp(
   {
     "waitingForLock" : true,
     $or: [
        { "op" : { "$in" : [ "insert", "update", "remove" ] } },
        { "query.findandmodify": { $exists: true } }
    ]
   }
)

Topshelf:另一样栽创建Windows服务的开源框架

9.
查询有操作db1以实施时间已超过3s底请

乘注入IOC容器框架:

db.currentOp(
   {
     "active" : true,
     "secs_running" : { "$gt" : 3 },
     "ns" : /^db1\./
   }
)

Unity:微软patterns&practicest团队出之IOC依赖注入框架,支持AOP横切关注点。

 

MEF(Managed Extensibility
Framework):是一个据此来放展.NET应用程序的框架,可支付插件系统。

  

Spring.NET:依赖注入、面向方面编程(AOP)、数据看抽象,、以及ASP.NET集成。

Autofac:最盛行的靠注入和IOC框架,轻量且高性能,对品种代码几乎无外侵入性。

PostSharp:实现静态AOP横切关注点,使用简易,功能强大,对目标拦截的措施无论需外变动。

Ninject:基于.NET轻量级开源的凭注入IOC框架

常用之几只ORM框架:

EF(ADO.NET Entity Framework):微软因ADO.NET开发之ORM框架。

Nhibernate:面向.NET环境的轻量级的ORM框架。

SqlMapper.cs:用于小品种的通用的C#数据库访问类。

AutoMapper:流行的对象映射框架,可削减大气硬编码,很精密灵活,性能表现为不过领。

SubSonic:优秀的开源的ORM映射框架,同时提供可自身要之代码生成器。

FluentData:开源的基于Fluent API的链式查询ORM轻量级框架。

Dapper:轻量级高性能基于EMIT生成的ORM框架。

EmitMapper:性能比高的ORM框架,运行时经EMIT动态生成IL代码,并非以反射机制。

格式和数据类型转换:

Newtonsoft.Json:目前.NET付出被最好风靡的JSON序列化库,为新本子的WebApi库提供基础。

System.JSON.dll:微软自己开之JSON序列化组件(需要独自下载)

DataContractJsonSerializer 和
DataContractXmlSerializer:微软以WCF中行使的序列化器。

JavaScriptSerializer:微软默认针对WEB开发者提供的JSON格式化器。

iTextSharp、PDFsharp 和 PDF.NET:通过.NET处理以及生成PDF文档的零部件。

SharpZipLib.dll:免费开源的ZIP和GZIP文件解压缩组件。

Math.NET:强大的数学运算、微积分、解方程和对运算。

DocX:不需要设置word软件,通过C#操作word文件。

SharpSerializer:开源XML和、二进制、JSON、压缩和优化框架。

映和动态语言:

Clay
dynamic:开源的动态语言dynamic框架为您形如javascript的计创建对象。

ExposedObject:在类的外表通过动态语言dynamic的艺术访私有成员。

PrivateObject:微软单元测试框架中便在外部调用类内部私有成员的一个像样。

跳平台与运转时解决方案:

MONO.NET:跨平台的.NET运行环境,让.NET跨平台运行成为可能。

DotGnu Portable.NET:类似于MONO.NET的跨平台运行时。

Phalanger:将PHP编译成.NET,可实现PHP与.NET互操作。

VMDotNet:中国移动飞信所运用了之.NET运行时。

Unity3D:微软全力以赴支持之机遇C#和JavaScript的跨平台游戏支付框架。

Cassini、IIS Express和Cassinidev:开源之ASP.NET执行环境。

Katana:微软因OWIN规范落实之非IIS寄宿ASP.NET和MVC等。

IKVM.NET:基于.NET的JAVA虚拟机,让JAVA运行在.NET之上。

WEB开发及计划性:

Jumony Core:基于.NET开发的HTML引擎。

Microsoft.mshtml.dll、Winista.HtmlParser.dll 和
HtmlAgilityPack.dll:解析处理HTML文档的框架。

JavaScript.NET和ClearScript(微软产品):基于.NET开发的JavaScript引擎。

NCrawler:其HTML处理引擎htmlagilitypack的之开源网络爬虫软件。

AntiXSS:微软官预防跨站XSS脚本入侵攻击的开源类库,它经过白名单机制进行内容编码。

YUICompressor.NET、Microsoft Ajax Minifier 和 Google Closure
Compiler:JavaScrip和CSS压缩器。

NancyFx:是一个科学的轻量级开源.NET
WEB框架。如果想迅速开个大概的WEB应用。

AspNetPager:国内老牌的ASP.NET分页控件,支持多分页方式。

NOPI.dll:导出Excel报表的插件(基于微软OpenXml实现)(nopi.css.dl通过css设置样式)

Enterprise Library:微软本着企业级应用开发的超级实践组件。

PowerCollections:国外一个牛人写的高等开源集合。

运动互联网与出口计算:

PushSharp:通过.NET向各种走平台推送消息。

mono for android:用.NET语言开发安卓应用:

MonoTouch:用.NET语言开发IOS应用。

PhoneGap和AppCan:跨平台基于HTML5的运动开平台。

Cordova:PhoneGap贡献为Apache后底开源项目,是驱动PhoneGap的基本引擎。

网通信同网络协议:

SuperSocket:基于.NET轻量级的但扩大的Socket开发框架。

SuperWebSocket:通过.NET实现TML5 WebSocket框架。

XProxy:支持插件的底蕴代理程序集,内置NAT、加解密、反向、直接跟间接代理。

图片和图像处理框架:

Paint.NET:基于.NET小巧灵活有力的图形处理开源项目。

Imagemagick.NET:用C#针对开源图像处理组件Imagemagick的包装。

Skimpt:基于.NET开源之屏幕截图软件。

ImageGlue.NET:商业的图像处理组件,支持之格式列了同样挺堆。

Sprite and Image Optimization
Framework:微软CSS精灵,多图合成一摆设大图和CSS样式。

桌面应用程序框架:

DevExpress:一个举世知名的桌面应用程序UI控件库。

Prism:微软支付的针对WPF和Silverlight的MVVM框架,通过功能模块化的合计,来讲复杂的事务功能跟UI耦合性进行分离。

WPFToolkit 和 Fluent Ribbon Control
Suite:开发近乎于Office风格的Ribbon菜单。

测试与特性评估方面:

Faker.Net:方便生成大批量测试数据的框架。

Nunit:一个轻量级的单元测试框架。

Moq:非常流行的Mock框架,支持LINQ,灵活且高性能。

xUnit:比NUnit更好的单元测试框架,升级改良版的Nunit框架。

MiniProfiler以及Glimpse:基于MVC的简单慢性性能事件监控框架。

工作和分布式事务支持:

KtmIntegration:一个支撑NTFS文件系统的事体开源类。

NET Transactional File
Manager:对文件系统操作(复制、移动与去)加入工作支持。

分词、全文检索和摸索引擎:

Lucene.net:流行大性能的全文索引库,可用以为各项信息提供强大的寻找效果。

Lucene.Net.Analysis.PanGu:支持Lucene.Net最新版本的天神中文分词扩展库。

数码说明组件整理:

FluentValidation for .NET:基于LINQ表达式方法链Fluent接口验证组件。

Microsoft.Practices.EnterpriseLibrary.Validation.dll:微软企业库验证程序块。

CuttingEdge.Conditions:基于Fluent接口方法练接口的契约编程组件。

DotNetOpenAuth:让网站有着支持OpenID、OAuth、InfoCard等位置证明的能力。

开源图表统计控件:

Visifire:一套效果挺好之WPF图表控件,支持3D绘制、曲线、折线、扇形、环形和梯形。
SparrowToolkit:一模仿WPF图表控件集,支持绘制动态曲线,可绘制示波器、CPU使用率和波。
DynamicDataDisplay:微软初步源的WPF动态曲线图,线图、气泡图和热力图。

 

得扩大消息队列类别,如:Kafka是均等种分布式的,基于发布/订阅的消息网。主要设计目标如下:
坐时复杂度为O(1)的措施供信息持久化能力,即使对TB级以上数量为能确保常数时间复杂度的看性能。
赛吞吐率。即使以非常廉价的商用机器上也能得单机支持各级秒100K条以上信息的导。
支撑Kafka
Server间的消息分区,及分布式消费,同时保证每个Partition内之信息顺序传输。
以支持离线数据处理及实时数据处理。
Scale out:支持在线水平扩展。
RabbitMQ
RabbitMQ是动Erlang编写的一个开源的信队列,本身支持广大底商事:AMQP,XMPP,
SMTP,
STOMP,也正因如此,它那个重量级,更切合吃公司级的支付。同时实现了Broker构架,这代表消息于发送给客户端时先在着力队列排队。对路由,负载均衡或者数额持久化都发出老好的支持。
Redis
Redis是一个因Key-Value对的NoSQL数据库,开发保护好活跃。虽然它是一个Key-Value数据库存储系统,但她自己支持MQ功能,所以全好看作一个轻量级的队列服务来采取。对于RabbitMQ和Redis的入队及出队操作,各执行100万次于,每10万坏记录一致坏实践时。测试数据分为128Bytes、512Bytes、1K和10K季个不同大小的数码。实验表明:入队时,当数较时Redis的性要高于RabbitMQ,而要数量大小超过了10K,Redis则迟迟的无法忍受;出队时,无论数额大小,Redis都显现出老好之属性,而RabbitMQ的出队性能则多低于Redis。
ZeroMQ
ZeroMQ号称太抢之音队列系统,尤其针对大吞吐量的需要状况。ZeroMQ能够落实RabbitMQ不擅长的高档/复杂的队,但是开发人员需要协调组合又艺框架,技术达到之复杂度是针对性就MQ能够采取成之挑战。ZeroMQ具有一个奇之非中间件的模式,你莫需要设置与运行一个信服务器或中等件,因为若的应用程序将去这个服务器角色。你不过待简单的援ZeroMQ程序库,可以运用NuGet安装,然后您虽得愉悦的当应用程序之间发送信息了。但是ZeroMQ仅提供非持久性的序列,也就是说要宕机,数据以见面丢掉。其中,Twitter的Storm
0.9.0先的本子中默认使用ZeroMQ作为数据流的导(Storm从0.9版开始还要支持ZeroMQ和Netty作为传输模块)。
ActiveMQ
ActiveMQ是Apache下的一个子项目。
类似于ZeroMQ,它亦可以代办与沾对碰的技艺实现队列。同时类似于RabbitMQ,它少量代码就可以高速地落实高级应用场景。
Kafka/Jafka
Kafka是Apache下的一个子项目,是一个胜过性能跨语言分布式发布/订阅消息队列系统,而Jafka是在Kafka之上孵化而来之,即Kafka的一个升级版。具有以下特征:快速持久化,可以当O(1)的网出下展开信息持久化;高吞吐,在相同贵一般的服务器上既可以直达10W/s的吞吐速率;完全的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现负载均衡;支持Hadoop数据交互加载,对于诸如Hadoop的同一的日记数据与离线分析系统,但同时要求实时处理的限,这是一个实用之解决方案。Kafka通过Hadoop的竞相加载机制统一了在线与离线的音处理。Apache
Kafka相对于ActiveMQ是一个格外轻量级的音讯网,除了性能大好以外,还是一个做事出色的分布式系统。

转自:http://www.cnblogs.com/hgmyz/p/5313983.html\#3390282

发表评论

电子邮件地址不会被公开。 必填项已用*标注