mongodb开启查询日志

背景

公司的mongodb集群最近有好多慢查询报警,具体原因就是好多查询没有命中查询缓存,导致mongodb的缓存刷新线程来不及删除缓存中的数据;同样也导致大量查询走磁盘。为了分析究竟是哪些查询导致mongodb的缓存利用率不高,就需要统计分析mongodb的查询日志。

RESTful API 设计最佳实践

本文转自:RESTful API 设计最佳实践

数据模型已经稳定,接下来你可能需要为web(网站)应用创建一个公开的API(应用程序编程接口)。需要认识到这样一个问题:一旦API发布后,就很难对它做很大的改动并且保持像先前一样的正确性。现在,网络上有很多关于API设计的思路。但是在全部案例中没有一种被广泛采纳的标准,有很多的选择:你接受什么样的格式?如何认证?API应该被版本化吗?

在为SupportFu(一个轻量级的Zendesk替换实现)设计API时,对于这些问题我尽量得出一些务实的答案。我的目标是设计这样一个API,它容易使用和采纳,足够灵活去为我们用户接口去埋单。

rest架构介绍

本文转自:理解本真的REST架构风格

REST架构风格架构约束

REST架构风格最重要的架构约束有6个

  • 客户-服务器(Client-Server)通信只能由客户端单方面发起,表现为请求-响应的形式。
  • 无状态(Stateless)通信的会话状态(Session State)应该全部由客户端负责维护。
  • 缓存(Cache)响应内容可以在通信链的某处被缓存,以改善网络效率。
  • 统一接口(Uniform Interface)通信链的组件之间通过统一的接口相互通信,以提高交互的可见性。
  • 分层系统(Layered System)通过限制组件的行为(即,每个组件只能“看到”与其交互的紧邻层),将架构分解为若干等级的层。
  • 按需代码(Code-On-Demand,可选)支持通过下载并执行一些代码(例如Java Applet、Flash或JavaScript),对客户端的功能进行扩展。

springboot-mongo

背景

springboot对常见的各种SQL,nosql数据库提供了良好的支持。在springboot中配置mongodb的连接信息时遇到一些问题,主要原因是springboot对mongodb2.x和mongodb3.x的配置是不同的。本文记录如何在springboot中配置mongodb和mongodb的基本操作。

curl学习笔记

背景

在日常的开发和问题处理中,经常会使用curl命令来测试http接口,今天偶尔了解到可以通过curl测试接口的性能耗时问题,特此完整的学习下curl命令的基本使用和高级用法。

基本使用

命令格式

curl [options…] url

maven 命令行参数解释

前言

一直在使用maven管理项目,通常用的命令都是基于各个plugin提供的,maven提供的命令行参数接触的不算多。
本文就将maven提供的命令行参数进行一下总结,在该过程中你会有意外的惊喜。

文章使用的maven版本为: 3.5.2

java中的枚举是否可以有抽象方法

背景

偶然在代码中看到枚举中定义了抽象方法,觉得很奇怪。以前从来没有想过还可以这么用,真是涨姿势。

例子

1
2
3
4
5
6
7
8
9
10
public enum Animal {
CAT {
public String makeNoise() { return "MEOW!"; }
},
DOG {
public String makeNoise() { return "WOOF!"; }
};

public abstract String makeNoise();
}

参考自:http://stackoverflow.com/questions/7413872/can-an-enum-have-abstract-methods

spring错误处理之HandlerExceptionResolver

错误处理接口

spring的错误处理主要是由接口HandlerExceptionResolver来定义的。不同的实现类有自己不同的错误处理机制。如果没有合适的Handler错误处理器,则最终会被容器处理,例如tomcat。好在spring本身提供了好多错误处理工我们使用,很少需要我们开发自己的错误处理器。

|