网关实现灰度发布

2019-01-15
阅读 3 分钟
12.9k
一、背景互联网产品开发有个非常特别的地方,就是不停的升级,升级,再升级。采用敏捷开发的方式,基本上保持每周或者每两周一次的发布频率,系统升级总是伴随着各种风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,系统宕机的风险,500错误服务不可用的风险等等。为了避免这些风险,很多产品都采...

java编程规范

2017-06-22
阅读 2 分钟
3.3k
一 命名规则 类名和接口使用意义完整的英文描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。 示例: {代码...} 方法名使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。 示例: {代码...} 包名采用域名倒置加上自定义的包名,采用小写字母。在...

MySQL表结构为InnoDB类型从ibd文件恢复数据

2017-04-18
阅读 2 分钟
5.1k
b、创建一个表结构,和要恢复的表名是一样的。表里的字段无所谓。一定要是innodb引擎的。CREATE TABLE weibo_qq0( weiboid bigint(20)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Jenkins+Git+Gitlab 实现web服务持续集成部署

2017-04-14
阅读 3 分钟
15.9k
Jenkins安装和启动 官网下载之后,执行: 手动启动: java -jar jenkins.war 后台启动(默认端口): nohup java -jar jenkins.war & 后台启动(指定端口): nohup java -jar jenkins.war -httpPort=8888 & 后台启动(HTTPS): nohup java -jar jenkins.war -httpsPort=8888 & Jenkins插件安装 操作: Manage Je...

java程序cpu过高查看快速解决问题

2017-04-13
阅读 1 分钟
5k
操作步骤 top //查看cpu占用过高的进程 获取进程id ps -mp pid -o THREAD,tid,time // 得到cpu占用过高的线程 获取其id or 通过命令:top -Hp 15970 printf "%x\n" pid // 会得到一个16进制字符串 jstack pid | grep [上一步得到16进制] -A 60 //定位代码问题处

虾搞 docker 命令

2017-03-01
阅读 2 分钟
1.8k
docker network [命令] {代码...} docker version 查看版本信息 docker info 查看系统信息 docker pull image_name 下载镜像 docker push image_name 上传镜像 docker search image_name 查找镜像 [选项] {代码...} docker images 查看镜像 [选项] {代码...} docker rmi image_name 删除镜像 [选项] {代码...} docker ta...

java内部类详解

2017-02-23
阅读 1 分钟
1.7k
原文 Java内部类的使用小结

gradle项目打包jar

2017-02-21
阅读 9 分钟
18.2k
gradle 打包可执行jar 参考: [链接] [链接] spring官方文档 方法一:不借助manifest文件 java -classpath jar1:jar2:jar3... mainClassName 解解一下: 红色的是固定部分,中间蓝色的是jar包的路径(多个jar之间用:号连接),最后绿色的部分是main方法所在的类名,按这个思路 把这二个jar包扔同一个目录下,输入如下命令...

java多线程信号量-semaphore

2016-12-23
阅读 8 分钟
2.1k
{代码...} {代码...} }

java多线程之— Eexcutor小结

2016-11-25
阅读 1 分钟
2.1k
线程池的类体系结构 JAVA API 架构 首先明确一定是在Java里面可以供使用者调用的启动线程类是Thread。因此Runnable或者Timer/TimerTask等都是要依赖Thread来启动的,因此在ThreadPool里面同样也是靠Thread来启动多线程的。 默认情况下Runnable接口执行完毕后是不能拿到执行结果的,因此在ThreadPool里就定义了一个Callab...

Condition-线程通信更高效的方式

2016-11-24
阅读 5 分钟
2.6k
接近一周没更新《Java线程》专栏了,主要是这周工作上比较忙,生活上也比较忙,呵呵,进入正题,上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通...

google guava list中的filter过滤器妙用

2016-11-04
阅读 2 分钟
7.4k
在guava库中,自带了过滤器(filter)的功能,可以用来对list进行转换 {代码...}

