自定义博客皮肤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 一杯咖啡

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

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

2018-07-17 01:09:50

阅读数 1914

评论数 3

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

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

2018-07-11 00:56:42

阅读数 1440

评论数 0

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

1.什么是SimpleDateFormat 在java doc对SimpleDateFormat的解释如下: SimpleDateFormat is a concrete class for formatting and parsing dates in a locale-sensitive ...

2018-07-10 00:58:52

阅读数 464

评论数 0

原创 如何把thrift rpc转换为http

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

2018-07-05 23:15:40

阅读数 2958

评论数 0

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

很久没有写文章了,我的博客大概自从去年找到工作后再也没有更新了,最近和leader偶然讨论起影响力如何提升这个话题,我便想到了我的博客,于是参考了下前人的经验,做了一些总结。其实博客也并不完全是提升影响力的工具,我的初心当初写博客是当一个笔记来记录后来发现有人在下面评论,的确是有一定的成就感,尤其...

2018-07-04 20:46:20

阅读数 2178

评论数 0

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

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

2018-07-04 20:05:07

阅读数 3271

评论数 0

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

Mybatis(三)-详解Mybatis-config.xml<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.or...

2016-03-18 21:11:42

阅读数 641

评论数 0

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

Mybatis(二)-第一个Mybatis程序1.Maven配置<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</arti...

2016-03-18 16:00:40

阅读数 292

评论数 0

原创 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

阅读数 468

评论数 0

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

jwt(json-web-token)在rest中的实现–jersey  在这里我就不介绍jwt的概念,在我的另外一篇里面有具体的介绍   http://blog.csdn.net/li563868273/article/details/50166491  我这里主要介绍jwt在java的jer...

2015-12-12 19:48:59

阅读数 23271

评论数 4

原创 What is java语法糖

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

2015-12-03 20:21:17

阅读数 276

评论数 0

原创 方法区

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

2015-11-30 13:39:57

阅读数 487

评论数 0

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

预定义类加载器和双亲委派机制JVM预定义的三种类型类加载器: 启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib下面的类库加载到内存中(比如rt.jar)。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法...

2015-11-27 17:58:55

阅读数 502

评论数 0

原创 虚拟机类加载机制

