抢先看 | 是什么造成了mongoDB 上海峰会一票难求?

2024-02-14 08:20

本文主要是介绍抢先看 | 是什么造成了mongoDB 上海峰会一票难求?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=png

今天刚参加完「2018年 mongoDB 上海峰会」现场,对比同类我参加过的活动,包括付费1500的技术峰会等,mongoDB的免费社区大会每一次给到的惊喜都不亚于付费活动,很欣慰。这都归功于我们上海分会的志愿者们。

我说过,在这里不止能够学到Python,接下来就让我带着大家一起来回顾一下,本次「mongoDB 上海峰会」现场所带来的干货。

先来看下今天的日常安排:

640?wx_fmt=jpeg

可以看到一天的安排是非常满当的,而事实是由于中间某几个环节的异常活跃,导致最后大会与晚上6点后才开始结束。

mongoDB 4.0 的新特性

mongoDB 4.0 的新特性是我非常关注的,除了官方放出的消息外,还想看看能从林总嘴里爆出什么料来。

  • 首先就是mongoDB作为一个非关系型数据库,竟然光明正大的支持事务了!这意味着什么?mongoDB的股票要涨啦!

    事务的支持一直是开发者关心的问题。事实却是,如果没有事务,想要让mongoDB撼动金融界的老大Oracle是很难的。虽然mongoDB早有解决方案(改变文档设计,将事务事件转化为单条文档),但是对于开发者来说确实存在一些开发学习成本。不符合mongoDB本身的精神(为了开发者而生的数据库)。

    具体的使用我不在这里做过多的描述,官方文档已经上线,写法也很简单。

  • 集成k8s!

    做DevOps的都知道,Docker技术日趋成熟,很多企业已经开始自研k8s结合其他标准容器模版来构建自己的生态。而 mongoDB 集成k8s无疑是在大环境下的一个布局。

  • mongoDB Charts 也是一个不错的产品,市面上BI工具中占有比例最高的当属Tableau,然而并不支持 mongoDB,或者说支持的不够好。mongoDB Charts就是这么一款专为BI打造的量身工具。

其他的新特性在这里就不一一举例了,如果以上内容让有了初恋的感觉,可以前往官方网站进行更多详情了解。

mongoDB最佳实践

国泰君安的架构师给我们分享的是在他们的中台系统中mongoDB所扮演的角色。

除了对于自身系统的一番介绍外,还对mongoDB的一些注意事项进行了说明,将现实生产中遇到的坑都分享给了我们:

  • C mongoDB 驱动 1.1 会有突然的延迟,需要更新驱动至1.5。

  • mongoDB认证后的连接字符串对于复杂密码的处理需要格外注意。

  • 副本集的使用中,对于索引的更新,需要注意放在后台或者将从节点下架为单一节点,创建完毕后再重新加入副本集中。

mongoDB Aggregation

Teambition的工程师带来了实践中的mongoDB Aggregation技巧及注意事项,内容更偏向于开发,所以我不做单独的代码演示了。

魔都买房

午休过后,就来到了紧张刺激的「魔都买房秀」!本以为是一场技术分享好房的架构或者实践,没想到请来的是真Boss!内容就是纯纯的教你怎么买房!

语速真的惊人,不夸张的说,1个半小时说了3万个字!关键是段子够味,内容够干!我把金老师说的点都记下来了,事后做了一个笔记补充,并且和好房的专家组进行了沟通。

明天或者后天我会抽时间把这篇「如何在魔都买好房,祝好房」分享在星球里面,也作为对星球投资的一种福利吧。上个我做的笔记。

640?wx_fmt=jpeg

mongoDB在推荐系统中的应用

之后带来的就是平安好房的推荐系统,这个东西我比较感兴趣的。我觉得直接上图对于程序猿来说更直观一点。

640?wx_fmt=jpeg

整个架构其实很大,每一块都能单独拎出来讲,我们来过一下。

  • Flume用于日志采集,所以之后用到了Kafka和Storm作日志收集、分发,同样我们也可以用ELK全家桶,而我更偏向ELK。

  • 下面是mongoDB+MySQL+Solr的一个数据存储+搜索引擎的架构,但仔细想一下,如果之前的Flume换成了ELK,那是不是这里的Solr也可以省了呢?

  • 往上走就是Cache层,这里的做法还是比较普世的,用Redis,没什么好说的。

整体给我的感受就是:好房的推荐系统还是比较解偶的,每一个模块都是可以拆分出来作为组件来复用的。

CRUD

携程的工程师给我们介绍了在订票系统中mongoDB的最佳实践和操作。总体上来说偏实操,可能看文档,自己去实践下就都有了。

mongoDB开发应该知道的事

最后锦木的CTO给我们带来的是关于他们作为一家提供专业mongoDB服务的第三方是如何帮助客户解决实际工作中带来的问题,也分享了他们的案例。