BeanUtils工具使用细节

2016-11-03
阅读 6 分钟
31.3k
java bean拷贝操作又一个非常好用的工具类 BeanUitls :spring (org.springframework.beans.BeanUtils)和apache commons-beanutils(org.apache.commons.beanutils.BeanUtils)中分别存在一个BeanUtils,提供了对。特别注意 这两个类在不同的包下面,而这两个类的copyProperties()方法里面传递的参数赋值是相反的。例如:...

MAT(java 内存分析工具简单使用)

2016-10-20
阅读 1 分钟
6.7k
将dump的本地在eclipse 》 file 》openfile 打开文件(我的是servermem.bin)打开以后看到下面的界面展示:

java程序高内存查看实践

2016-10-20
阅读 1 分钟
5.1k
结果如图:从结果上看String 类使用内存过高,可以检测一下代码中String 使用情况。这里只是我测试服的情况,小伙伴可以查看自己服务器上java程序的内存使用情况。

Lombok pojo类小神器

2016-08-20
阅读 3 分钟
3.7k
前言 Lombok主页 Lombok下载 Lombok引入项目之后,便可以使用 本文记录了在项目中应用Lombok时的使用案例,希望对朋友你有一些帮助。 可以去 下载jar包 maven: {代码...} gradle: {代码...} 目前最新版本为1.16.10。 初学Lombok的使用时,建议配合Java的编译工具,便于理解Lombok在背后做的事情。 Lombok 安装 使用 lomb...

Linux 同步工具rsync学习

2016-08-19
阅读 5 分钟
4k
摘自[链接] 说到“同步”,不得不提的利器就是rsync,今天就来说说我从这个工具中看到的同步的艺术。 [不带任何选项] 我们经常这样使用rsync: $ rsync main.c machineB:/home/userB1 只要目的端的文件内容和源端不一样,就会触发数据同步,rsync会确保两边的文件内容一样。2 但rsync不会同步文件的“modify time”,凡是有...

hudson+gradle+git+maven(非必选)持续集成 (二)

2016-06-28
阅读 7 分钟
3.1k
在持续集成第一集中,讲解了关于如果编译,打包,发布jar包到maven私服。在下面一集中,也就是第二集中,开始讲解如何持续集成可运行的服务包到测试和正式环境。

微信支付服务端开发总结

2016-06-24
阅读 11 分钟
26.8k
最近应公司业务需求,把微信支付完成了,当然已经顺利上线。但是开发的过程是也是踩了很多坑,下面我就先说说开发流程,以及在开发中遇到的大大小小的坑。

hudson +gradle+git+maven(非必选)持续集成一 打包自动化

2016-06-17
阅读 5 分钟
4.3k
随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。

Git 分支管理

2016-06-16
阅读 4 分钟
5.7k
Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因此非常快捷易用。快捷带来的问题就是如果稍不注意分支就会太多,造成不方便管理。因此分支管理变的尤为...

自己整理的java编程规范

2016-06-05
阅读 4 分钟
6.2k
前言 推荐Google的Java编码规范英文版: [链接] 虽然这篇文章的英文很简单,但是最近发现有人翻译了这篇文章,所以专门推荐一下: [链接] 正文 一、命名规范 已经被使用的常量,不要重新定义 约定俗成的常量含义,不要重新定义。 努力避免硬编码。 每个模块,建议有独立的常量类。 方法名都以lowerCamelCase风格编写 类...

RESTful API中跨域问题

2016-06-03
阅读 6 分钟
14.9k
CORS 是 Cross Origin Resource Sharing 的缩写, 定义了浏览器和服务器间共享内容的新方式,通过它浏览器和服务器可以安全地进行跨域访问,它是 JSONP 的现代继任 者。服务器上的 CORS 配置可以精细地指定允许跨域访问的条件:来源域、HTTP 方法、请求头、内容类型等等。并 且,CORS 让 XMLHttpRequest 也可以跨域,我...