Go 并发——实现协程同步的几种方式 (www.54tianzhisheng.cn)
前言
Java 中有一系列的线程同步的方法,go 里面有 goroutine(协程),先看下下面的代码执行的结果是什么呢?
by @zhisheng_tian 2018-09-27 22:40 分享 查看详情
教你如何在 IDEA 远程 Debug ElasticSearch (www.54tianzhisheng.cn)
之前在源码阅读环境搭建文章中写过我遇到的一个问题迟迟没有解决,也一直困扰着我。问题如下,在启动的时候解决掉其他异常和报错后,最后剩下这个错误一直解决不了
by @zhisheng_tian 2018-08-26 12:15 分享 查看详情
渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(下) (www.54tianzhisheng.cn)
上篇文章写完了 ES 流程启动的一部分,main 方法都入口,以及创建 Elasticsearch 运行的必须环境以及相关配置,接着就是创建该环境的节点了。
by @zhisheng_tian 2018-08-26 12:14 分享 查看详情
渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(上) (www.54tianzhisheng.cn)
上篇文章写了 ElasticSearch 源码解析 —— 环境搭建 ,其中里面说了启动 打开 server 模块下的 Elasticsearch 类:org.elasticsearch.bootstrap.Elasticsearch,运行里面的 main 函数就可以启动 ElasticSearch 了,这篇文章讲讲启动流程,因为篇幅会很多,所以分了两篇来写。
by @zhisheng_tian 2018-08-26 12:14 分享 查看详情
MySQL事务隔离级别和Spring事务关系介绍 (mp.weixin.qq.com)
1、未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据 2、提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读) 3、可重复读(Repeated Read):可
by @zhisheng_tian 2018-08-26 12:08 分享 查看详情
渣渣菜鸡的 ElasticSearch 源码解析 —— 环境搭建 (www.54tianzhisheng.cn)
软件环境
1、Intellij Idea:2018.2版本

2、Elasticsearch 源码版本: 6.3.2

3、JDK:10.0.2

4、Gradle : 建议 4.5 及以上版本

5、Macbook Pro 2017
by @zhisheng_tian 2018-08-08 22:30 分享 查看详情
渣渣菜鸡为什么要看 ElasticSearch 源码? (www.54tianzhisheng.cn)
前提
人工智能、大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需,大型企业早已淹没在系统生成的浩瀚数据流当中。大数据技术业已集中在如何存储和处理这些海量的数据上。Elasticsearch 作为开源领域的后起之秀,从2010年至今得到飞跃式的发展。 Elasticsearch 以其开源、分布式、RESTFul API 三大优势,已经成为当下风口中“会飞的猪”。
by @zhisheng_tian 2018-08-06 23:53 分享 查看详情
渣渣菜鸡的蚂蚁金服面试经历(二) (www.54tianzhisheng.cn)
蚂蚁金服
电话二面(85 分钟)
1、自我介绍、工作经历、技术栈

2、项目中你学到了什么技术?(把三项目具体描述了很久)

3、微服务划分的粒度

4、微服务的高可用怎么保证的?
by @zhisheng_tian 2018-07-31 23:26 分享 查看详情
渣渣菜鸡的蚂蚁金服面试经历(一) (www.54tianzhisheng.cn)
蚂蚁金服
电话一面
1、自我介绍、自己做的项目和技术领域

2、项目中的监控:那个监控指标常见的哪些?
by @zhisheng_tian 2018-07-31 23:25 分享 查看详情
RESTful API 设计规范 (mp.weixin.qq.com)
该仓库整理了目前比较流行的 RESTful api 设计规范,为了方便讨论规范带来的问题及争议,现把该文档托管于 Github,欢迎大家补充!!

关于「能愿动词」的使用
为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下:

必须 (MUST):绝对,严格遵循,请照做,无条件遵守;

一定不可 (MUST NOT):禁令,严令禁止;

应该 (SHOULD) :强烈建议这样做,但是不强求;

不该 (SHOULD NOT):强烈不建议这样做,但是不强求;