这里我就给大家介绍一个关于mongoDB模式设计

640?wx_fmt=jpeg

对于一个社交媒体来说,关注和被关注是一个经常会触发的用户行为。那么在mongoDB Sharding的情况下,我们要如何才能做到走索引而不全表扫描呢?

这里采取的策略就是用空间换时间。我一式两份,关注了谁,我使用 {"from": 1, "to": 1} 作为分片键和索引;被谁关注,我使用 {"to": 1, "from": 1} 作为分片键和索引。

这样一来,业务清晰,数据明了,真正做到了分片合理化。

最后,放一个我的星球二维码,在我的星球里,你能够获得什么?

1. 「每周精选」

会总结一周来的得与失,以及热点、技术,做一个速递。

包括我付费参加的一些星球那学到的东西。

2. 「大航海计划」

由船长发起,分为多个阶段,或招募或淘汰若干名船员,每周都会在星球做一次项目汇报。目标是让球友能够在星球里找到志同道合的小伙伴一起驶向新世界。

目前这个计划首发由我担任船长,第一期船员招募已结束,第二期即将开启。

目的是通过游戏帮助python零基础船员从零开始学习python,并能够自己制作客户端,在游戏中体验编程的乐趣。而会python的也不会因为简单而弃船,因为游戏是公平的,你不可能出于绝对优势,总有人能够编写出一套强大的客户端来战胜你。


3. 现在加入,立减22元

没错,原价88元的星球,下周一前加入,都能够获得22元红包一个。

也就是说你只要66元,就能获得一个努力的圈子。

640?wx_fmt=jpeg

推荐阅读:

万字谏言 | 零基础转行Python,到底路在何方?

Python | Python字符串的格式化,看这一篇就够了

这篇关于抢先看 | 是什么造成了mongoDB 上海峰会一票难求?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/707970

相关文章

生产mongodb 分片与集群 方案

链接:http://my.oschina.net/pwd/blog/411439#navbar-header 注:主要是有一键安装的脚本可以借鉴

mongodb基本命令和Java操作API示例

1.Mongo3.2 java API示例:http://www.cnblogs.com/zhangchaoyang/articles/5146508.html 2.MongoDB基本命:http://www.cnblogs.com/xusir/archive/2012/12/24/2830957.html 3.java MongoDB查询(一)简单查询: http://www.cnblogs

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo

mongodb简单入门

一篇较好的mongodb常用操作命令:http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html mongodb的java操作:http://www.cnblogs.com/cyhe/p/5451421.html

mongodb自启动脚本.md

可粘贴文本(不全): #!/bin/sh##chkconfig: 2345 80 90#description:mongodb#processname:mongodbif test -f /sys/kernel/mm/transparent_hugepage/enabled; thenecho never > /sys/kernel/mm/transparent_hugepage/e

MongoDB学习—(6)MongoDB的find查询比较符

首先,先通过以下函数向BookList集合中插入10000条数据 function insertN(obj,n){var i=0;while(i<n){obj.insert({id:i,name:"bookNumber"+i,publishTime:i+2000})i++;}}var BookList=db.getCollection("BookList")调用函数,这样,BookList

MongoDB学习—(5)修改器$inc,$unset,$push,$pushAll,$allToSet,$pop,$pull,$pullAll

通过db.help()可以查询到关于数据库的操作,一查询发现有很多方法 其中有一个方法为db.getCollection(cname),即通过这一个函数,传入数据库中的一个集合的名称来获取到该集合的一个对象,我们可以编写函数   function insertTenRecord(obj){ var i=0; while(i++<10){ obj.insert({id:i+1,a

MongoDB学习—(4)文档的插入,删除与更新

一,文档的插入 插入命令有两个一个为insert,另一个为save,两者的区别为 db.[documentName].insert({..})插入的数据不允许重复,即_id不可相同 db.[docuemntName].save({..})插入的数据允许重复,如果整条数据内容相同,则不发生替换,如果数据有做不同,则将原数据替换 二,删除文档数据 db.[docuementName].r

MongoDB学习—(3)shell的基本操作

一,删除数据库中的集合文档 命令为 db.[documentName].drop() 二,删除数据库 命令为 db.dropDatabase() 执行该命令时,应该先进入想要删除的数据库中,如 三,shell中的help 我们可以运用shell中的help来查询相关的操作,查询数据库相关的就用db.help(),查询集合相关的就用db.[documentName].help

MongoDB学习—(2)shell的基本操作

一,创建一个数据库 使用use关键字,格式为 use [databasename] 当你这样创建一个数据库时,该数据库只是创建于内存中,只有你对数据库执行一些操作后,数据库才真正的创建,否则如果直接关掉mongodb,数据库在内存中会被删除掉。 二,查看所有数据库 命令为 show dbs Mysql中的命令为show databases,两者有所不同。 三,查看数据库中的现有的文