自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lizhao007

一杯Java 一杯咖啡

  • 博客(272)
  • 收藏
  • 关注

原创 异步化,你的高并发大杀器

今天来聊聊如何让项目异步化的一些事。1.同步和异步,阻塞和非阻塞同步和异步,阻塞和非阻塞, 这个几个词已经是老生常谈,当时常常还是有很多同学分不清楚,以为同步肯定就是阻塞,异步肯定就是非阻塞,其他他们不是一回事。同步和异步关注的是结果消息的通信机制 - 同步:同步的意思就是调用方需要主动等待结果的返回 - 异步:异步的意思就是不需要主动等待结果的返回,而是通过其他手段比如,状态...

2018-07-17 01:09:50 2931 3

原创 你的项目应该如何正确分层?

如果喜欢微信阅读,想了解更多java知识,系统设计,分布式中间件等可以关注我的微信号: java和咖啡,当然还有更多福利等着你。1.背景说起应用分层,大部分人都会认为这个不是很简单嘛 就controller,service, mapper三层。看起来简单,很多人其实并没有把他们职责划分开,在很多代码中,controller做的逻辑比service还多,service往往当成透传...

2018-07-11 00:56:42 3018

原创 【战雷系列】再见!SimpleDateFormat

1.什么是SimpleDateFormat在java doc对SimpleDateFormat的解释如下:SimpleDateFormat is a concrete class for formatting and parsing dates in a locale-sensitive manner. It allows for formatting (date → text), p...

2018-07-10 00:58:52 855

原创 如何把thrift rpc转换为http

背景在平常的业务开发中遇到了两个场景:1.由于业务用的rpc框架是thrift,代码也是都是用thrift再写,有一天突然接到个需要前端要用http访问接口的需求,于是花了几天时间把所有的thrift接口又用Controller封装一层。由于跨语言,且对方不使用thrift,就需要你提供Http接口2.写完thrift为了自测,需要再写个TestController验证代码是否正确,整...

2018-07-05 23:15:40 6074

原创 技术人应该如何提升影响力

很久没有写文章了,我的博客大概自从去年找到工作后再也没有更新了,最近和leader偶然讨论起影响力如何提升这个话题,我便想到了我的博客,于是参考了下前人的经验,做了一些总结。其实博客也并不完全是提升影响力的工具,我的初心当初写博客是当一个笔记来记录后来发现有人在下面评论,的确是有一定的成就感,尤其是和他们交流感觉知识和经验分享给大家比自己独嗨的确是更有趣,所以后面应该会陆陆续续的更新博客,把工作中...

2018-07-04 20:46:20 4848

原创 手把手教你如何设计日志脱敏插件

