2017-12-06 17:02:02 |  0 Comments

记一笔JVM线上调优过程

最近一个测试环境的api-gateway一直报请求超时,并且未发现报错异常信息,于是开始排查是否是JVM参数不对导致用户线程挂起。 排查过程如下: 1. 查看目标机器的进程pid ``` [baibei@CBEC-UAT-1 uat]$ jps -l 27723 com.baibei.apigateway.Application ``` 2. 查看jvm内存使用情况 ``` [baibei@C
 2017-12-06 17:02:02 |  0 Comments

关于volatile关键字原理解析

volatile这个关键字我们在实际开发过程中,或多或少都使用过,但是对于其背后的实现原理机制还是不够清晰,接下来满满梳理一番。 ## 我们来看一段代码 ``` i = i + 1; ``` 一个简单的对i变量的递增操作,在单线程执行的情况下,没有什么问题,但是在多线程情况下,结果就会有问题了。原因是因为计算机的内存模型为每个线程分配了CPU高速缓存,来加快CPU的处理速度。 假如现i的初始
 2017-12-06 17:02:02 |  0 Comments

JVM系列之(五)之class编译

java反编译命令 ``` javap -c -verbose xxx.class ```
 2017-11-16 19:14:15 |  0 Comments

Spring Cloud Stream 使用笔记

#Spring Cloud Stream Spring 已经对JMS中间件做了很多封装,比如Spring对ampq队列协议的封装`spring-rabbit.jar``,以及企业集成的实现`Spring Integration`(解决服务间的异步通讯交互问题),而Spring Cloud Stream是对针对消息中间件的进一步封装,Stream已经支持Kafka/Rabbit MQ/Redis/
 2017-11-06 20:29:23 |  0 Comments

Spring Cloud微服务实践

# 什么是Spring Cloud 看完《微服务设计》后,算是补上了自己在服务化这块的理论知识,在业界,一般有两种微服务的实践方法:基于dubbo的微服务架构、基于Spring Cloud的微服务架构。从概念上来讲,Dubbo和Spring Cloud并不能放在一起对比,因为Dubbo仅仅是一个RPC框架,实现Java程序的远程调用,实施服务化的中间件则需要自己开发;而Spring Cloud则
 2017-07-11 17:33:20 |  0 Comments

Mysql 时间字段的ON UPDATE CURRENT_TIMESTAMP

