自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring事务机制

public interface TransactionDefinition { int PROPAGATION_REQUIRED = 0; // 支持当前事务,如果当前没有事务,就新建一个事务。 int PROPAGATION_SUPPORTS = 1; // 支持当前事务,如果当前没有事务,就以非事务方式执行。 int P...

2020-04-14 20:51:37 221

原创 查看Java代码对应的汇编指令

访问这里下载对应版本的hsdis:Windows:http://vorboss.dl.sourceforge.net/project/fcml/fcml-1.1.1/hsdis-1.1.1-win32-amd64.ziphttp://vorboss.dl.sourceforge.net/project/fcml/fcml-1.1.1/hsdis-1.1.1-win32-i386.zip...

2020-04-08 21:46:40 605

原创 Gradle

Gradle命令命令描述gradle tasks查看构建脚本中可用的taskgradle tasks --all查看构建脚本中可用的task详情(task执行顺序等)gradle properties查看项目中所有可用的属性gradle task1 task2执行多任务,任务名字若为驼峰式则支持传名字缩写gradle task2 -x task...

2020-03-10 19:39:25 496

原创 Spring MVC

九大基础组件MultipartResolverLocaleResolverThemeResolver:站点主题样式HandlerMappingHandlerAdapterHandlerExceptionResolverRequestToViewNameTranslator:可以在处理器返回的View为空时使用它根据Request获取ViewNameViewResolverFla...

2020-03-10 19:29:02 1085

原创 Git Brief

常用命令描述详情.gitignore文件声明无需纳入Git管理的文件所有空行或者以#开头的行都会被 Git 忽略。可以使用标准的glob模式匹配。匹配模式可以以/开头防止递归。匹配模式可以以/结尾指定目录。要忽略指定模式以外的文件或目录,可以在模式前加上!取反。git config --global core.editor vim设置核心编辑器为Vimgi...

2018-10-23 11:52:25 210

原创 Maven Plugins

maven plugindescriptionissuesorg.apache.maven.plugins/maven-enforcer-plugin控制某些环境约束,例如Maven版本,JDK版本和OS系列,以及更多内置规则(依赖检查等)和用户创建的规则。 <plugin&amp

2018-10-10 22:05:09 1937

原创 Maven Phase

Maven生命周期clean生命周期pre-cleancleanpost-cleandefault生命周期validateinitializegenerate-sourcesprocess-sourcesgenerate-resourcesprocess-resourcescompileprocess-classesgenerate-test-sourcespr...

2018-10-10 21:25:42 6127

原创 网站演化

Topic Why How Notes 热数据缓存 网站访问特点符合二八定律 应用服务器本地缓存&分布式缓存服务器远程缓存 80%的业务访问集中在20%的数据上 应用服务器集群 单台服务器处理能力,存储空间限制 搭配负载均衡调度服务器使用 服务器的成本和水平伸缩能力 数据库读写分离 缓存未命中,缓存过期,写操作,数...

2018-07-26 18:46:13 208

原创 Java Thread

table th:first-of-type { width: 100px; } table th:nth-of-type(2) { width: 400px; } 线程状态 含义 诱发动作 NEW 新建线程对象,但尚未启动(start())。 new Thread() RUNNABLE 一个可运行的线程,包含就绪...

2018-07-26 18:42:54 419

原创 MySQL 索引

Topic How 主存存取原理 将地址信号放到地址总线上传给主存,主存读到地址信号后,解析信号并定位到指定存储单元,然后将此存储单元数据放到数据总线上,供其它部件读取。写主存的过程类似,系统将要写入单元地址和数据分别放在地址总线和数据总线上,主存读取两个总线的内容,做相应的写操作。 磁盘存取原理 将数据逻辑地址传给磁盘,磁盘的控制电路按照寻址逻辑将逻辑地址...

2018-07-26 18:42:42 251

翻译 MongoDB Profiler Output

数据库分析器输出数据库分析器捕获有关读取和写入操作,游标操作和数据库命令的数据信息。要配置数据库分析器并设置捕获分析数据的阈值,请参阅Database Profiler部分。数据库分析器将数据写入system.profile集合,该集合是一个固定集合。要查看分析器的输出,请在system.profile集合上使用正常的MongoDB查询。 注意: 由于数据库分析器将数据写入数据库中...

2018-07-04 12:43:16 831

原创 Go GOPATH设置

问题sudo go get github.com/tsenart/vegeta# Errorpackage github.com/tsenart/vegeta: cannot download, $GOPATH not set. For more details see: go help gopath根源# ~/.bashrc╭─xiaojia@xiaojia-Lenovo-G460 ~

2018-07-03 14:51:55 3945

原创 Git Log

在代码release时,我们通常需要列出或拣选此次release相关的新功能和已修复的Bug说明列表,作为版本说明文档。此时我们可以使用git log轻松做到(当然要求commit中的提交说明符合某种已定规范 :)例如:# 版本迭代周期为3周(即3周一次release)git log --pretty=format:"%s" --since=3.weeksgit --prett...

2018-04-19 19:52:44 278

原创 Git 失误操作合集

恢复误删除的Git分支:使用git log -g找回之前提交的commit使用git branch recover_branch[新分支名] commit_id命令, 用这个commit创建一个恢复分支切换到recover_branch分支, 检查文件是否存在...

2018-04-09 17:36:57 349

翻译 google.api.http

Http定义api服务的http配置。它包含一个httprule列表,每个列表指定一个rpc方法到一个或多个http rest api方法的映射。 字段 描述 rules[] HttpRule, 一个适用于各个API方法的http配置规则列表。注意:所有服务配置规则都遵循“最后一个配置赢”规则。 fully_decode_reserved_expansio...

2018-03-05 16:20:01 11317 2

原创 Git Sparse Checkout

Git拉取某个仓库中指定的子文件夹例: 拉取grpc-go仓库的balancer子目录╭─user@user ~/Workspace ╰─$ mkdir pull-specified-subfolder╭─user@user ~/Workspace ╰─$ cd pull-specified-subfolder╭─user@user ~/Workspace/pull-...

2018-01-02 10:58:56 885

翻译 gRPC Wait for Ready

gRPC等待就绪语义如果发出RPC但通道处于TRANSIENT_FAILURE或SHUTDOWN状态,RPC将无法及时传输。默认情况下,gRPC实现应该立即失败这样的RPC。这被称为“快速失败[fail fast]”,但是这个术语的使用是历史性的。当通道处于其他状态(CONNECTING,READY或IDLE),RPC不应该失败。当通道处于TRANSIENT_FAILURE状态,gRPC实现可能会提

2017-12-22 12:08:50 3344 1

翻译 gRPC Service Config

gRPC中的服务配置目的服务配置是一种机制,允许服务所有者发布参数以供其服务的所有客户端自动使用。格式服务配置是以下形式的JSON字符串:{ // 负载均衡策略名称(不区分大小写)。 // 目前,gRPC提供的唯一可选择的客户端策略是“round_robin”,但是第三方可以添加自己的策略。 // 这个字段是可选的; 如果未设置,默认行为是选择第一个可用的后端地址。 // 如果策略名

2017-12-22 08:42:40 3484 1

翻译 gRPC Name Resolution

gRPC名称解析概貌gRPC支持DNS作为默认名称系统。在各种部署中使用了许多不同的名称系统。我们支持一个足够通用的API来支持一系列名称系统和相应的名称语法。各种语言的gRPC客户端库将提供插件机制,因此可以插入不同名称系统的解析器。详细设计名称语法用于gRPC通道构建的完全限定的自包含名称使用以下语法:scheme://authority/endpoint_name在这里,scheme表示要使用

2017-12-21 09:10:06 4935 3

翻译 gRPC LB

gRPC负载均衡范围本文档解释了gRPC内的负载均衡设计。背景每个呼叫负载均衡值得注意的是,gRPC内部的负载均衡是基于每个呼叫而不是每个连接的基础上发生的。换句话说,即使所有请求来自单个客户端,我们仍然希望它们在所有服务器之间进行负载均衡。负载均衡的方法在任何gRPC细节之前,我们探讨一些常用的方法来实现负载均衡。代理模式使用代理提供了一个坚实可靠的客户端,可以向负载均衡系统报告负载。代理通常需要

2017-12-19 14:29:47 3260 1

原创 Docker Container boot port is occupied

Bind for 0.0.0.0:xxxx failed: port is already allocateddocker-proxy binds on ports but no container is running.

2017-12-15 16:05:42 1041

原创 Docker Upgrade

Docker Upgrade1. Update package informationThis is to ensure that APT works with the https method, and that CA certificates are installed:sudo apt-get updatesudo apt-get install apt-transport-https ca

2017-12-15 15:23:36 1555

原创 Java 性能调优工具

CPU使用率工具: vmstat检查应用性能时,应该首先审查CPU时间。代码优化的目的是提升而不是降低(更短时间段内的)CPU的使用率。在试图深入优化应用前,应该先弄清楚为何CPU使用率低。磁盘使用率工具: iostat对于所有应用来说,监控磁盘使用率非常重要。即便不直接写磁盘的应用,系统交换仍会影响它们的性能。写入磁盘的应用遇到瓶颈,是因为写入数据的效率不高(吞吐率太低),或者是因为写

2017-11-30 14:35:51 4218

原创 Go Effective

数据new(T)不会初始化内存,只会将内存置零。 也就是说,new(T)会为类型为T的新项分配已置零的内存空间, 并返回它的地址。每当获取一个复合字面的地址时,都将为一个新的实例分配内存。// 少数情况下,若复合字面不包括任何字段,它将创建该类型的零值。表达式 new(File) 和 &File{} 是等价的。f := new(File)return &File{fd, name, nil,

2017-11-14 18:13:50 304

原创 Protobuf Install

First you need to install ProtocolBuffers 3.0.0-beta-3 or later.mkdir tmpcd tmpgit clone https://github.com/google/protobufcd protobuf./autogen.sh./configuremakemake checksudo make install使用pro

2017-11-10 11:27:05 334

翻译 Go Test

测试包用法:go test [build/test flags] [packages] [build/test flags & test binary flags]‘Go test’自动测试由导入路径命名的包。它以以下格式打印测试结果的摘要:ok archive/tar 0.011sFAIL archive/zip 0.022sok compress/gzip 0.033s..

2017-09-01 16:43:49 1013

原创 Java Date

SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为 static,必须加锁,或者使用 DateUtils 工具类。正例: 注意线程安全,使用 DateUtils。亦推荐如下处理:private static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() { @

2017-08-16 19:03:12 276

翻译 Spring Testing

单位测试依赖注入应该使您的代码在容器上的依赖性要低于传统的Java EE开发。构成应用程序的POJO应该在JUnit或TestNG测试中可测试,使用new操作符简单地实例化对象,而不使用Spring或任何其他容器。 您可以使用模拟对象(结合其他有价值的测试技术)来隔离测试代码。如果您遵循Spring的架构建议,您的代码库的干净分层和组件化将有助于简化单元测试。例如,您可以通过存根或模拟DAO或Re

2017-08-03 10:11:11 607

翻译 Mockito

迁移到Mockito 2为了继续改进Mockito并进一步提高单元测试体验,我们希望您升级到2.1.0!Mockito遵循语义版本控制,仅在主版本升级时才包含突破性更改。 在一个库的生命周期中,为了推出一系列改变现有行为甚至改变API的全新功能,突破性变化是必要的。有关新版本的全面指南,包括不兼容的更改, 请参阅“Mockito 2的新功能”Wiki页面。我们希望你喜欢Mockito 2!Moc

2017-08-02 14:59:32 2744

翻译 Maven Rollback a Release

回滚Release要回滚版本,必须满足以下要求:你没有在项目中运行release:clean。这意味着备份文件和上一版本命令中的release描述符仍然存在。当回滚版本时,执行以下release阶段:所有项目POM将在本地恢复到其预发布状态,如果以前的release命令能够成功地将SCM更改为POM,也可以在SCM中。这是通过使用在release:prepare期间创建的备份文件来完成的。这

2017-05-25 10:41:48 1554

翻译 Maven Perform a Release

执行发布执行版本Release通常需要以下Release阶段:从具有可选tag的SCM URL中签出代码运行预定义的Maven目标以release项目(默认使用,deploy site-deploy)要执行Release,请执行以下命令:mvn release:perform这取决于以前的发行准备中存在的release.properties。如果不是这样,您需要给出目标URL和可选tag来执行

2017-05-25 10:27:56 2973 2

翻译 Maven Prepare a Release

准备Release准备Release通常需要以下Release阶段:检查项目源中是否有未提交的更改检查是否有SNAPSHOT版本依赖将POM中的版本从x-SNAPSHOT更改为新版本(即执行目标时将提示您需要使用的版本)转换POM中的SCM信息为标签地址对修改的POM运行项目测试,以确认一切正常工作提交修改后的POM给SCM中的代码打新的版本名称tag(将被提示)将POM中的版本更改

2017-05-25 10:10:15 4421

原创 Maven project .gitignore

# Eclipse.metadata/.settings/bin/tmp/*.tmp*.bak*.swp*~.nib.project.classpath.loadpath## External tool builders.externalToolBuilders/## Locally stored "Eclipse launch configurations"*.launc

2017-05-24 10:28:48 3240

翻译 Introduction to Consul

Consul简介欢迎来到Consul介绍指南!本指南是开始了解Consul的最佳场所。它涵盖了Consul是什么,可以解决什么问题,和现有的软件有那些差异,以及如何开始使用它。 如果您熟悉Consul的基础知识,访问该文档了解更详细的可用功能参考。Consul是什么?Consul有多个组件,但是整体来看,它是你基础设施中用于发现和配置服务的一个工具。它提供如下几个关键功能:服务发现: Consu

2017-05-23 10:01:37 564

翻译 Protocol Buffers Style Guide

风格指南本文档提供了.proto文件的样式指南。通过遵循这些约定,您将使protocol buffer消息定义及其对应的类一致且易于阅读。消息和字段名称使用大驼峰格式(CamelCase)作为消息名称 - 例如,SongServerRequest。 对于字段名称使用下划线分割的小写单词命名(underscore_separated_names),例如song_name。message SongSe

2017-05-18 16:29:40 424

翻译 Protocol Buffers Encoding

本文档描述了协议缓冲区消息的二进制线格式。您不需要理解这一点就可以在应用程序中使用协议缓冲区,但是了解不同的协议缓冲区格式如何影响编码消息的大小可能非常有用。一个简单的消息假设你有以下非常简单的消息定义:message Test1 { required int32 a = 1;}在应用程序中,您创建一个Test1消息并设置a为150.然后,将消息序列化为输出流。如果您能够检查编码的消息,您会看

2017-05-18 15:50:48 286

翻译 Error-Prone Refaster templates

重组模板除了通过内置的Error Prone补丁修补代码,我们还开发了一种使用前后模板重构代码的机制(我们称之为“重组模板”)。 编写这些模板后,将它们编译成.refaster文件,然后根据这些规则使用Error Prone编译器重构代码。在“重构工具”研讨会上,路易斯·沃斯曼(Louis Wasserman)提出的一篇研究论文更详细地描述了重构。构建重组模板解释如何编写重组规则最好方法莫过于通过

2017-04-19 16:32:03 1035

翻译 Error-Prone Patching

补丁建议更换除了作为常规编译阶段的一部分报告错误之外,Error Prone可以提供建议的替换:error: [DeadException] Exception created but not thrown new RuntimeException(); ^ (see http://errorprone.info/bugpattern/DeadException) Did

2017-04-19 15:58:18 611

翻译 Error-Prone Plugin checks

插件检查Error Prone支持通过插件机制进行自定义检查。使用java.util.ServiceLoader从注解处理器路径动态加载插件检查。建议使用AutoService指定服务描述符。样例插件检查的执行方式与内置检查完全相同,但@AutoService(BugChecker.class)注解除外:@AutoService(BugChecker.class) // the service de

2017-04-19 15:42:18 1341

翻译 Error-Prone Criteria for new checks

新检查标准Error Prone为我们提供了强大的工具,禁止某些模式进入我们的Java代码。我们一定要小心使用,以便在不为他们创造繁忙的情况下使用户受益。默认启用新的Severity.ERROR检查的标准错误应具有以下属性:错误应该很容易理解。一旦编译器指出,这个问题应该是显而易见的。该fix应该很容易做到。例如,“交换这些参数的顺序”或“删除此分号”,而不是“引入新的子类并覆盖方法A,B和C”

2017-04-19 15:30:01 307

零成本实现Web性能测试-基于jmeter

性能测试居家必备良药2, 零成本实现Web性能测试, 基于apache jmeter

2017-10-13

软件性能测试过程详解与案例剖析

性能测试居家必备之良药,软件性能测试过程详解与案例剖析。

2017-10-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除