1.背景我所在的公司最近要求需要在所有地方都要脱敏敏感数据,应该是受faceBook数据泄密影响吧。说到脱敏一般来说在数据输出的地方需要脱敏而我们数据落地输出的地方一般是有三个地方:接口返回值脱敏日志脱敏数据库脱敏这里主要说一下如何进行日志脱敏,对于代码中来说日志打印敏感数据有两种:敏感数据在方法参数中LOGGER.info("person mobile:...

2018-07-04 20:05:07 7719 1

原创 mybatis(三)-mybatis-config详解

Mybatis(三)-详解Mybatis-config.xml<?xml version="1.0" encoding="utf-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>

2016-03-18 21:11:42 1277

原创 Mybatis(二)-创建第一个应用

Mybatis(二)-第一个Mybatis程序1.Maven配置<dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.3.0</version></dependency></dependencies>2.新建一个数据库表CREATE TABLE

2016-03-18 16:00:40 411

原创 Mybatis(一)-入门

Mybatis(一)Mybatis入门在进入正式之前 Mybatis中文文档地址 http://www.mybatis.org/mybatis-3/zh/index.html前言     什么是ORM,O/R Mapping,Object Relation Mapping,即对象关系映射,把对数据表映射为对象类,将在数据库中直接进行的原始操作演变为对的属性和方法的操作,间接改变数据库表的数据。

2016-03-18 14:19:43 646

原创 jwt(json-web-token)在rest中的实现--jersey

jwt(json-web-token)在rest中的实现–jersey  在这里我就不介绍jwt的概念,在我的另外一篇里面有具体的介绍   http://blog.csdn.net/li563868273/article/details/50166491  我这里主要介绍jwt在java的jersey中的实现,在springMVC中实现也大同小异,仿照过来就行了。实现jwt的具体步骤总的来说实现j

2015-12-12 19:48:59 24268 4

原创 What is java语法糖

What is java语法糖  语法糖可以看做是编译器实现的一些小把戏,这些小把戏可能会使得效率“大提升”。、泛型和类型擦除  Java的泛型是JDK1.5版本之后才有的特性,在没泛型特性之前,只能通过Object是所有类的父类和类型强制转换来实现类型泛化。对于这种依靠Object很容易在强制转换时发生ClassCastException。  java的泛型和c++,c#的泛型不一样,他们的泛型在

2015-12-03 20:21:17 423

原创 方法区

方法调用 方法调用不等于方法执行,其唯一的任务就是确定调用哪一个具体方法,暂时还不涉及方法内部的具体运行过程。在程序运行时,进行方法调用时最普遍,最频繁的操作。解析所有方法调用中的目标方法在Class文件里面都是一个常量池中的符号引用。在类加载的解析阶段,一部分符号引用会被转化为直接引用,这种解析成立的前提是:方法在程序真正运行之前就有一个可确定的调用版本,且这个方法的调用版本在运行时是不可改

2015-11-30 13:39:57 606

转载 类加载器和双亲委派机制

预定义类加载器和双亲委派机制JVM预定义的三种类型类加载器: 启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib下面的类库加载到内存中(比如rt.jar)。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。 标准扩展(Extension)类加载器:是由

2015-11-27 17:58:55 625

原创 虚拟机类加载机制

虚拟机类加载机制类的生命周期  类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(using)、和卸载(Unloading)七个阶段。其中验证、准备和解析三个部分统称为连接(Linking),这七个阶段的发生顺序如下

2015-11-27 17:51:24 508

原创 垃圾收集器之路

垃圾收集器Serial收集器  对于图上可以看见Serial收集器是新生代的收集器,他也是单线程收集器,收集时会暂停所有工作线程(我们将这件事情称之为Stop The World,下称STW),使用复制收集算法,虚拟机运行在Client模式时的默认新生代收集器。ParNew收集器  ParNew 收集器就是Serial的多线程版本,除了使用多条收集线程外,其余行为包括算法、STW、对象分配规则、回收

2015-11-23 17:21:01 409

原创 新生代和老年代的区别

新生代和老年代的区分**所谓的新生代和老年代是针对于分代收集算法来定义的,新生代又分为Eden和Survivor两个区。加上老年代就这三个区。数据会首先分配到Eden区 当中(当然也有特殊情况,如果是大对象那么会直接放入到老年代(大对象是指需要大量连续内存空间的java对象)。),当Eden没有足够空间的时候就会 触发jvm发起一次Minor GC。如果对象经过一次Minor GC还存活,并且又能被

2015-11-23 17:19:47 5903

原创 垃圾回收算法之路

垃圾收集算法  在上一节我说了我们应该回收哪些内存,什么时候回收,接下来我会谈怎样回收?  对于这样回收在think in java中也有相同的介绍,但是非常的少,译者也翻译得不太详细,之前读了think in java再看一遍 深入理解java虚拟机,加深了很多理解。标记清除算法  标记-清除算法是最基础的算法,和他名字一样分为两个部分,“标记”和“清除”:首先标记所有需要回收的对象,在标记完成后

2015-11-23 17:19:16 442

原创 GC之路

本文一样是参考周志明的《深入理解java虚拟机》和java虚拟机规范,加上一些自己的意见,希望大家批评指正。面对GC(Garbage Collection)的三个问题  1.哪些内存需要回收?  2.什么时候回收?  3.如何回收?  了解这三个问题,可以当我们需要排查各种内存溢出,内存泄露问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们可以自己针对其调控。哪些内存需要回收  首先我们根据内存

2015-11-23 17:18:14 455

原创 java内存区域

Java内存区域  我写这个文章只是对学习的一些记录加上自己的理解,所以很简陋,详细可参考周志明的《深入理解Java虚拟机》或者《Java虚拟机规范(Java SE 7版)》的中译本。运行时的数据区域深入理解Java虚拟机中的图画得不是特别详细,所以我在网上找了稍微详细一点的!针对这个图我会详细说明程序技术器,Java虚拟机栈,本地方法栈,Java堆,方法区,运行时常量池,还有一个直接内存(图上没有

2015-11-22 17:48:23 517

原创 Tomact中权限设置-Realm配置

什么是Realm   Realm(安全域)其实就是一个存储用户名和密码的“数据库”再加上一个枚举列表。“数据库”中的用户名和密码是用来验证 Web 应用(或 Web 应用集合)用户合法性的,而每一合法用户所对应的角色存储在枚举列表中。可以把这些角色看成是类似 UNIX 系统中的 group(分组),因为只有能够拥有特定角色的用户才能访问特定的 Web 应用资源(而不是通过对用户名列表进行枚举适配)

2015-11-21 15:29:27 423

原创 再谈分布式事务

前言三年前,我写了第一篇和分布式事务相关的文章再有人问你分布式事务,把这篇扔给他,后面陆续也写了一些和分布式事务相关的文章:•如何能在实战中完成分布式事务•深度剖析一站式分布式事务方案Se...

2022-01-22 11:21:41 401 1

原创 聊聊最近的面试

咳咳,看标题,肯定有同学以为这是一篇软广,放心这篇文章是我最近的一些体会或者经历大家可以放心食用。有一段时间没写公众号,好多同学都以为我不更新了,其实不是的,最近事情比较多,的确没有时间去...

2021-11-12 15:43:03 409

原创 Innodb RR隔离级别下到底能否避免幻读

背景这个事情要回溯到曾经背八股文的时候了,想必大家在背八股文的时候对于事务隔离级别都已经背得滚瓜烂熟了,一般在说隔离级别的时候,都顺带会提到mysql的innodb的RR隔离级别,由于他与...

2021-08-26 09:00:00 365

原创 TIDB,面向未来的数据库到底是什么?

背景tidb这个技术名词很多同学或多或少都曾经耳闻过,但是很多同学觉得他是分布式数据库,自己的业务是使用mysql,基本使用不上这个技术,可能不会去了解他。最近业务上有个需求使用到了tid...

2021-07-12 08:30:00 358

原创 GraalVM下一代JVM到底是什么?

背景上周有幸去QCON听了一下各个公司大佬的技术分享,但是至于收获嘛,知识没带走多少,带走了不少展台送的小礼品,哈哈~。其实挺这种大会想要真正的了解细节还是难,主要还是了解行业新趋势,技术...

2021-06-07 08:30:00 356 1

原创 记一次艰难的GC问题排查!

背景gc问题一直是一个很难排查的问题,但是他又是一个经常在我们开发业务中出现的。这不,最近在我的项目中就出现了一个比较奇葩的gc问题,排查过程比较繁琐,所以在这里分享一下这个整个排查过程,...

2021-05-13 08:40:00 854

原创 别再说你不懂规则引擎了!

背景一提到规则引擎这四个字,大家肯定多多少少在工作中或者各种文章里面都有过听说,但是很多同学往往被引擎这两个字吓到了,以为这是什么黑科技。时值最近在调研规则引擎,在这里给大家介绍一下什么是...

2021-03-23 08:30:00 1985 1

原创 下一代消息队列pulsar到底是什么?

背景 之前琢磨了很久一直想写一篇pulsar相关的文章,但是一直知识储备不够,对于很多细节还是不了解,于是查了很多资料,总算是可以凑出一篇文章了。Pulsar是一个由yahoo公司于20...

2021-01-18 09:00:00 2027

原创 限流,永远都不是一件简单的事!

背景 随着微服务的流行,服务之间的稳定性变得越发重要,往往我们会花很多经历在维护服务的稳定性上,限流和熔断降级是我们最常用的两个手段。前段时间在群里有些小伙伴对限流的使用些疑问,再加上最...

2020-11-25 08:30:00 480

原创 为什么effective java 第三版推荐使用try-with-resources代替try-finally

背景 try-finally 这个语句想必做java的同学都不陌生吧,每当我们有关闭资源的需求我们都会使用到try-finally这个语句,比如我们在使用锁的时候,无论是本地的可重入锁还...

2020-11-02 08:30:00 154

原创 随笔——消息队列线程池模型如何保证重启时消息不丢

背景 今天在脉脉上面看到了一个帖子,比较有意思:这个帖子的意思是:在使用Kafka的时候,我们已经设置了多个分区,如何去提升消费能力?如果使用线程池的方式去提升如何保证重启时消息不丢。这...

2020-10-26 08:30:00 538

原创 万亿级数据应该怎么迁移?

之前写过一篇文章:binlog还能这么用之Canal篇,在里面介绍了一些增量数据迁移的一些方法,但是对于整体的数据的迁移介绍得不是很深,这里想对迁移数据整体做一个介绍,希望能帮助到大家。...

2020-10-23 09:00:00 372

原创 Oh! Binlog还能这样用之Canal篇

背景不知道是否你还在为下面的问题而困扰:•当你使用了redis或者其他中间件做缓存的时候,经常发现缓存和数据库的数据不一致,只能通过定时任务或者缓存过期的方式去做一些限制。•当你使用了E...

2020-09-14 09:00:00 281

原创 视屏面试传输协议到底是TCP还是UDP

背景 又是一年一度的秋季校招开始了,以往的校招各个公司都会在公司现场或者学校现场安排学生进行现场面试?但是今年由于疫情的原因,不允许让同学在现场进行一个面试,所以今年的面试形式就从线下转...

2020-08-31 15:20:06 4204 1

原创 你应该了解的Nacos配置中心

背景 上回我们说到Nacos的注册中心,我们讲了注册中心的一致性协议,订阅和注册的原理,有兴趣的可以看一下上一篇文章:你应该了解的Nacos注册中心。在Nacos中还有一个功能特别重要那...

2020-07-27 09:00:00 2146

原创 你应该了解的Nacos注册中心

背景 前段时间有新闻报道,国外HashiCorp在官网宣布:不允许中国境内使用、部署和安装该企业旗下的企业版产品和软件。其中Consul是Java的spring cloud开发者非常熟悉...

2020-06-22 09:00:00 1625 1

原创 别再用if-else了,用注解去代替他吧

本文来自谢英豪同学的投稿,希望大家读完能有所收获。策略模式 经常在网上看到一些名为“别再if-else走天下了”,“教你干掉if-else”等之类的文章,大部分都会讲到用策略模式去代替i...

2020-06-15 09:00:00 448

原创 谈谈日志的最佳实践

1.背景 日志是我们程序员的一个老生常谈的话题,你可能每天都会听到这个词。想起我刚刚大学毕业的时候刚进入公司,正逢做一些部门业务交接,也就是其他部门的服务交给我们维护。记得没交接多久,当...

2020-05-18 09:00:00 518

原创 讲讲insert on duplicate key update 的死锁坑

1.背景 最近有一些活动,于是会对系统做一些平时量比较小的路径做一些打压,这不打压还好,这一打压就出现了奇怪的问题,居然有一段陈年老代码出现了死锁的问题...

2020-03-30 09:00:00 21752 9

原创 聊聊计算和存储分离

1.背景 这篇文章是我一直想写的一篇,因为“计算和存储分离”最近几年在大家的视野中出现得越来越多,但其实很多对于其到底代表着什么也是模糊不清,这里我查阅了很多的资料再结合平时自己的理解,...

2020-02-03 09:00:00 19360 6

空空如也

空空如也

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

TA关注的人

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