- 博客(142)
- 资源 (2)
- 收藏
- 关注
原创 Spring事务机制
public interface TransactionDefinition { int PROPAGATION_REQUIRED = 0; // 支持当前事务,如果当前没有事务,就新建一个事务。 int PROPAGATION_SUPPORTS = 1; // 支持当前事务,如果当前没有事务,就以非事务方式执行。 int P...
2020-04-14 20:51:37
290
原创 查看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
663
原创 Gradle
Gradle命令命令描述gradle tasks查看构建脚本中可用的taskgradle tasks --all查看构建脚本中可用的task详情(task执行顺序等)gradle properties查看项目中所有可用的属性gradle task1 task2执行多任务,任务名字若为驼峰式则支持传名字缩写gradle task2 -x task...
2020-03-10 19:39:25
553
原创 Spring MVC
九大基础组件MultipartResolverLocaleResolverThemeResolver:站点主题样式HandlerMappingHandlerAdapterHandlerExceptionResolverRequestToViewNameTranslator:可以在处理器返回的View为空时使用它根据Request获取ViewNameViewResolverFla...
2020-03-10 19:29:02
1229
原创 Git Brief
常用命令描述详情.gitignore文件声明无需纳入Git管理的文件所有空行或者以#开头的行都会被 Git 忽略。可以使用标准的glob模式匹配。匹配模式可以以/开头防止递归。匹配模式可以以/结尾指定目录。要忽略指定模式以外的文件或目录,可以在模式前加上!取反。git config --global core.editor vim设置核心编辑器为Vimgi...
2018-10-23 11:52:25
258
原创 Maven Plugins
maven plugindescriptionissuesorg.apache.maven.plugins/maven-enforcer-plugin控制某些环境约束,例如Maven版本,JDK版本和OS系列,以及更多内置规则(依赖检查等)和用户创建的规则。 <plugin&amp
2018-10-10 22:05:09
2027
原创 Maven Phase
Maven生命周期clean生命周期pre-cleancleanpost-cleandefault生命周期validateinitializegenerate-sourcesprocess-sourcesgenerate-resourcesprocess-resourcescompileprocess-classesgenerate-test-sourcespr...
2018-10-10 21:25:42
6579
原创 网站演化
Topic Why How Notes 热数据缓存 网站访问特点符合二八定律 应用服务器本地缓存&分布式缓存服务器远程缓存 80%的业务访问集中在20%的数据上 应用服务器集群 单台服务器处理能力,存储空间限制 搭配负载均衡调度服务器使用 服务器的成本和水平伸缩能力 数据库读写分离 缓存未命中,缓存过期,写操作,数...
2018-07-26 18:46:13
246
原创 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
473
原创 MySQL 索引
Topic How 主存存取原理 将地址信号放到地址总线上传给主存,主存读到地址信号后,解析信号并定位到指定存储单元,然后将此存储单元数据放到数据总线上,供其它部件读取。写主存的过程类似,系统将要写入单元地址和数据分别放在地址总线和数据总线上,主存读取两个总线的内容,做相应的写操作。 磁盘存取原理 将数据逻辑地址传给磁盘,磁盘的控制电路按照寻址逻辑将逻辑地址...
2018-07-26 18:42:42
274
翻译 MongoDB Profiler Output
数据库分析器输出数据库分析器捕获有关读取和写入操作,游标操作和数据库命令的数据信息。要配置数据库分析器并设置捕获分析数据的阈值,请参阅Database Profiler部分。数据库分析器将数据写入system.profile集合,该集合是一个固定集合。要查看分析器的输出,请在system.profile集合上使用正常的MongoDB查询。 注意: 由于数据库分析器将数据写入数据库中...
2018-07-04 12:43:16
903
原创 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
4095
原创 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
323
原创 Git 失误操作合集
恢复误删除的Git分支:使用git log -g找回之前提交的commit使用git branch recover_branch[新分支名] commit_id命令, 用这个commit创建一个恢复分支切换到recover_branch分支, 检查文件是否存在...
2018-04-09 17:36:57
377
翻译 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
11822
3
原创 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
955
翻译 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
3560
1
翻译 gRPC Service Config
gRPC中的服务配置目的服务配置是一种机制,允许服务所有者发布参数以供其服务的所有客户端自动使用。格式服务配置是以下形式的JSON字符串:{ // 负载均衡策略名称(不区分大小写)。 // 目前,gRPC提供的唯一可选择的客户端策略是“round_robin”,但是第三方可以添加自己的策略。 // 这个字段是可选的; 如果未设置,默认行为是选择第一个可用的后端地址。 // 如果策略名
2017-12-22 08:42:40
3627
1
翻译 gRPC Name Resolution
gRPC名称解析概貌gRPC支持DNS作为默认名称系统。在各种部署中使用了许多不同的名称系统。我们支持一个足够通用的API来支持一系列名称系统和相应的名称语法。各种语言的gRPC客户端库将提供插件机制,因此可以插入不同名称系统的解析器。详细设计名称语法用于gRPC通道构建的完全限定的自包含名称使用以下语法:scheme://authority/endpoint_name在这里,scheme表示要使用
2017-12-21 09:10:06
5136
1
翻译 gRPC LB
gRPC负载均衡范围本文档解释了gRPC内的负载均衡设计。背景每个呼叫负载均衡值得注意的是,gRPC内部的负载均衡是基于每个呼叫而不是每个连接的基础上发生的。换句话说,即使所有请求来自单个客户端,我们仍然希望它们在所有服务器之间进行负载均衡。负载均衡的方法在任何gRPC细节之前,我们探讨一些常用的方法来实现负载均衡。代理模式使用代理提供了一个坚实可靠的客户端,可以向负载均衡系统报告负载。代理通常需要
2017-12-19 14:29:47
3345
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
1105
原创 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
1632
原创 Java 性能调优工具
CPU使用率工具: vmstat检查应用性能时,应该首先审查CPU时间。代码优化的目的是提升而不是降低(更短时间段内的)CPU的使用率。在试图深入优化应用前,应该先弄清楚为何CPU使用率低。磁盘使用率工具: iostat对于所有应用来说,监控磁盘使用率非常重要。即便不直接写磁盘的应用,系统交换仍会影响它们的性能。写入磁盘的应用遇到瓶颈,是因为写入数据的效率不高(吞吐率太低),或者是因为写
2017-11-30 14:35:51
4495
原创 Go Effective
数据new(T)不会初始化内存,只会将内存置零。 也就是说,new(T)会为类型为T的新项分配已置零的内存空间, 并返回它的地址。每当获取一个复合字面的地址时,都将为一个新的实例分配内存。// 少数情况下,若复合字面不包括任何字段,它将创建该类型的零值。表达式 new(File) 和 &File{} 是等价的。f := new(File)return &File{fd, name, nil,
2017-11-14 18:13:50
337
原创 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
364
翻译 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
1077
原创 Java Date
SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为 static,必须加锁,或者使用 DateUtils 工具类。正例: 注意线程安全,使用 DateUtils。亦推荐如下处理:private static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() { @
2017-08-16 19:03:12
308
翻译 Spring Testing
单位测试依赖注入应该使您的代码在容器上的依赖性要低于传统的Java EE开发。构成应用程序的POJO应该在JUnit或TestNG测试中可测试,使用new操作符简单地实例化对象,而不使用Spring或任何其他容器。 您可以使用模拟对象(结合其他有价值的测试技术)来隔离测试代码。如果您遵循Spring的架构建议,您的代码库的干净分层和组件化将有助于简化单元测试。例如,您可以通过存根或模拟DAO或Re
2017-08-03 10:11:11
656
翻译 Mockito
迁移到Mockito 2为了继续改进Mockito并进一步提高单元测试体验,我们希望您升级到2.1.0!Mockito遵循语义版本控制,仅在主版本升级时才包含突破性更改。 在一个库的生命周期中,为了推出一系列改变现有行为甚至改变API的全新功能,突破性变化是必要的。有关新版本的全面指南,包括不兼容的更改, 请参阅“Mockito 2的新功能”Wiki页面。我们希望你喜欢Mockito 2!Moc
2017-08-02 14:59:32
2828
翻译 Maven Rollback a Release
回滚Release要回滚版本,必须满足以下要求:你没有在项目中运行release:clean。这意味着备份文件和上一版本命令中的release描述符仍然存在。当回滚版本时,执行以下release阶段:所有项目POM将在本地恢复到其预发布状态,如果以前的release命令能够成功地将SCM更改为POM,也可以在SCM中。这是通过使用在release:prepare期间创建的备份文件来完成的。这
2017-05-25 10:41:48
1662
翻译 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
3075
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
4555
原创 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
3296
翻译 Introduction to Consul
Consul简介欢迎来到Consul介绍指南!本指南是开始了解Consul的最佳场所。它涵盖了Consul是什么,可以解决什么问题,和现有的软件有那些差异,以及如何开始使用它。 如果您熟悉Consul的基础知识,访问该文档了解更详细的可用功能参考。Consul是什么?Consul有多个组件,但是整体来看,它是你基础设施中用于发现和配置服务的一个工具。它提供如下几个关键功能:服务发现: Consu
2017-05-23 10:01:37
636
翻译 Protocol Buffers Style Guide
风格指南本文档提供了.proto文件的样式指南。通过遵循这些约定,您将使protocol buffer消息定义及其对应的类一致且易于阅读。消息和字段名称使用大驼峰格式(CamelCase)作为消息名称 - 例如,SongServerRequest。 对于字段名称使用下划线分割的小写单词命名(underscore_separated_names),例如song_name。message SongSe
2017-05-18 16:29:40
472
翻译 Protocol Buffers Encoding
本文档描述了协议缓冲区消息的二进制线格式。您不需要理解这一点就可以在应用程序中使用协议缓冲区,但是了解不同的协议缓冲区格式如何影响编码消息的大小可能非常有用。一个简单的消息假设你有以下非常简单的消息定义:message Test1 { required int32 a = 1;}在应用程序中,您创建一个Test1消息并设置a为150.然后,将消息序列化为输出流。如果您能够检查编码的消息,您会看
2017-05-18 15:50:48
317
翻译 Error-Prone Refaster templates
重组模板除了通过内置的Error Prone补丁修补代码,我们还开发了一种使用前后模板重构代码的机制(我们称之为“重组模板”)。 编写这些模板后,将它们编译成.refaster文件,然后根据这些规则使用Error Prone编译器重构代码。在“重构工具”研讨会上,路易斯·沃斯曼(Louis Wasserman)提出的一篇研究论文更详细地描述了重构。构建重组模板解释如何编写重组规则最好方法莫过于通过
2017-04-19 16:32:03
1087
翻译 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
672
翻译 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
1398
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人