
服务端
文章平均质量分 88
你总是如此优秀
欢迎关注我的公众号:程序猿爱生活
展开
-
惊天深坑:org.bson.json.JsonParseException: Invalid JSON input. Position: 16. Character: ':'.
前阵子在使用 mongo 查询时碰到了一个很神奇的报错信息,而且该报错信息仅在服务器启动后第一次查询时会产生,后续继续使用就又正常了。针对该问题排查许久未果。最近又重新断点排查了一遍,终于发现了具体报错的原因。其实报错原因很简单,就是在使用注解定义索引时使用了中文的冒号(:),底层代码无法解析该冒号,所以就报错了。我们项目的服务器启动后的首次查询时,会遍历代码中注解的索引,如果该索引在 mon...原创 2019-12-09 21:15:43 · 2845 阅读 · 0 评论 -
Java线程池知识点整理
Java线程池最近生产环境的线程池出现了队列中的线程阻塞过多导致服务器不可用的情况,所以借此机会,仔细研究了一波线程池。在学习了大神的文章后,做了如下的总结和整理。使用线程池的优势第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建...转载 2019-10-24 00:20:36 · 755 阅读 · 0 评论 -
TableStore TimeLine 的入坑指南
TableStore TimeLine 的爬坑指南我们在 https://blog.youkuaiyun.com/u013501718/article/details/89425060 一文中,介绍了一个类似于微博、网易云的消息中心模块的设计和实现思路。今天跟大家介绍一下我们的实现后升级数据时踩的一些坑。本次考虑到消息中心的数据量会比较大,所以持久层使用了阿里的 TableStore(简称:ots)。...原创 2019-04-27 16:45:00 · 1289 阅读 · 4 评论 -
仿微博消息中心的系统设计与实现
最近在实现一个类似于微博、网易云的消息中心模块。主要实现的功能是,将系统中的点赞、评论、@等消息做汇合。今天跟大家分享下,我们的设计和实现思路。首先说明,我们目前是微服务的架构。所以本篇文章中对于消息中心的设计也是建立在微服务的基础上,消息中心与其他模块是互相独立的。分析需求后,我们能会发现消息中心的角色如下图(以点赞消息为例):针对需求,我们有如下两种存储方案。方案一:消息表:m...原创 2019-04-20 22:40:51 · 2035 阅读 · 0 评论 -
mongodb中根据表中的字段更新表中的另一个字段
根据表中的字段更新表中的另一个字段(根据表中login_time字段更新表中first_login_time字段)db.getCollection('user').find({"status":2}).forEach( function(item){ db.getCollection('user').update({"_id":item._id},{$s...原创 2018-10-19 00:10:24 · 4323 阅读 · 0 评论 -
地图距离排序二(Java篇)
我们在 mongodb 篇中介绍了如何使用 mongodb 进行地图的距离排序和筛选,今天我们来介绍一下,用 Java 和 SpringData 来实现的时候,需要注意的一些知识点。首先,我们需要为实体设置地图索引。在 SpringData 中,我们可以通过使用 @GeoSpatialIndexed 注解来设置索引。但是这个索引注解默认使用的是2d索引,我们希望使用 2dsphere ...原创 2018-05-14 22:24:35 · 1446 阅读 · 3 评论 -
地图距离排序一(mongodb篇)
在使用外卖或团购 App 筛选商家时,我们经常会用到一个功能,叫作按照离我最近排序。在使用共享单车时,App 会自动帮我们搜索出,距离我们最近几公里内的单车。那么这两种场景,在服务端要如何实现呢?今天我们将使用 mongodb 来实现这两种场景。首先我们准备数据集,创建一个 location 库,然后插入一些数据。如下:例:db.location.insert({"lng":经度,...原创 2018-05-14 22:09:32 · 5539 阅读 · 0 评论