Arganzheng's Blog

stay hungry, stay foolish

JPA的事务管理器配置

Guanxing工程在后来为了避免写DAO,引入了JPA。为了避免影响老的工程,JPA使用了自己的事务管理器。 spring-service.xml <!-- 事务配置 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> &l...

移动终端设备唯一标识

背景 在不需要用户登录或者没有用户概念的移动互联网产品中(如百度,今日头条,浏览器等),设计一种稳定的能够唯一标识客户设备的id(CUID),相当于移动互联网的用户cookieid(匿名用户id),使得客户端自身以及和服务端交互时所产生的每一条行为日志的都能够找到对应到相应的设备标识,方便追踪和分析用户。 理论上每台终端机器都有一个唯一的设备号,如Android的IMEI,IOS的IDF...

Quartz工作机制

使用了几年Quartz,其实还是停留在使用的层面,最近想做一个自动化监控报警的,想了解一下Quartz是怎样定时触发job的。于是深入了解了一下代码。 启动初始化 Quartz启动时会根据配置信息进行相应的初始化。例如下面的这个spring-quartz.xml配置文件: <?xml version="1.0" encoding="GBK"?> &l...

日志监控系统

What is a Log? Timestramp + Data = Log Life of a Log record => transmit => analyze => store => delete Related Tools(open source) transport: flume, fluentd, scribe, rsyslog, sysl...

MySQL常用命令

用户授权 MySQL的用户创建和授权基本是通过一个命令解决:   GRANT privileges ON what TO user IDENTIFIED BY “password” WITH GRANT OPTION  要使用该语句,你需要填写下列部分: 1. privileges 授予用户的权限,下表列出可用于GRANT语句的权限指定符: Alter 修改表和索引 Cr...

如何构建maven私有仓库

私有仓库,也称之为私服,它是一种特殊的远程仓库。它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的maven用户使用。当Maven需要下载构建的时候,它从私服请求,如果私服不存在该构件,则会从外部的远程仓库下载,缓存在私服上之后,再为maven的下载请求提供服务。此外,一些无法从远程仓库下载到的构件也能从本地上传到私服上供大家使用。 通过建立自己的私服,就可以带来如...

实时消息系统设计与实现

特点 实时性 支持群聊与广播 多媒体:text, image, vioce or video 难点 顺序 丢包 重复 设计 client server 会话/群聊 协议 登陆,身份验证 连接 发起会话 退出会话(退群) 消息接收设置 心跳 ...

nginx重定向问题

背景 经常有这样的需求,对于没有登陆的用户如果访问了某个需求登陆才能访问的链接,系统需要自动将其重定向到登陆页面。登陆成功之后再跳回原来请求的链接。 实现 Java中实现重定向非常简单,HttpServletResponse.sendRedirect就可以了: try { response.sendRedirect(HttpServletRequestTool.getLoginUr...

Reading搜索

需求 用户可以根据 isbn、作者和书名进行搜索。 相关搜索:相关搜索关键词 根据时间进行排序? 根据状态进行排序? 相似书籍(more like this) 智能提示 suggesters auto-complete completion suggester ...

ElasticSearch学习

业界流行的开源搜索框架 Lucene: Java. Just a library Sphinx: C++ Solr/SolrCloud: Java, uses Lucene internally for all its indexing and search. Netfix Digg ElasticSearch: Java...