虚拟机类加载机制类的生命周期  类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(using)、和卸载(Unlo...

2015-11-27 17:51:24

阅读数 393

评论数 0

原创 垃圾收集器之路

垃圾收集器Serial收集器  对于图上可以看见Serial收集器是新生代的收集器,他也是单线程收集器,收集时会暂停所有工作线程(我们将这件事情称之为Stop The World,下称STW),使用复制收集算法,虚拟机运行在Client模式时的默认新生代收集器。ParNew收集器  ParNew ...

2015-11-23 17:21:01

阅读数 306

评论数 0

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

新生代和老年代的区分**所谓的新生代和老年代是针对于分代收集算法来定义的,新生代又分为Eden和Survivor两个区。加上老年代就这三个区。数据会首先分配到Eden区 当中(当然也有特殊情况,如果是大对象那么会直接放入到老年代(大对象是指需要大量连续内存空间的java对象)。),当Eden没有足...

2015-11-23 17:19:47

阅读数 3915

评论数 0

原创 垃圾回收算法之路

垃圾收集算法  在上一节我说了我们应该回收哪些内存,什么时候回收,接下来我会谈怎样回收?  对于这样回收在think in java中也有相同的介绍,但是非常的少,译者也翻译得不太详细,之前读了think in java再看一遍 深入理解java虚拟机,加深了很多理解。标记清除算法  标记-清除算...

2015-11-23 17:19:16

阅读数 344

评论数 0

原创 GC之路

本文一样是参考周志明的《深入理解java虚拟机》和java虚拟机规范,加上一些自己的意见,希望大家批评指正。面对GC(Garbage Collection)的三个问题  1.哪些内存需要回收?  2.什么时候回收?  3.如何回收?  了解这三个问题,可以当我们需要排查各种内存溢出,内存泄露问题时...

2015-11-23 17:18:14

阅读数 352

评论数 0

原创 java内存区域

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

2015-11-22 17:48:23

阅读数 395

评论数 0

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

什么是Realm   Realm(安全域)其实就是一个存储用户名和密码的“数据库”再加上一个枚举列表。“数据库”中的用户名和密码是用来验证 Web 应用(或 Web 应用集合)用户合法性的,而每一合法用户所对应的角色存储在枚举列表中。可以把这些角色看成是类似 UNIX 系统中的 group(分组...

2015-11-21 15:29:27

阅读数 293

评论数 0

原创 聊聊计算和存储分离

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

2020-02-03 09:00:00

阅读数 2412

评论数 0

原创 深度剖析如何实现事务消息

这是一篇从去年写到今年的文章,希望大家会喜欢1.背景 分布式事务一直是一个老生常谈的一个话题,在我的公众号下面下面已经写过很多篇分布式事务相关的文章了,但是依旧没有将其完全剖析。在之前的...

2020-01-02 09:00:00

阅读数 164

评论数 0

原创 推荐一本不仅仅是设计模式的书

这篇文章比较短,没有太多的技术原理,没有太多的冗长的源码,只是简简单单的推荐一本书:《Java设计模式及实践》一天在逛微信读书的时候,微信读书推荐了一本名为《Java设计模式及实践》的书...

2019-12-31 09:00:00

阅读数 134

评论数 0

原创 如果有人再问你怎么实现分布式延时消息,这篇文章丢给他

1.背景 上篇文章介绍了RocketMQ整体架构和原理有兴趣的可以阅读一下,在这篇文章中的延时消息部分,我写道开源版的RocketMQ只提供了18个层级的消息队列延时,这个功能在开源版中...

2019-12-09 09:00:00

阅读数 236

评论数 0

原创 你应该知道的RocketMQ

1.概述 RocketMQ前身叫做MetaQ, 在MeataQ发布3.0版本的时候改名为RocketMQ,其本质上的设计思路和Kafka类似,但是和Kafka不同的是其使...

2019-11-26 09:00:00

阅读数 134

评论数 0

原创 注意Spring事务这一点,避免出现大事务

背景 本篇文章主要分享压测的(高并发)时候发现的一些问题。之前的两篇文章已经讲述了在高并发的情况下,消息队列和数据库连接池的一些总结和优化,有兴趣的可以在我的公众号中去翻阅。废话不多说,进入正题。 事务,想必各位CRUD之王对其并不陌生,基本上有多个写请求的都需要使用事务,而Spring对于事务的...

2019-11-15 10:36:18

阅读数 880

评论数 0

转载 数据库连接池到底应该设多大?这篇文章可能会颠覆你的认知

本文转载自简书:https://www.jianshu.com/p/a8f653fc0c54?from=singlemessage 作者:Kelgon。其中内容95%译自...

2019-11-04 09:00:00

阅读数 121

评论数 0

转载 向左还是向右?聊聊中台建设中的那些纠结事

今年参加了云栖大会,作为中台的践行者,我也更关注中台架构实施的行业状况,学习了其他公司中台的思想和经验。云栖大会上,我和做中台实践的同学,以及在阿里做中台的朋友进行了深入...

2019-11-02 10:00:00

阅读数 135

评论数 2

原创 深入理解RocketMq普通消息和顺序消息使用,原理,优化

1. 背景 最近一直再做一些系统上的压测,并对一些问题做了优化,从这些里面收获了一些很多好的优化经验,后续的文章都会以这方面为主。这次打压的过程中收获比较的大的是,对Ro...

2019-10-29 09:00:00

阅读数 286

评论数 0

原创 一直使用AtomicInteger?试一试FiledUpdater

1. 背景在进入正题之前,这里先提出一个问题,如何在多线程中去对一个数字进行+1操作?这个问题非常简单,哪怕是Java的初学者都能回答上来,使用AtomicXXX,比如有...

2019-10-09 20:30:00

阅读数 49

评论数 0

转载 一文读懂分布式任务调度平台XXL-JOB

本文主要介绍分布式任务调度平台XXL-JOB(v2.1.0版本),包括功能特性、实现原理、优缺点、同类框架比较等基本介绍项目开发中,常常以下场景需要分布式任务调度:同一服...

2019-10-08 22:46:31

阅读数 39

评论数 0

转载 压缩为王-阿里第五届中间件复赛总结

1.前言翻了一下公众号已经快两个月没有认真的写一篇文章了,这段时间主要是再忙阿里中间件的复赛,再加上前段时间团队旅游,所以才拖到现在开始写复赛的总结。首先先贴下成绩吧:首...

2019-09-16 10:36:17

阅读数 61

评论数 0

转载 消灭 Java 代码的“坏味道”

导读明代王阳明先生在《传习录》谈为学之道时说:私欲日生,如地上尘,一日不扫,便又有一层。着实用功,便见道无终穷,愈探愈深,必使精白无一毫不彻方可。代码中的"坏味道",如"...

2019-09-13 12:05:57

阅读数 39

评论数 0

转载 咱们从头到尾说一次 Java 垃圾回收

⬆️ 图片来源于网络之前上学的时候有这个一个梗,说在食堂里吃饭,吃完把餐盘端走清理的,是 C++ 程序员,吃完直接就走的,是 Java 程序员。????确实,在 Java 的世...

2019-08-07 16:19:21

阅读数 35

评论数 0

原创 如何选型一个合适的框架-分布式任务调度框架选型

1.背景 定时任务是大家再开发中一个不可避免的业务,比如在一些电商系统中可能会定时给用户发送生日券,一些对账系统中可能会定时去对账。大概再很久以前每个服务可能就一台机器,...

2019-07-15 08:30:00

阅读数 78

评论数 0

转载 面试字节跳动的一点小经验

今天正式入职了字节跳动。工号超吉利,尾数是4个6。然后办公环境也很好,这边一栋楼都是办公区域。公司内部配备各种小零食、饮料,还有免费的咖啡。15楼还有健身房。而且公司包三...

2019-07-13 15:35:34

阅读数 110

评论数 0

原创 '%' 求余还是取模,傻傻分不清楚

背景很多同学看见我的这个标题,不禁会说到:你这个是在逗我么,求余和取模不是一回事吗?是的再前不久之前我和你们的感受一样,求余和取模难道不是一个玩意?直到有一天有一个群友再...

2019-07-01 08:30:00

阅读数 157

评论数 0

转载 赛题解析:如何设计和实现自适应的负载均衡

Design bySouthUI @Iconfront在现代分布式应用中,服务请求是由物理机或虚拟机组成的 server 池进行处理的。 通常,server 池规模巨大...

2019-06-24 16:24:58

阅读数 47

评论数 0

原创 如何能在实战中完成分布式事务

背景Seata已经为我们提供了两种实现分布式模式:AT:自动模式,通过我们记录运行sql的undolog,来完成事务失败时的自动重做。TCC:TCC模式,这种模式弥补我们...

2019-06-10 08:30:00

阅读数 36

评论数 0

转载 反应式编程在微服务下的重生

反应式编程在好几年前就已经出现了,它原理是基于反应式编宣言。但是,由于反应式编程推广速度比较缓慢,导致很多人现在对其不是很了解。反应式编宣言:https://www.re...

2019-06-06 09:00:00

阅读数 32

评论数 0

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