More Think

  • 首页
  • 分类
  • 标签
  • 归档
  • 关于
  • 读书
  • 电影
  • 搜索

Netty URL路由方案探讨

发表于 2018-09-27 | 分类于 Java |

最近在用Netty做开发,需要提供一个http web server,供调用方调用。采用Netty本身提供的HttpServerCodec handler进行Http协议的解析,但是需要自己提供路由。

最开始是通过对Http method及uri 采用多层if else 嵌套判断的方法路由到真正的controller类:

String uri = request.uri();
HttpMethod method = request.method();
if (method == HttpMethod.POST) {
if (uri.startsWith("/login")) {
//url参数解析,调用controller的方法
} else if (uri.startsWith("/logout")) {
//同上
}
} else if (method == HttpMethod.GET) {
if (uri.startsWith("/")) {

} else if (uri.startsWith("/status")) {

}
}

阅读全文 »

Java使用UDP发送数据到InfluxDB

发表于 2018-09-23 | 分类于 数据库 |

最近在做压测引擎相关的开发,需要将聚合数据发送到InfluxDB保存以便实时分析和控制QPS。

下面介绍对InfluxDB的使用。

什么是InfluxDB

InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数据库,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, loT传感器数据和实时分析数据。

阅读全文 »

Java压缩/解压 .zip、.tar.gz、.tar.bz2(支持中文)

发表于 2018-08-04 | 分类于 工具 |

本文介绍Java压缩/解压.zip、.tar.gz、.tar.bz2的方式。

  1. 对于zip文件:使用java.util.zip.ZipEntry 和 java.util.zip.ZipFile,通过设置Charset为StandardCharsets.UTF_8支持中文。
  2. 对于.tar.gz、tgz文件:可以看做先用tar打包,再使用gz进行压缩。使用commons-compress包的TarArchiveInputStream和GzipCompressorInputStream。
  3. 对于.tar.bz2文件:可以看做先用tar打包,再使用bz2进行压缩。使用commons-compress包的TarArchiveInputStream和BZip2CompressorInputStream。

在这里有个问题如果使用TarInputStream搭配jdk的 GZIPInputStream会产生乱码。而使用commons-compress包的TarArchiveInputStream和GzipCompressorInputStream则可解决乱码问题。

阅读全文 »

Git为某个域名设置代理

发表于 2018-08-04 | 分类于 工具 |

国内访问Github很慢,可以通过配置代理来加快访问速度,但是对公司内部git服务器却不能使用代理。

下面通过更改Git配置文件对不同的域名使用不同的代理配置。


阅读全文 »

MongoDB 及 Mysql 背后的 B/B+树

发表于 2018-07-01 | 分类于 算法 |

索引是数据库常见的数据结构,每个后台开发人员都应该对索引背后的数据结构有所了解。

本文通过分析B-Tree及B-/+Tree数据结构及索引性能分析及磁盘存取原理尝试着回答一下问题:

  1. 为什么B-Tree适合数据库索引及红黑树的二叉平衡树不适合作为索引
  2. B+Tree比BTree做索引的优势
  3. 为什么MongoDB采用B-Tree作为索引结构而MySQL采用B+Tree作为索引存储结构
阅读全文 »

MAC安装RabbitMQ

发表于 2018-05-12 | 分类于 工具 |

安装

brew update
brew install rabbitmq
阅读全文 »

给你的博客园图片添加标题

发表于 2018-05-06 | 分类于 Web前端 |

一直以来都觉得在图片下面添加一个标题可以更加清晰的表示这张图片的含义,可是博客园原生并不支持这种渲染方式,再加上博客园可以自己写js来更改主题,于是通过搜索资料完成给博客园图片添加标题的功能。

阅读全文 »

Cron表达式

发表于 2018-04-22 | 分类于 Linux |

Cron表达式范例:

  • */5 * * * * ? :每隔5秒执行一次
  • 0 */1 * * * ? :每隔1分钟执行一次
  • 0 0 23 * * ? :每天23点执行一次
  • 0 0 1 * * ? :每天凌晨1点执行一次:
  • 0 0 1 1 * ? :每月1号凌晨1点执行一次
  • 0 0 23 L * ? : 每月最后一天23点执行一次
  • 0 0 1 ? * L :每周星期天凌晨1点实行一次
  • 0 26,29,33 * * * ? : 在26分、29分、33分执行一次
  • 0 0 0,13,18,21 * * ? : 每天的0点、13点、18点、21点都执行一次
    阅读全文 »

GitHub更新已经fork的项目

发表于 2018-04-22 | 分类于 工具 |

当我们fork一个项目后,在我们使用代码的时候就会以我们本地为准,不会跟随我们fork前的项目,如果需要同步对方的代码,需要进行同步操作。

阅读全文 »

常见web攻击总结

发表于 2018-04-07 | 分类于 Web安全 |

搞Web开发离不开安全这个话题,确保网站或者网页应用的安全性,是每个开发人员都应该了解的事。本篇主要简单介绍在Web领域几种常见的攻击手段及Java Web中的预防方式。

  • XSS
  • SQL注入
  • DDOS
  • CSRF
阅读全文 »
123…8
morethink

morethink

71 日志
14 分类
47 标签
RSS
GitHub 博客园
© 2022 morethink
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.3
访问人数 总访问量
0%