- 博客(31)
- 资源 (22)
- 问答 (1)
- 收藏
- 关注
原创 异常处理的原则
异常处理原则异常转译和异常链 比如一个转账的服务A用户向B用户转账100元,对应与Service来讲就是一个转账的逻辑。对应于Dao来讲是A用户减100,B用户加100.如果底层Dao出现异常应该: 1、dao层向上抛出数据操作的比如连接问题、字段问题等异常。 2、Service捕获异常,并向上抛出转账失败的异常。而不应该是数据库操作的异常。这称之为异常转译,通过这一层层的异常链可...
2018-09-27 20:44:28 559
转载 Mac终端Iterm2快捷键大全
标签 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:command + enter 查找:command + f 分屏 垂直分屏:command + d 水平分屏:command + shift + d 切换屏幕:comma...
2018-09-27 11:53:25 1618
转载 Mac终端快捷键大全
在shell命令终端中,Ctrl+n相当于方向向下的方向键,Ctrl+p相当于方向向上的方向键。在命令终端中通过它们或者方向键可以实现对历史命令的快速查找。这也是快速输入命令的技巧。在命令终端中可以通过Ctrl+r 实现快速检索使用过的历史命令。Ctrl+r中r是retrieve中r。Ctrl+a:光标回到命令行首。 (a:ahead) Ctrl+e:光标回到命令行尾。 (e:e...
2018-09-27 11:50:52 2988
转载 sublime中分号替换成换行
commd + option +ffindwhat中输入 ;在Rplace With 中输入 commd+ shift+enter点击replaceall
2018-09-26 16:41:13 2312
转载 基于MYSQL获取地理位置附近的点
由于最近一年多大部分都做的是LBS相关项目,发现现在安全、社交、O2O等等的手机APP都会使用LBS技术,基于LBS位置服务的APP用户体验会更好,也更容易挖掘到用户真正的需求。下面总结了两个项目中“附近的”解决方案仅供参考,有什么问题欢迎指正。1、近似(矩形范围内)实现原理简单粗暴,先算出该点周围的矩形的四个点,然后使用经纬度去直接匹配数据库中的记录(参考)<span s...
2018-09-26 14:47:08 2286
转载 MongoDB 标准连接字符串
MongoDB连接标准格式:mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]参数说明 Mongodb:// 必填的前缀,标识当前字符串为便准链接格式 username:password...
2018-09-20 16:17:58 4531
转载 tcp为什么要三次握手,而不能二次握手
网上 关于 TCP三次握手 的文章有很多,但很多一些部分讲的含糊其辞,所以才重新造了这个轮子,一方面对那些含糊其辞的部分做了解释,另一方面也方便了以后的学习。1、上图的名词解释SYN:同步序号。它表示建立连接。TCP规定SYN=1时不能携带数据,但要消耗一个序号, 因此随机选取一个序列号为seq=x 数据包(该数据包里就是一个标记seq,并没有任何有效的数据)。 ACK :确认序号。...
2018-09-20 10:46:01 3437
转载 mongodb文档存储特点及通过占位提升更新效率
将文档插入到MongoDB的时候,文档是按照插入的顺序,依次在磁盘上相邻保存 因此,一个文档变大了,原来的位置要是放不下这个文档了, 就需要把这个文档移动到集合的另外一个位置,通常是最后,能放下这个文档的地方。示例: 修改第一个文档使它变大它会移动到最后 db.userdatas.find(){ "_id" : ObjectId("597f357a09c84cf588...
2018-09-20 00:54:02 851
转载 mongodb-mongotemplate进行地理坐标操作
因为项目中使用的springboot + mongotemplate, 所以还是需要mongotemplate的操作方式首先建立一个bean: package com.iwhere.easy.travel.entity;import java.io.Serializable;import java.util.Arrays;import org.springframewor...
2018-09-13 20:20:35 1989
原创 mongodb地理信息应用
1. 二维空间索引 MongoDB支持二维空间索引,这是设计时考虑到基于位置的查询。例如“找到离目标位置最近的N条记录”。并且可以有效地作为附加条件过滤。 如果需要使用这种索引,应确定对象中存储的字段是子对象或数组,前两个元素为X,Y坐标。在文件中,存储的地理位置结构为:{ loc : [ 50 , 30 ] } { loc : { x : 50 , y : ...
2018-09-13 20:17:29 853 1
转载 Spring MongodbTemplate 查找10公里范围内的目标(以车辆为例)
Mongodb官网参考地址:https://docs.mongodb.com/manual/core/geospatial-indexes/#calculation-of-geohash-values-for-2d-indexe1.配置Spring 和mongodb的集成环境 mongodb-config.xml MongoTemplatepublic List<CarPosi...
2018-09-13 20:06:13 1262
转载 SpringBoot MongoTemplate 去除 _class 字段
在使用SpringBoot中使用MongoTemplate时,数据库中数据会有_class字段,虽说不影响使用,但是总是看着有些碍眼。以下就是去除_class 字段的配置类,只需将代码复制即可直接使用。import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory...
2018-09-13 20:03:14 1980
原创 球面索引 2dsphere
球面索引在一个类似地球球形表面来计算地理数据,MonogDB使用WGS84地心坐标系误差比较小。 支持两种对象数据格式: geojson和 平面坐标对。 geojson 如果用的是平面坐标对会转换成geojson。建议使用geojson对象。 geojson基于js对象的表示方法,用于地理空间信息的交换。2dsphere使用geojson来存储数据...
2018-09-13 20:02:08 900
转载 MongoDB——地理空间索引和查询
MongoDb介绍(http://docs.mongoing.com/manual/applications/geospatial-indexes.html)MongoDB提供了一系列的索引和查询机制来处理地理空间信息。这一节会介绍MongoDB的地理索引特性。您可以阅读 地理索引教程 来了解关于MongoDB中地理查询的完整示例。表面在您存储地理数据和编写查询条件前,首先,您必须选择...
2018-09-13 20:01:53 1344
转载 mongodb insert()和save()的相同点和区别
区别若新增的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容。如:已存在数据: {_id : 1, " name " : " n1 " },再次进行插入操作时, insert({_id : 1, " name " : " n2 " }) 会报主键重复的错误提示save({ _id : 1, " name " : " n2 &qu
2018-09-13 14:37:31 1006
转载 基于MongoDB 2dSphere索引查找最近的点
在移动端普及的今天,LBS应用需求也越来越大。比如查找附近的人,最近的餐厅等。面对这些需求,MongoDB提供了功能完备的解决方案。下面通过一个案例讲诉如何用mongoDB做位置搜索。 在这个图片中,有A B C D E F G,假如我是搜索点A。我想查找离自己最近的点。下面是具体的操作步骤: 1.建立集合和索引。sp为建立索引的字段名,我们建立的索引类型是2dsphere #...
2018-09-13 13:55:14 1027
原创 mongodb后台运行
如果想在后台运行,启动时只需添加 --fork函数即可。 fork: 以守护进程的方式运行MongoDB。 指定日志输出路径,而不是输出到命令行bin/mongodb --fork --dbpath=// --logpath=// --logappend如:./mongod --fork --logpath=/data/db/log.logMongodb可以通过命令行方式和...
2018-09-13 12:02:41 1544
转载 MongoDB 空间定位(点) 与 距离检索
基于 MongoDB 2.6GeoJSON 格式{ "type": "Point", "coordinates": [lon(经度),lat(纬度)]} 测试数据db.geo.insert({"address" : "南京 禄口国际机场","loc" : { "type": "Point", "coordinat
2018-09-13 01:56:25 983
转载 Redis原理及实践之GeoHash
2. 地理位置距离排序算法(GeoHash) GeoHash算法思想 GeoHash算法将二维的经纬度数据映射到一维的整数,这样所有的元素都将挂载到一条线上,距离靠近的二维坐标映射到一维后的点之间距离会很接近。当我们想要计算附近的人时,首先将目标位置映射到这条线上,然后在这条一维的线上获取附近的点就ok了。 那这个映射算法具体是怎样的呢?它将整个地球看成一个二维平面,然后划分成了一系列正...
2018-09-12 21:22:07 1065
转载 geohash精度问题
一、经纬度距离换算a)在纬度相等的情况下: 经度每隔0.00001度,距离相差约1米; 每隔0.0001度,距离相差约10米; 每隔0.001度,距离相差约100米; 每隔0.01度,距离相差约1000米; 每隔0.1度,距离相差约10000米。 b)在经度相等的情况下: 纬度每隔0.00001度,距离相差约1.1米; 每隔0.0001度,距离相差约11米;...
2018-09-12 19:56:07 5135 1
转载 GeoHash核心原理解析
引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐。 饭饱之后机机开始反思了,地图后台如何根据自己所在位置查询来查询附近餐馆的呢?苦思冥想了半天,机机想出了个方法:计算所在位置P与北京所有餐馆的距离,然后返回距离<=1000米的餐馆。小得意了一...
2018-09-12 19:53:19 236
转载 redis3.2新功能--GEO地理位置命令介绍
概述redis3.2发布rc版本已经有一段时间了,估计RedisConf 2016左右,3.2版本就能release了。3.2版本中增加的最大功能就是对GEO(地理位置)的支持。说起redis的GEO特性,最大的贡献还是咱们中国人。redis作者在对3.2引进新特性的博客中介绍了为什么支持GEO。GEO hashing的api是在Ardb实现的,Ardb是github用户yinqiwen实现的...
2018-09-12 19:52:41 310
转载 iterm2 快捷键大全 Mac item2常用快捷键
标签 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:command + enter 查找:command + f 分屏 垂直分屏:command + d 水平分屏:command + shift + d 切换屏幕:comma...
2018-09-12 14:40:33 1956
转载 jedis连接池详解(Redis)
原子性(atomicity):一个事务是一个不可分割的最小工作单位,事务中包括的诸操作要么都做,要么都不做。Redis所有单个命令的执行都是原子性的,这与它的单线程机制有关;Redis命令的原子性使得我们不用考虑并发问题,可以方便的利用原子性自增操作INCR实现简单计数器功能;单机模式:package com.ljq.utils;import redis.clients.j...
2018-09-08 14:12:25 1050
转载 Connection reset原因分析和解决方案
在使用HttpClient调用后台resetful服务时,“Connection reset”是一个比较常见的问题,有同学跟我私信说被这个问题困扰很久了,今天就来分析下,希望能帮到大家。例如我们线上的网关日志就会抛该错误: 从日志中可以看到是Socket套接字在read数据时抛出了该错误。 导致“Connection reset”的原因是服务器端因为某种原因关闭了Connect...
2018-09-08 01:34:42 103431
转载 继续深入理解HTTP keepalive
最近心里有几个疑问想要解决: 1. keepalive 是否开启服务端控制还是客户端控制? 2. keepalive的时间是由服务端控制还是客户端控制? 3. keepalive时间一到,是由客户端主动关闭还是服务端主动关闭? 4. 如果客户端不是httpclient,使用telnet连接服务端?下面带着上述问题,模拟相关场景进行抓包实验,先展示一张图,便于后续的分析: 场景一...
2018-09-08 01:23:43 9018 1
转载 当http连接池遇上keepalive
最近在使用netty作为http客户端通过pool连接tomcat的时候,出现了很多Connection reset by peer 的IOException的异常。便对问题的根源做了细致的调研。1 连接种类 一般连接主要分为长连接,短连接和http的keepalive连接。1.1 长连接:建立完连接后,该连接不再进行释放。 优点:性能较高,不需要重复建立tcp...
2018-09-08 01:23:15 1015
原创 ES搜索调优
1、调整Query:根据实际业务需求调整,防止Query过大过长。2、调整索引结构 2.1 通过配置_source来压缩索引容量。减少倒排表内容 2.2 禁止启用聚合字段"doc_values" 设置为false 2.3 自定义mapping结构,针对每个字段配置数据类型、是否参与检索、是否分词及分词类型 2.4 根据实景情况设置分...
2018-09-04 18:35:31 657 2
转载 vim 操作命令大全
曾经使用了两年多的Vim,手册也翻过一遍。虽然现在不怎么用vim了,曾经的笔记还是贴出来,与喜欢vim的朋友分享。1. 关于Vimvim是我最喜欢的编辑器,也是Linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtut...
2018-09-04 18:06:27 119
转载 理解阻塞非阻塞与同步异步的区别
“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由*调用者*主动等待...
2018-09-03 23:47:22 105
elasticsearch2.3.3中离线安装的插件
2017-02-28
azkaban2.5 配置 jar包完整版
2015-07-10
JSP 书目检索系统
2012-01-05
elasticsearch 过滤器使用问题求大神
2015-04-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人