**最近项目中mysql 由于表中时间字段中不小心使用了ON UPDATE CURRENT_TIMESTAMP,导致表中的任何一个字段更新,时间字段都会更这个时间** ![](https://leanote.com/api/file/getImage?fileId=59649b6dab6441206700189c) 使用以下语句更新掉就解决了,在此记一笔 ``` ALTER TABLE `t_t
 2017-07-04 13:47:54 |  0 Comments

Linux 查找日志常用命令和技巧

#1. tail & head ``` #查询最后100行日志 tail -n 100 info.log 查询从100行之后的所有日志 tail -n +100 info.log 查询日志文件中的头10行日志; head -n 10 info.log 查询日志文件除了最后10行的其他所有日志; head -n -10 info.log ``` #2. 场景一:查找关键字附近的日志 ##1 .获取关键字的行号 ``` #-n 显示行号 cat -n test.log |grep "关键字" ``` ![](https://leanote.com/api/file/get
 2017-06-13 12:49:47 |  0 Comments

Spring boot 配置自定义Json类型转换

## 项目中遇到一个问题,就是由于我们数据库表ID使用分布式唯一算法生成的Long类型,所以有很长(19位数字),导致转成json传至前端js使用时报错,因为js的数字类型最大只能表示15个数字长度,见[Js 的number对象说明](http://www.w3school.com.cn/js/js_obj_number.asp) ## 解决方案:使用Spring自定义的Json序列化,将过长
 2017-06-12 15:37:39 |  0 Comments

spring boot + redis session 配置

#最近比较忙,都没忘记整理写文章了,刚好想起来,记录一下spring boot 使用xml方式配置redis session的方法,关于使用xml配置还是使用spring注解方式来配置就不在这里讨论了,我觉得看个人喜好吧,我是觉得配置相关还是抽离出来到配置文件中比较好一点。废话不多说,看配置 # 1.在pom.xml中引入jar ``` org.springfra
 2017-04-07 18:11:15 |  1 Comments

git重命名的坑

如果使用git命令进行仅涉及大小写的重命名,git 默认是把你的动作忽略的,所以当你删掉本地代码,重新pull代码时,你会发现文件还是重命名之前的,神奇吧,记下这个坑,等着你们踩着坑来这看吧,坏笑/ 解决方法如下: - 设置git库为大小写敏感(不建议) ``` git config core.ignorecase false ``` 用这种方法进行重命名,用git status就可以识别
 2017-04-06 10:58:13 |  0 Comments

使用Maven命令指定上传打包到私库

我们一般在pom.xml中加入`distributionManagement` ``` internal.repo MyCo Internal Repository Host to Company Repository ``` 来指定setting.xml中的server私库地址,然后通过`mvn clean i
 2017-03-29 13:51:21 |  0 Comments

Spring Cloud Eureka Server注册服务器高可用配置

# Eureka Server的高可用 Eureka Server除了单点运行之外,还可以通过运行多个实例,并进行互相注册的方式来实现高可用的部署,所以我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。 下面我们来构建一个三节点的服务注册中心。 ## 使用yml方式配置 在Eureka Server中配置如下 ``` spring: applic
 2017-03-29 13:51:21 |  0 Comments

Spring Cloud 配置中心Config Server

Spring Config Server是Spring Cloud的子项目,它提供配置集中管理方案 #使用 ## 在pom.xml加入 ``` org.springframework.cloud spring-cloud-starter-parent Camden.SR6
 2017-03-29 13:51:21 |  0 Comments

Spring Cloud服务注册发现之Eureka

#Eureka Server ## 在Spring Boot项目的pom.xml中加入`spring-cloud-starter-eureka-server` 使用Spring Cloud需要在pom.xml中加入Spring Cloud的父级引用,让Spring帮我们管理依赖版本 ``` org.springframework.clou
 2017-03-29 13:51:21 |  0 Comments

使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务

#什么是Feign Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。 #使用Feign ## 在service的pom.xml中加入 ``` org.springframe
 2017-03-28 18:19:15 |  0 Comments

Mysql字符编码的设置以及mysql中文乱码的解决方法

最近在开发过程中,使用到MySQL的数据库,而在将中文数据插入到数据库的时候出现了数据乱码的问题,在网上找了很多方法,问了很多人,试了很久才发现网上有的方法是不行的,因此在此记录下,以便他人查找。 # 查看字符编码 首先,将中文插入到数据库乱码是因为没有将数据库编码设置为支持中文的编码,mysql的默认编码是Latin1,不支持中文,应该设置为utf8查看自己的数据库编码是否已设置好,进入数
 2017-03-15 13:52:52 |  0 Comments

Idea maven 插件安装

##默认idea 是已经安装好了maven插件的,在File>settings>能搜索到maven的相关配置 ##但是有时候它会莫名其妙的不见了或消失 ##检查Plugins是否启用了maven ![](https://leanote.com/api/file/getImage?fileId=589aee54ab644125d6000033)
 2017-03-15 13:52:52 |  0 Comments

idea 突然闪退,内存溢出

解决办法:到安装路径C:\Program Files (x86)\JetBrains\IntelliJ IDEA 15.0.4\bin 找到idea.exe.vmoptions配置修改Xmx 为合适大小1024/2048,然后启动此路径下的idea.exe ``` -Xms128m -Xmx1024m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=
 2017-03-15 13:52:52 |  0 Comments

Java bean的Getter Setter 自动编译生成工具Lombok

## 背景   我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString方法,当要对某个属性进行改变时,比如命名、类型等,都需要重新去生成上面提到的这些方法,那Java中有没有一种方式能够避免这种重复的劳动呢?答案是有,lombok插件    ## 插件安装 1. File > Set
 2017-03-15 13:52:52 |  0 Comments

靠谱的maven仓库地址

``` #阿里云maven alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central #开源中国maven nexus-osc central Nexus osc
Title - Artist
0:00