码字人生
文章平均质量分 71
对编程路上的一些感想, 一些杂谈, 可能是东半球最杂的一个栏目
wenniuwuren
Winter is coming
展开
-
RocketMQ 源码阅读 -- 环境搭建
一、 NameServer 和 Broker 启动根据官网的 quik start 指引,我们可以看到在 distribution/bin 目录下的 mqnamesrv 和 mqbroker 是启动的关键。例如 mqnamesrv #!/bin/sh# Licensed to the Apache Software Foundation (ASF) under one or more# c...原创 2018-07-02 15:44:26 · 701 阅读 · 0 评论 -
Spring 源码阅读 -- 事务
Spring 事务就是把 JDBC 模板化的代码封装好,本质上还是1. 开启事务2. 业务逻辑(JDBC 操作)3. commit/rollback4. 资源释放(数据库连接)Spring 帮助我们做了上述1,3,4三步(第 2 步是我们的业务代码)下面是我读事务这块的源码整理的思维导图:源码写了一堆,实际上还是绕不过开始事务,提交事务,回滚事务三件事,只是这三件事情现在由 Spring 把这些模...原创 2018-05-20 17:20:48 · 281 阅读 · 0 评论 -
ZooKeeper 概述
ZooKeeper: 一个分布式应用的分布式协调服务ZooKeeper (下面简称 ZK)是一个分布式应用的分布式的、开源的协调服务。ZK 提供一系列原语使得分布式应用可以诸如同步、配置维护、分组和命名等高层次服务。它运行在 Java 环境。协调服务不好写正确。经常发生的错误有竞态条件和死锁。有了 ZK 就不需要自己从头开始实现协调服务。设计目标ZK 简洁。原创 2017-08-19 14:15:08 · 904 阅读 · 0 评论 -
Redis Cluster 简介与部署
一. Redis Cluster 简介需要 3.0 及以后版本才能支持 clusterRedis Cluster 带来的优势使用 redis cluster 安装后,数据会自动分片到多个 redis 节点(如果使用 sentinel 则需要自己实现分片算法)个别节点宕机,其他节点还能继续正常运行Redis Cluster TCP 端口每个Re原创 2017-06-27 15:51:15 · 1255 阅读 · 0 评论 -
SPI(service provider interface 服务提供者接口)
SPI 平时写代码一般不会用到,但是到了做一些基础组件开发或者是中间件开发的时候,SPI 是一个必须要掌握的知识点...原创 2017-02-14 16:22:02 · 2972 阅读 · 0 评论 -
MongoDB 高可用分片配置(Windows、Linux)
MongoDB 最简易的高可用分片搭建..原创 2017-01-18 15:28:54 · 652 阅读 · 0 评论 -
Spring 源码解析 ---- 事件监听
一. 测试用例package main.java.com.wenniuwuren.spring.event.listener;import org.springframework.context.ApplicationEvent;/** * 定义监听事件 * Created by hzzhuyibin on 2016/11/22. */public class TestEve原创 2016-11-23 10:08:48 · 1460 阅读 · 0 评论 -
Spring 源码解析 ---- 自定义标签
零. 阅读准备读这篇文章前先看下预备知识:Spring 自定义标签一. 代码阅读自定义标签解析核心代码:public BeanDefinition parseCustomElement(Element ele, BeanDefinition containingBd) { String namespaceUri = getNamespaceURI(ele);原创 2016-11-15 20:21:12 · 1048 阅读 · 2 评论 -
Spring 自定义标签
扩展自定义标签步骤(前提要把 Spring Core 包加入项目):创建一个需要扩展的组件定义一个 XSD 文件描述组件内容创建一个文件,实现 BeanDefinitionParse 接口,用来解析 XSD 文件中的定义和组件定义创建一个 Handler 文件,扩展自 NamespaceHandlerSupport,目的是将组件注册到 Spring 容器编写 Spring.handlers原创 2016-11-15 15:23:12 · 1339 阅读 · 0 评论 -
MongoDB 简介
一. 概述MongoDB 是一个开源的文档数据库,提供了高性能、高可用和自动分片特性。二. 文档数据库在 MongoDB 中一条记录就是一个文档,就是一个键值对数据结构。MongoDB 文档和 JSON 对象相似。值可以包含其他文档、数组和数组文档。使用文档的优点:文档(即对象)对应于许多编程语言中的原生数据类型值中还能包含文档和数组可以减少 J翻译 2016-10-27 15:06:12 · 1019 阅读 · 0 评论 -
MongoDB 分片键
本文介绍了 MongoDB 在做分片时候对 Shard Key 的选择,当然这也适用于其他数据库的分片,要优化数据库性能,本文会给你一定的启发..翻译 2016-10-27 14:02:29 · 9858 阅读 · 2 评论 -
Spring 与 Quartz 集成事务
quartz 事务没有生效? 看看这篇就够了...原创 2016-09-13 15:27:08 · 4247 阅读 · 0 评论 -
为什么使用 getter 和 setter
以下几点是我发现的优势:使用 getter 和 setter 访问变量,这样可以在后期更方便地增加功能(例如验证某个变量是否符合要求)内部存储格式和外部呈现不同(比如内部存1表示,外部表示1年以上,1岁以上)可以保持外部接口不变的情况下,修改内部存储方式和逻辑控制生命周期和内存管理,在没有内存管理的语言中特别重要(如 C++、Object-C)当变量在运行时改变,可以断点调试进来,某些语言翻译 2016-09-09 10:25:08 · 1942 阅读 · 0 评论 -
Redis 实战 ---- Java 使用 Redis
在 Java 平台下如何使用 Redis...原创 2016-08-03 11:28:21 · 3740 阅读 · 0 评论 -
logback 入门
零. Logback 概述 Logback 的诞生就是为了取代当下最火的 Log4jLogback 的架构足够通用所以可以应用于不同环境。当前,Logback 被切为三个模块, logback-core,logback-classic and logback-access.logback-core 是其他两个模块的公共基础模块。logback-classic 可以认为是原创 2016-07-28 16:09:31 · 1152 阅读 · 0 评论 -
nested exception is com.fasterxml.jackson.databind.JsonMappingException: Conflicting getter definiti
jackson 的一个识别字段典型问题...原创 2016-07-27 14:11:09 · 24916 阅读 · 1 评论 -
JVM —— 移除永久代
最近准备生产环境 JDK 升级到 1.8,本地先升级了下,发现 -XX:PermSize 和 -XX:MaxPermSize 已经失效,取而代之的是一个新的区域...原创 2016-04-16 21:29:51 · 6796 阅读 · 0 评论 -
Git 入门 ---- Git 常用命令
本文着重介绍了日常在使用 Git 的时候「最经常」使用到的命令,帮助大家快速上手使用...原创 2016-07-18 20:21:45 · 1330 阅读 · 0 评论 -
Git 入门 ---- Git 与 SVN 区别
一. Git 是什么? Git 是目前世界上最先进的分布式版本控制系统二. 基础知识有中心的 SCM(Software Configuration Management)服务端:单数据库客户端:工作目录、状态无中心的 SCM任何人都可以是服务端工作目录也是仓库操作无需网络连接三. SVN 与 Git原创 2016-07-16 14:41:09 · 7967 阅读 · 0 评论 -
谈谈 Memcached LRU
Memcached 还有大量空闲空间,却发生 LRU,到底是什么原因导致的?从内存的结构,从内存的分配,来看懂为什么...原创 2016-06-21 15:24:39 · 3125 阅读 · 0 评论 -
JVM 调优 —— GC 长时间停顿问题及解决方法
零. 简介垃圾收集器长时间停顿,表现在 Web 页面上可能是页面响应码 500 之类的服务器错误问题,如果是个支付过程可能会导致支付失败,将造成公司的直接经济损失,程序员要尽量避免或者说减少此类情况发生。一. 并发模式失败(concurrent mode failure)并发模式失败日志: 2016-02-21T13:53:07.974+0800: 17原创 2016-04-12 11:42:47 · 12552 阅读 · 1 评论 -
Twitter 工程师谈 JVM 调优
让我们来看看全球前十的流行网站 Twitter,是怎么做 JVM 调优的...原创 2016-03-24 10:22:30 · 11283 阅读 · 7 评论 -
JVM —— Java 对象占用空间大小计算
为什么要知道 Java 对象占用空间大小? Java 里面一切都是对象,每天都在使用的 Java 对象占据多少内存空间,原来竟是这样...原创 2016-03-22 22:04:30 · 15370 阅读 · 6 评论 -
JVM —— Object Header(对象头)
HotSpot 虚拟机的对象头包括两部分信息:Mark Word(标记字段)和 Klass Pointer(类型指针)...原创 2016-03-20 22:27:10 · 10773 阅读 · 5 评论 -
JVM 调优 —— 新生代 Survivor 空间不足
零. 新生代调优规律增大新生代空间, Minor GC 频率减少, Minor GC 时间上升。 减少新生代空间, Minor GC 频率上升, Minor GC 时间下降一. 新生代典型问题先看一段 GC 日志:新生代使用 ParNew, 老年代使用 CMS {Heap before GC invocations=0 (full 0): par new gene原创 2016-03-14 23:15:18 · 14571 阅读 · 2 评论 -
JVM 调优 —— OutOfMemory
写代码经常看到 OutOfMemory, 它是什么意思, 如何解决...原创 2016-03-11 11:34:27 · 2204 阅读 · 2 评论 -
Memcached 实战
零. 简介Memcached 是一款开源、 分布式内存对象缓存系统, 用于加快动态网站响应, 降低数据库负载Memcached 使用简单, 支持多种语言的 API, 解决面对大量数据的缓存问题一. 设计哲学(1) 键值对存储服务器不关心数据是什么样的。 存储单元由 key、 过期时间、 可选的标记和数据组成。 它不懂数据结构, 传输数据前需要序列化。原创 2016-03-08 13:55:15 · 1941 阅读 · 1 评论 -
JMeter 入门
零. 简介Apache JMeter 是一款开源软件, 一个纯 Java 编写的功能测试和压力测试工具。 设计 JMeter 初衷是测试 Web 应用, 但现在扩展到更多的测试功能。Apache JMeter 可以用来测试静态和动态资源( WebService(SOAP/REST) , 动态 Web 语言如: PHP、 Java、ASP.NET、 Files 等等, Java 对象原创 2016-03-04 23:28:31 · 2075 阅读 · 2 评论 -
每个人都该懂点网络安全
网络安全再怎么强调都不过分, 朋友在的一个创业公司因为网络安全问题, 导致用户大量流失, 上亿的融资项目可能因为网络安全问题而陨落...原创 2016-02-29 22:35:45 · 2598 阅读 · 3 评论 -
GC 日志分析工具 —— GChisto
零. 简介《Java 性能优化权威指南》介绍了一款分析 GC 日志的离线分析工具, 不过官网上没有下载的地方, 需要自己从 SVN 上拉下来编译。 GChisto 以表格和图形化的方式展示 GC 次数、 持续时间等, 提高了分析 GC 日志的效率。一. 实践编译成功后, 直接 java -jar 运行起来, 把 GC 日志 .log 文件 add 到 GChisto,原创 2016-02-28 15:44:54 · 18319 阅读 · 1 评论 -
Lucene —— 搜索结果高亮显示
零. 前言谷歌、 百度的搜索结果在关键词命中的时候会高亮显示(飘红), Lucene 也提供了高亮显示的实现, 借助 Lucene 的 Highlighter 类可以快速实现搜索结果高亮。一. 代码示例本例使用 Lucene 5.3.1 的包 package com.wenniuwuren.lucene;import org.apache.lucene.anal原创 2016-02-23 21:09:58 · 3249 阅读 · 0 评论 -
微信朋友圈马赛克图片 —— 抓包破解
微信已经修复这个 bug 了, 所以如果只是想免费看微信朋友圈马赛克图片可以不用看此文了。 想了解抓包的可以往下看看..使用工具 Charles(http://www.charlesproxy.com/), Linux、 Mac、 Windows 都是支持的。下载安装: 不多说, 双击即可配置: (1) 代理设置, 完成这一步就可以进行 Web 端抓原创 2016-01-26 23:52:40 · 18857 阅读 · 6 评论 -
Linux 性能监控 —— 磁盘 I/O
网站响应速度变慢, 一直打不开? 什么时候我们要担心磁盘 I/O 对性能的影响? 如何解决磁盘 I/O 瓶颈?原创 2016-01-21 23:22:00 · 3082 阅读 · 0 评论 -
Linux 性能监控 —— Load Average
网站加载不出来? 一朵小菊花不停地转动,可能 Load Average 可以告诉你答案...原创 2016-01-20 20:43:09 · 2611 阅读 · 0 评论 -
如何应对高并发 —— 动态网站静态化
在网站流量突增的时候, 如何应对高并发?原创 2016-01-12 23:53:54 · 5061 阅读 · 3 评论 -
将汉语转换为拼音
方便快速地将汉语转换成对应的拼音..原创 2015-12-23 00:20:24 · 2695 阅读 · 1 评论 -
Lucene 入门详解
Lucene 快速开发全文搜索, 关键字高亮功能, 应该是工程师必不可少的一个技能..原创 2015-11-20 16:57:29 · 2935 阅读 · 1 评论 -
获取返回浏览器的内容 —— Java 缓存的使用
当网站从一个每天几万的访问到数百万上千万访问的时候, 缓存将给网站性能带来巨大的提升, 让我们来看看如何使用缓存...原创 2015-10-23 10:17:37 · 4012 阅读 · 0 评论 -
新闻资讯类系统 ---- 文章分类和标签的设计
零. 简介博客、 CMS(网易新闻、 腾讯新闻) 之类的系统, 核心就是文章, 一切的一切都围绕着文章进行, 所以设计一个好的文章分类和标签的数据库关系模型, 对后续编码及维护将会起到至关重要的作用。一. 分类一篇文章, 比如 《大陆 ** 明星又离婚了》 这属于 「娱乐」 类新闻, 又属于 「中国」 分类下的新闻, 所以文章和分类的关系一般是原创 2015-09-13 09:04:10 · 17831 阅读 · 3 评论