如何检查meteor是否正在使用我的mongo的oplog? 我有一群mongo并为我的流星设置了两个环境。
MONGO_URL=mongodb://mongo/app?replicaSet=rs0
MONGO_OPLOG_URL=mongodb://mongo/local?authSource=app
如何检查opt日志是否实际使用。 Meteor可以回退查询轮询效率非常低,但我想看看它是否与oplog一起正常工作。
有什么想法吗?
答案 0 :(得分:4)
引用Meteor的OplogObserveDriver
docs:
如何判断您的查询是否使用了OplogObserveDriver
目前,我们只有粗略的方式来判断有多少observeChanges调用正在使用OplogObserveDriver,而不是调用它们。
这使用
facts
包,一个内部Meteor包,公开当前Meteor服务器的实时指标。在您的应用中,运行meteor add facts
,然后将{{> serverFacts}}
模板添加到您的应用中。如果您使用的是autopublish
软件包,Meteor会自动将所有指标发布给所有用户。如果您未使用autopublish
,则必须通过在服务器代码中调用Facts.setUserIdFilter
告诉Meteor哪些用户可以查看您的指标;例如:
Facts.setUserIdFilter(function (userId) {
var user = Meteor.users.findOne(userId);
return user && user.admin;
});
(在本地运行您的应用时,
Facts.setUserIdFilter(function () { return true; });
可能已经足够了!)现在看看你的应用。事实模板将呈现各种指标;我们正在寻找的是在mongo-livedata部分中的observe-drivers-oplog和observe-drivers-polling。如果observe-drivers-polling为零或根本没有渲染,则所有observeChanges调用都使用OplogObserveDriver!
答案 1 :(得分:2)
要设置oplog拖尾,您需要在 wb = createWorkbook()
options("openxlsx.numFmt" = "0.00") # 2 decimal cases formating
styleT <- createStyle(numFmt = "#,##0.00") # create thousands format
addStyle(wb, sheetName, styleT,
rows = 'yourrows',cols = 'yourcols',
gridExpand = T, stack = T) # add thousands format to designated cols and rows
上设置user
,在my_database
设置oplog_user
。然后,指定以下URI以连接到名为local
的副本集(例如,如果有3个名为test-shard
的主机:)
test-shard-[0-2]
在MongoDB Atlas上,他们需要MONGO_URL="mongodb://user:PASS@test-shard-0.mongodb.net:27017,test-shard-1.mongodb.net:27017,test-shard-2.mongodb.net:27017/my_database?ssl=true&replicaSet=test-shard&authSource=admin"
MONGO_OPLOG_URL="mongodb://oplog_user:PASS@test-shard-0.mongodb.net:27017,test-shard-1.mongodb.net:27017,test-shard-2.mongodb.net:27017/local?ssl=true&replicaSet=test-shard&authSource=admin"
,并且所有用户都需要通过ssl=true
数据库进行身份验证。在另一个部署中,您可以通过admin
进行身份验证,在这种情况下,您要删除my_database
的{{1}}并为authsource=admin
写MONGO_URL
。有关其他示例,请参阅this post。
使用MongoDB 3.6和Mongo节点驱动程序3.0+,您可以对DNS seedlist connections使用简洁的表示法,例如在MongoDB Atlas上,指定环境变量:
authsource=my_database
上面的链接说明了此注释如何填充MONGO_OPLOG_URL
,MONGO_URL="mongodb+srv://user:PASS@foo.mongodb.net/my_database"
MONGO_OPLOG_URL="mongodb+srv://oplog_user:PASS@foo.mongodb.net/local"
和ssl
参数。这比上面的长字符串好很多,也意味着你可以在不需要重新配置任何东西的情况下扩展你的副本设置。
正如hwillson所提到的,使用replicaSet
和authSource
个软件包(以前为facts-ui
)来查看您的应用中是否有facts-base
个运行。如果它们都是facts
,那么oplog设置不正确。
答案 2 :(得分:1)