caison个人博客
NoSQL-还是-SQL-?这一篇讲清楚 NoSQL-还是-SQL-?这一篇讲清楚
随着大数据时代的到来,越来越多的网站、应用系统需要支撑海量数据存储,高并发请求、高可用、高可扩展性等特性要求,传统的关系型数据库在应付这些调整已经显得力不从心,暴露了许多能以克服的问题。由此,各种各样的NoSQL(Not Only SQL
2019-10-13
理解推荐系统 理解推荐系统
本文主要介绍什么是推荐系统,为什么需要推荐系统,如何实现推荐系统的方案,包括实现推荐系统的一些常见模型,希望给读者提供学习实践参考。 1 推荐系统概述为什么需要推荐系统 对于信息消费者,需要从大量信息中找到自己感兴趣的信息,而在信息过载
2019-10-13
架构设计方法初探 架构设计方法初探
作者 陈彩华 文章转载交流请联系 caison@aliyun.com最近学习了阿里资深技术专家李运华的架构设计教程,颇有收获,总结一下。 本文主要介绍架构设计的相关概念,系统复杂度的来源,架构设计的基本原则和流程。 1 基本概念和目的架构
2019-10-13
分布式任务调度平台XXL-JOB 分布式任务调度平台XXL-JOB
本文主要介绍分布式任务调度平台XXL-JOB(v2.1.0版本),包括功能特性、实现原理、优缺点、同类框架比较等 基本介绍项目开发中,常常以下场景需要分布式任务调度: 同一服务多个实例的任务存在互斥时,需要统一协调 定时任务的执行需要支持
2019-10-13
自研IM系统方案设计 自研IM系统方案设计
本文主要介绍APP功能中的IM模块的设计方案 1 设计原则 合适原则——合适优于业界领先 简单原则——简单优于复杂 演化原则——演化优于一步到位 架构设计的目的在于解决系统复杂度问题,真正优秀的架构都是企业当前人力、条件、业务等各种约束
2019-10-13
自研IM系统存储设计 自研IM系统存储设计
1 数据操作需求1.1 发消息 发送方新增已发消息 (用于消息判重) 接收方新增待收消息 根据发送方用户ID查询最近100条已发消息(用于消息判重) 消息持久化存储 1.2 收消息 根据接收方用户ID,最新已收消息ID,查询未收消息,支
2019-10-13
Jenkins搭建集成SonarQube最简实践 Jenkins搭建集成SonarQube最简实践
本文介绍在Linux环境下Jenkins如何整合SonarQube 环境准备 JDK环境JDK1.8 代码托管Gitlab 审查工具SonarQube 发布容器Tomcat 构建工具Maven 数据库MySQL 系统配置要求 OS内核需
2019-10-13
基于Java内存dump文件分析解决内存泄漏问题 基于Java内存dump文件分析解决内存泄漏问题
*  本文介绍一次解决现场*java内存泄漏问题**的经过,希望能提供后续遇到类似情况的读者一点思路。 生产环境发现的问题问题*  *生产环境运维人员反馈,服务器(windows系统)卡死,相关的服务都运行异常,重启之后也没作用。
2019-10-13
如何高效学习开源项目 如何高效学习开源项目
随着蓬勃发展的开源时代的到来,为了减少开发成本,提高开发效率,越来越多的公司使用各种开源项目,作为开发者,如果能充分利用好开源项目中的资源,不仅能提高实践能力,专业知识水平,还能从中其中学到的优秀的架构思想。 本文将提供一些学习开源项目的
2019-10-13
日志打印规范及技巧学习总结 日志打印规范及技巧学习总结
一、日志打印级别 DEBUG(调试)开发调试日志。一般来说,在系统实际运行过程中,不会输出该级别的日志。因此,开发人员可以打印任何自己觉得有利于了解系统运行状态的东东。不过很多场景下,过多的DEBUG日志,并不是好事,建议是按照业务逻辑的
2019-10-13
基于SonarQube代码质量检查工具总结 基于SonarQube代码质量检查工具总结
# 1 概述SonarQube(sonar)是一个开源平台,用于管理源代码的质量。 SonarQube不只是一个质量数据报告工具,更是代码质量管理平台。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScri
2019-10-13
Java代码静态检测工具比较 Java代码静态检测工具比较
最近团队想引进代码静态检测工具,稍微调研一下: 工具比较功能比较 Checkstyle FindBugs PMD Jtest SonarQube 使用方式 IDE插件 IDE插件 IDE插件 IDE插件 IDE插件+独立部署的服
2019-10-13
2 / 3