可以 (MAY) 和 可选 (OPTIONAL) :选择性
by @zhisheng_tian 2018-07-16 22:35 分享 查看详情
渣渣菜鸡的有赞面试经历(一) (www.54tianzhisheng.cn)
提示:出去面试的话还是得好好准备,不然会被虐的有点惨!四月份面试有赞的时候,自己还在实习,所以也没有复习,是在 Boss 直聘上投的,当时看到了有赞的 2018 届春招,就投了下,然后不知道怎么就被推到了框架组,结果后面就感觉自己被虐的可惨了
by @zhisheng_tian 2018-07-15 10:01 分享 查看详情
渣渣菜鸡的有赞面试经历 (mp.weixin.qq.com)
有赞(框架组)
四月份面试有赞的时候,自己还在实习,所以也没有复习,是在 Boss 直聘上投的,当时看到了有赞的 2018 届春招,就投了下,然后不知道怎么就被推到了框架组,结果后面就感觉自己被虐的可惨了。
by @zhisheng_tian 2018-07-10 16:34 分享 查看详情
分布式锁看这篇就够了 (www.54tianzhisheng.cn)
什么是锁?
在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。
by @zhisheng_tian 2018-04-25 22:20 分享 查看详情
Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览 (www.54tianzhisheng.cn)
结构分析:

Spring-boot-project 核心代码,代码量很多(197508 行)
Spring-boot-samples 一些样例 demo,代码量不多(9685 行),蛮有用的
Spring-boot-samples-invoker 里面无代码
Spring-boot-tests 测试代码(1640 行)
by @zhisheng_tian 2018-04-20 12:51 分享 查看详情
Spring Boot 2.0系列文章(六):Spring Boot 2.0中SpringBootApplication注解详解 (www.54tianzhisheng.cn)
许多 Spring Boot 开发者喜欢他们的应用程序使用自动配置、组件扫描、并能够在他们的 “Application” 类上定义额外的配置。 可以使用一个 @SpringBootApplication 注解来启用这些功能。
by @zhisheng_tian 2018-04-20 12:50 分享 查看详情
Spring Boot 2.0系列文章(四):Spring Boot 2.0 源码阅读环境搭建 (www.54tianzhisheng.cn)
从 https://github.com/spring-projects/spring-boot/releases 可以看到所有版本的下载地址,我这里选择的是 Spring Boot 2 中最新的 v2.0.1.RELEASE 版本,下载后,然后解压。获取代码之前,请先确保你的 JDK 版本是 1.8 以上哦。
by @zhisheng_tian 2018-04-16 23:45 分享 查看详情
Spring Boot 2.0系列文章(三):Spring Boot 2.0 配置改变 (www.54tianzhisheng.cn)
之前翻译了两篇 Spring Boot 2.0 的文章,Spring Boot 2.0系列文章(一):Spring Boot 2.0 迁移指南 和 Spring Boot 2.0系列文章(二):Spring Boot 2.0 新特性详解

今天就继续详细探究 Spring Boot 2.0 里面的改变。
by @zhisheng_tian 2018-04-16 23:41 分享 查看详情
Docker 入门(二):从实例来看 Dockerfile 和 Compose (mp.weixin.qq.com)
上一文中提到,每次对容器做了改动,如果不把它 commit 成新的镜像,在删除容器后,数据也会丢失,有没有什么更好的办法来保存数据呢?使用数据卷就可以解决这个问题。

另外,相对于用 commit 容器创建镜像,使用 Dockerfile 在创镜像的同时还可以包含很多命令进去,可以简化后续操作。
by @zhisheng_tian 2018-04-08 21:23 分享 查看详情
Docker 入门(一):理解三大核心 (mp.weixin.qq.com)
Docker 的前世今生
Docker 的核心理念是 Build, Ship, and Run Any App, Anywher,即一次封装,到处运行。

从前,我们在服务器配置一个应用的运行环境,要安装各种组件,就拿 JavaWeb 的环境来说吧,要安装 Tomcat、MySQL 等。安装和配置这些东西有多麻烦就不说了,它还不能跨平台。假如我们是在 Windows 上安装的这些环境,到了 Linux 又得重新装。
by @zhisheng_tian 2018-04-03 21:18 分享 查看详情
写这么多系列博客,怪不得找不到女朋友 (www.54tianzhisheng.cn)
大学部分系列博客合集汇总,符合我的一句话:坑要一个个填,路要一步步走!前人栽树,后人乘凉,学会感恩!
by @zhisheng_tian 2018-03-29 22:40 分享 查看详情