- 博客(254)
- 资源 (40)
- 收藏
- 关注
原创 zookeeper 基础(1)
官网:https://zookeeper.apache.org/简介:apache zookeeper是用于分布式的高性能的协调服务,提供一种集中式的信息存储服务。特点:数据存在内存中,类似文件系统的树形结构(文件和目录),高吞吐量和低延迟,集群高可靠。作用:基于zookeeper可以实现分布式统一配置中心、服务注册中心,分布式锁等功能的实现。安装Zookeeper...
2019-05-13 20:34:36 203
翻译 Git飞行规则(Flight Rules)
Git飞行规则(Flight Rules)前言英文原版README 翻译可能存在错误或不标准的地方,欢迎大家指正和修改,谢谢!什么是"飞行规则"?一个 宇航员指南 (现在, 程序员们都在使用GIT) 是关于出现问题过后应该怎么操作。飞行规则(Flight Rules) 是记录在手册上的来之不易的一系列知识,记录了某个事情发生的原因,以及怎样一步一步的进行处理。本质上, 它们是...
2018-12-10 22:24:04 1359
转载 使用 Spring Cloud Sleuth、Elastic Stack 和 Zipkin 做微服务监控
关于迁移微服务架构,最常被提及的挑战莫过于监控。每个微服务应独立于其他服务的运行环境,所以他们之间不会共享如数据源、日志文件等资源。然而,较容易的查看服务的调用历史,并且能够查看多个微服务的请求传播是微服务架构的重要需求。获取服务日志不是此问题的正确解决之道,所以这里我要分享一些很有帮助的第三方工具,以方便在创建微服务的时候应用,如Sping Boot和Spring Cloud。其它翻译版...
2018-11-30 11:46:24 492
转载 微服务架构(Microservice Architecture)
目录如下: 一、微服务架构介绍二、出现和发展三、传统开发模式和微服务的区别四、微服务的具体特征五、SOA和微服务的区别六、如何具体实践微服务七、常见的微服务设计模式和应用八、微服务的优点和缺点九、思考:意识的转变十、参考资料和推荐阅读 一、微服务架构介绍 微服务架构(Microservice Architecture)是一种架构概念,...
2018-11-30 11:39:28 1453 1
原创 linux CPU状态信息us,sy,ni,id......
linux下top命令:含义:I try to explain these:us: is meaning of "user CPU time"sy: is meaning of "system CPU time"ni: is meaning of" nice CPU time"id: is meaning of "idle"wa: is meaning of "iowai...
2018-11-27 22:50:11 6276
原创 aop:pointcut 的expression 的各种表达式
任意公共方法的执行: execution(public * *(..)) 任何一个以“set”开始的方法的执行: execution(* set*(..)) AccountService 接口的任意方法的执行: execution(* com.xyz.service.AccountService.*(..)) 定义在service包里的任意方法的执行: execution(* com...
2018-11-27 22:42:54 442
原创 Pull和Push的区别
Pull Push 实时性 取决于定时 较好 客户端状态 有状态,需要知道拉取点 无状态 服务端状态 无状态 有状态,需要了解每个客户端的推送点 通常实现 短连接 长连接 难点 实时性和流量的取舍 客户端能力和push能力不匹配问题 ...
2018-11-16 23:41:18 7674
原创 Swagger使用说明
使用说明1、类、方法、参数、返回值上的注解必填--好处:前端可以识别参数名称2、@Api上的tag 默认值为:类名;@ApiOperation 的tag默认值为版本号--好处:tag会自动归类,前端很容易看出当前版本的方法 注意:类、方法、参数上的javadoc注释可以不写了示例类方法参数返回值Swagger 常用注解说明注解 ...
2018-11-16 23:37:23 475
原创 做事方法
工作优先级如何有效的安排工作优先级优先级的顺序如下:A.又重要又紧急的事情 B.紧急不重要的事情 C.重要不紧急 D.不重要不紧急。如何衡量重要性和紧急性紧急性是指事情非常紧急,如果不马上处理造成的后果非常严重,关键是在时效性上。总而言之,要掌握一个原则,就是在碰 到多件事情的时候,先分析一下事情造成的后果严重程度,具体问题具体分析。工作方法工程师平时的维护工作的处理...
2018-11-16 23:28:29 1095
转载 提问的智慧
在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。 首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们思维的好问题。 如若不然,我们还来干吗?如果你有值得我们反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是激励,是厚礼,可以提高我们的理解力,而且通常会暴露我们以前从没意识到或者思...
2018-11-16 23:25:45 168
转载 分享30道Redis面试题
1、什么是Redis?简述它的优缺点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大...
2018-10-26 17:31:46 208
原创 分布式git管理
git已经是代码管理的主流工具了,所以今天总结下: 首先先看看Git与SVN的区别 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。 3、GIT分支和SVN的分...
2018-10-15 22:29:44 274
原创 微服务
微服务实战(一):微服务架构的优势与不足【编者的话】本文来自Nginx官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。正如作者所说,微服务架构更适合用于构建复杂的应用,尽管它也有自己的不足。这篇文章作者是Chris Richardson,他是早期基于Java的Amazonite EC2 PaaS平台CloudFoundry.com的创始人。现...
2018-10-15 21:56:51 410
原创 String为什么是final
最近在很多文章中看到很多人问:String为什么是final的,所以自己写下这篇文章,来深入了解下。 首先先了解两个问题:Java中 final的定义:Java的关键字final的含义存在着细微的区别,但是通常它是指"这是无法改变的"。不想做出改变可能处于两种理由:设计和效率。 final 修饰的类是不被能继承的,所以 final 修饰的类是不能被篡改的。jdk源码Str...
2018-10-10 22:12:49 13619 4
转载 java8概述:有哪些核心新特性?为什么会有这些特性?
java8可以说是自java诞生以来,发生最大变化的一个版本,关键是这一变化对于我们程序员来说是一个很大的福音:java8提供的新功能能够帮助我们写出更清晰、更简洁的代码(这貌似是程序员一生都在追求的东西吧,而java8让java开发者的这一追求瞬间向前跨了一大步)。那么java8究竟提供了哪些核心新特性来让程序员轻易就可以写出更清晰、更简洁的代码呢?先来看一个小需求"对库存中的苹果按重量...
2018-09-17 15:30:52 482 1
转载 java8行为参数化-逐步尝试实现代码传递
行为参数化是指一个方法的功能,部分或全部由传递给这个方法的某个或多个参数决定,但这些参数不是一般意义上的值(一个字符串或数字),它代表了一个具体的行为,其本质是代码传递,表现可能有多种:对象、匿名类、java8里的Lambda表达式(或方法引用)等。本篇文章将以一个例子,为了满足不断复杂化的需求,层层递进,逐步演示从值传递到java8行为参数化这个简单到高级的过程,以展示行为参数化的必要与优势。...
2018-09-17 15:27:35 823
转载 java8-Lambda表达式的组成及使用
前面的文章中已经多次出现了Lambda表达式的身影,其简洁与灵活性相信读者也应有所感受。那么Lambda表达式究竟是个什么鬼?它的语法是什么?它由什么组成?我们该怎样使用Lambda表达式以及在哪里使用?本篇文章将解答这些问题。Lambda表达式是什么?可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的...
2018-09-17 15:27:00 1701
转载 java8中预定义的函数式接口:Predicate、Consumer、Function等
上一篇中介绍的函数式接口的抽象方法是Lambda表达式的函数描述符,Lambda表达式需要有与之相匹配的函数式接口才能正常工作,那么在java8中,java的设计者为我们提供了哪些常用的函数式接口?java.util.function.Predicate< T >Predicate(谓词)函数式接口定义了一个test抽象方法,它接受泛型参数T并返回布尔值,其定义如下: ...
2018-09-17 15:26:20 6248
转载 Lambda表达式的类型检查、类型推断及其带来的限制
前面的文章中我们有提到,Lambda表达式是函数式接口的一个实例,然而,我们并没有从Lambda表达式中看到有关函数式接口的任何信息,因而有必要弄清楚,Lambda的类型是什么?它实现了哪个函数式接口?类型检查其实,Lambda表达式的类型是从上下文推断出来的,这里的上下文包括如下3种:赋值上下文 方法调用上下文(参数与返回值) 类型转换上下文通过这3种上下文就可以推断出Lamb...
2018-09-17 15:25:46 1870
转载 java8方法引用-调用特定方法的Lambda的一种快捷写法
下面的代码是实现同一功能时,使用Lambda表达式与方法引用的对比代码: //使用Lambda表达式对重量排序 inventory.sort((Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight())); //使用方法引用和java.util.Comparator.comparing对重量排序: inve...
2018-09-17 15:25:09 4029 1
转载 java8 Stream:数值流(原始类型流特化)与构建流的几种方式
前面的文章有介绍:为了解决装箱带来的效率问题,java8针对原始类型提供了一些特化的函数式接口,如:IntPredicate。流也不例外,它提供了3个的原始类型数值流:IntStream LongStream DoubleStream分别将流中的元素特化为int、long、double,从而避免暗含的装箱成本。普通流转换为数值流 IntStream intStream =...
2018-09-17 15:24:05 3294
转载 java8流(Stream API)使用详解:筛选、切片、映射、查找、匹配和归约等流操作
上一篇中介绍了集合操作的痛点并发现集合操作的这些痛点在java8流API面前基本都不是事,随后引出了流的定义并介绍了流操作的类型、特征,以及使用流的基本步骤,本篇将逐一介绍Stream Api中各种流操作及一些特殊流的使用。用谓词筛选关于筛选在该系列前面文章中已经出现多次了,这里再次列举如下,以求完整。如下代码筛选出素食菜单: List<Dish> vegetar...
2018-09-17 15:23:25 8986 3
转载 java8流(Stream API)概述
流(Stream)是java8引入的重磅api,使用它可以替换大部分集合操作,重要的是,流相对集合来说更简洁易读、更灵活,性能也更好。集合操作的痛点动不动就要遍历数据,代码繁琐、可读性差、维护困难 内存占用大,集合是装载全部数据到内存 需要程序员自己实现并行处理,难度大、易出错 使用集合时性能优化对程序员来说也是一个难点而上面列举的这些集合痛点,Stream Api能够轻易帮我们解...
2018-09-17 15:21:28 2263
原创 ThreadPoolTaskExecutor使用详解
当并发或者异步操作,都会用到ThreadPoolTaskExecutor。现在对线程池稍作理解。/*** *@Auth dzb *@Date 22:29 2018/8/29 *@Description: 线程池 *@Version 1.0 */@Configurationpublic class AsynTaskExecutePool implements AsyncC...
2018-08-29 22:56:42 7038
转载 Redis 分布式锁的正确实现方式( Java 版 )
前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要...
2018-08-27 08:28:12 209
原创 Tomcat配置与优化
一、JVM内存配置优化Java的逻辑内存模型大致分为堆内存、栈内存、静态内存区,也称持久区(本地内存),该区的内存不会被GC回收。堆:存用来存储Java中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都存储在堆内存中。栈:以栈帧的方式存储方法调用的过程,并存储方法调用过程中基本数据类型的变量(int、short、long、byte、float、double、bool...
2018-08-15 08:54:00 217
原创 Git分支管理使用规范
分支 develop和master是长期维护的分支,前者用于开发,后者用于生产。 临时分支有功能分支、发布分支、hotfix分支,它们的生命周期比较短,一旦完成其使命将被删除。 流程...
2018-08-06 22:29:51 2651 1
转载 Tidb分布式数据库
TiDB 简介TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 NewSQL 数据库。TiDB 具备如下 NewSQL 核心特性:SQL支持(TiDB 是 MySQL 兼容的) 水平弹性扩展(吞吐可线性扩展) 分布式事务 跨数据中心数据强一致性保证 故障自恢复的高可用 海量数据高并发实时写入与实时查询(HTAP 混合负载...
2018-08-06 21:32:47 12252
转载 RESTful API 设计相关的一些原则
本文总结了 RESTful API 设计相关的一些原则,只覆盖了常见的场景。有些规则只是针对自己项目而言,并非其他做法都是错误的。1. URIURI 表示资源,资源一般对应服务器端领域模型中的实体类。URI规范不用大写;用中杠-不用下杠_;参数列表要encode;URI中的名词表示资源集合,使用复数形式。资源集合 vs 单个资源URI表示资源的两种方式:资源集合、单个资源。...
2018-08-06 21:31:39 950 1
转载 开源规则引擎 drools
前言在很多企业的 IT 业务系统中,经常会有大量的业务规则配置,而且随着企业管理者的决策变化,这些业务规则也会随之发生更改。为了适应这样的需求,我们的 IT 业务系统应该能快速且低成本的更新。适应这样的需求,一般的作法是将业务规则的配置单独拿出来,使之与业务系统保持低耦合。目前,实现这样的功能的程序,已经被开发成为规则引擎。规则引擎是一种推理引擎,它是根据已有的事实,从规则知识库中匹配规则...
2018-08-06 21:30:34 81086 2
原创 mapstruct
配置MapStruct到目前为止我们的准备工作差不多完成了,下面我们开始配置使用MapStruct。我们的最终目的是为了返回一个自定义的DTO实体,那么我们就先来创建这个DTO,DTO的代码如下所示:package com.yuqiyu.chapter30.dto;import lombok.Data;/** * 转换Dto */@Datapublic class Goo...
2018-08-06 21:29:36 2731
原创 lombok
lombok简介lombok是暑假来到公司实习的时候发现的一个非常好用的小工具,刚见到的时候就感觉非常惊艳,有一种相见恨晚的感觉,用了一段时间之后感觉的确挺不错,所以特此来推荐一下。lombok的官方地址:https://projectlombok.org/lombok的Github地址:https://github.com/rzwitserloot/lombok那么lombok到...
2018-08-06 21:27:59 684
原创 jwt token & spring oauth2
原文链接:http://www.baeldung.com/spring-security-oauth-jwt1. OverviewIn this tutorial we’ll discuss how to get our Spring Security OAuth2 implementation to make use of JSON Web Tokens.We’re also con...
2018-08-06 21:26:58 1300
转载 分布式事务之TCC服务设计和实现注意事项
1、TCC简介TCC是一种比较成熟的分布式事务解决方案,可用于解决跨库操作的数据一致性问题;TCC是服务化的两阶段编程模型,其Try、Confirm、Cancel 3个方法均由业务编码实现;其中Try操作作为一阶段,负责资源的检查和预留,Confirm操作作为二阶段提交操作,执行真正的业务,Cancel是预留资源的取消;如下图所示,业务实现TCC服务之后,该TCC服务将作为分布式事务的其中一个资源...
2018-07-16 15:54:47 1977
转载 基于Java NIO框架区别对比
一.通信框架流行基于Java NIO通信框架有Mina、Netty、Grizzly等。接下来说下它们之间的对比。二.它们的出身1、Mina出身于开源界的大牛Apache组织;2、Netty出身于商业开源大亨Jboss;3、Grizzly则出身于土鳖Sun公司。三.它们的设计理念1、Mina Mina(Multipurpose Infrastructure for Network Applicati...
2018-05-23 08:58:08 2712 1
转载 OAuth 2和JWT - 如何设计安全的API?
本文会详细描述两种通用的保证API安全性的方法:OAuth2和JSON Web Token (JWT)假设:你已经或者正在实现API;你正在考虑选择一个合适的方法保证API的安全性;JWT和OAuth2比较?要比较JWT和OAuth2?首先要明白一点就是,这两个根本没有可比性,是两个完全不同的东西。JWT是一种认证协议 JWT提供了一种用于发布接入令牌(Access Token),并对发布的签名接...
2018-04-19 23:28:57 888
原创 jenkins中通过execute shell启动的进程会被杀死的问题(其它进程)
今天在做自动化jenkins部署,遇到了一个问题.我在执行shell脚本的时候,会把其它进程也杀死,而且本进程也不再执行,查找资源,找到了一篇文章。 这是因为Jenkins默认会在Build结束后Kill掉所有的衍生进程。解决方法:1.重设环境变量build_id 在execute shell输入框中加入BUILD_ID=DONTKILLME,即可防止jen
2018-01-17 18:05:06 4507
原创 linux jenkins安装部署
jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目jenkins搭建 部署分为三个步骤;第一步,jenkins安装第二步,插件安装和配置第三步,Push SSH第四步,部署项目第一步 ,jenkins安装准备环境:JDK:1.8Jenkins:2.83
2018-01-16 10:52:34 927
原创 Set,Map集合与数组互转
@org.junit.Testpublic void test4() {Set set=new HashSet();//数组转集合set.addAll(Arrays.asList("aa","bb","cc","dd"));//集合转数组//方式1String[] array = set.stream().toArray(String[]::new);System
2017-12-07 11:06:37 1034
原创 fastjson SerializerFeature详解
依赖架包 dependency> groupId>com.alibabagroupId> artifactId>fastjsonartifactId> version>1.2.7version> dependency>12345SerializerFeature属性名称含义备注QuoteFieldNam
2017-12-01 11:41:12 1763
zookeeper基于paxos算法的资料。
2019-05-20
srpingboot jsp
2017-09-14
springboot自定义拦截器filter
2017-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人