自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

转载 异步框架方案

写在前面参考Dubbo异步框架实现。基本工作流程通用的跨网络异步调用线程模型:框架异步发送请求消息,请求发送成功后,返回业务结果CompletableFuture给业务线程。对于同步请求,业务线程会调用future.get同步阻塞等待结果,收到网络层返回业务结果后,future....

2019-09-03 19:21:00 346

转载 Spring统一异常拦截

转载于:https://my.oschina.net/u/1000241/blog/3098864

2019-08-28 16:56:00 193

转载 JVM常用参数

#===========================================================# Jetty start.jar arguments#=========================================================...

2019-08-27 16:46:00 231

转载 应对单条高频的数据修改方案

写在前面在高并发场景下,某些业务场景可能存在对于单条数据高频修改的需求,举个简单的场景:在MQ消费时,对账户进行加减操作,保证账户(较少账户)的总金额和流水的总金额相等,中间可能存在对于账户进行频繁update的操作,如果直接用DB接高频修改,瓶颈会出现在行级锁占用较长时间,导致消费能力不...

2019-08-27 11:45:00 288

转载 面向C端亿级订单存储方案

写在前面设计好一套面向用户的订单存储架构,是一个大型交易系统中必要且重要的一项工作。那么该如何设置一个健壮且功能全面的面向C端订单架构呢?我们可以YY出一些场景去挑战我们的设计方案,让方案更加健壮。试想下,如何设计一个面向C端场景的订单存储呢?如何实现用户无限下滑分页获取订单呢?问题分...

2019-08-26 19:37:00 838

转载 JVM堆引发swap的情况分析

写在前面虚拟机技术可以使得一个只有1g物理内存的机器可以运行总共需要4g内存的任务,主要方法是通过虚拟内存和物理内存映射来实现的,当物理内存不够用的时候,可以通过swap内存(存在于磁盘)和物理内存的交换来释放刚交换的物理内存,使其可以重新分配,当需要使用以前换出的内存时,在进行换入操作。...

2019-08-19 16:57:00 2130

转载 JVM下的Scala和Kotlin

写在前面在JVM生态下流行的语言有好几种,最出名的应该就是Scala和Kotlin了。最近准备除了Java本身之外在学习一种JVM生态下的语言,Scala和Kotlin都是候选语言。我在写Spark相关程序时用过Scala,在我自己的业余项目中在尝试Kotlin和Go,两者都在不同的方向创...

2019-08-11 12:46:00 303

转载 Linux常用命令

获取机器cpu个数:cat /proc/cpuinfo |grep "processor"|wc -lretsult:4 转载于:https://my.oschina.net/u...

2019-08-07 14:06:00 68

转载 服务治理和Service Mesh

服务治理配置中心:配置集中化及动态配置更新及通知下发。注册中心:用于服务发现,可以实现状态检测及自动通知,进而使得数据库中间件具备高可用和自我治愈能力。限流:用于流量过载保护,分为数据库中间件本身的流量过载保护和对数据库的流量过载保护。熔断:流量过载保护措施之一,在于熔断整个客户端对...

2019-08-04 16:50:00 248

转载 关系数据库和NoSql

关系数据库关系数据库历史悠久,可以找到靠谱的DBA,保证关系数据库稳定性,安全性,完整性和性能,同时可以保证监控和分析关系数据库的瓶颈及设计的合理性。成熟的关系数据库有着自己完善的生态圈,用于保证高可用,数据备份,性能检测分析等成熟的工具。存储引擎非常成熟,基于MVCC的数据库引擎在性能...

2019-08-04 16:49:00 171

转载 线程的阻塞和唤醒

Java的线程阻塞和唤醒是通过Unsafe类的park和unpark方法做到的。两个方法都是native方法,本身由c实现的核心功能。park:是让当前运行的线程Thread.currentThread()休眠。unpark:是唤醒指定线程。两个方法底层使用操作系统提供的信号量机...

2019-08-04 16:39:00 1260

转载 Linux的原子操作

程序的操作序列:读一个位于memory中的变量的值到寄存器中。修改该变量的值(就是修改寄存器中的值)。将寄存器中的值写回memory中的变量值。如果这个操作是串型化操作,那么一切都ok,然后在多cpu体系下,运行两个cou上的两个内核控制路径同时并行执行上面操作序列,可能发生读写顺...

2019-08-04 16:37:00 141

转载 IO模型梳理-从操作系统到应用层

写在前面IO模型是编程语言和软件开发中重要的知识。本篇从IO模型这个切入点横向梳理了从操作系统到应用层中IO模型相关知识。考虑到技术本身具有横向迁移的特点,也可以帮助大家在宏观与微观,具体与细节,底层与应用多角度串联技术,本篇是第一篇从IO模型说起。Linux IO模型操作系统的核心是内...

2019-08-04 16:30:00 316

转载 Linux零拷贝的几种方式

数据拷贝传统的 Linux 系统的标准 I/O 接口(read、write)是基于数据拷贝的。也就是数据都是 copy_to_user 或者 copy_from_user,这样做的好处是,通过中间缓存的机制,减少磁盘 I/O 的操作,但是坏处也很明显,大量数据的拷贝,用户态和内核态的频繁切...

2019-08-04 15:30:00 913

转载 利用状态机使得系统设计透明

写在前面在整个交易平台中,会有多个系统的业务逻辑随着订单的状态变更有不同的业务规则转换,如果在系统中不对状态变更所引发逻辑做较好的设计的话,未来系统这部分代码必将越来越难以维护,变为整个系统腐朽的源头。有限状态机订单状态可能是“已下单” -> "已支付" -> "取消" -&...

2019-08-04 15:18:00 129

转载 GC和垃圾回收器其六:OOM那些事儿

写在前面当JVM内存严重不足时,会抛出java.lang.OutOfMemoryError错误,造成OOM原因有哪些呢?先了解下OOM错误和内存模型:堆 转载于:https://...

2019-08-01 16:42:00 117

转载 老油条们的窘境

写在前面相信你最近应该在程序员朋友圈看到过这个段子:很多人看到第一眼会说,“哇靠,这个完全颠覆了对于软件工程认知,完全是对《代码整洁之道》的亵渎啊”。然而段子中说的很大一部分是真实的。老油条们,由于先发优势站住了一些核心坑位,掌控着一个核心系统,负责整个核心系统的架构演进和发展方向。为...

2019-08-01 11:04:00 132

转载 GC和垃圾回收器其三:JVM调优

写在前面谈到调优,首先要理解调优的目标是什么,针对什么样的场景,做什么样的事情。性能角度主要瞄准三个方向:内存占用,时延,吞吐。在这些角度之外可能围绕OOM是否合理,GC参数是否合理,或者启动速度方面等。高可用:可用性几个9低延迟:请求必须多少时间内完成高吞吐:每秒完成多少次事务...

2019-07-28 21:11:00 101

转载 GC和垃圾回收器其二

CMSCMS是并行标记回收器,使用标记-清楚算法进行收集。适用于对时延要求较高的在线服务,不接受长时间停顿那种。但是如果服务运行较长时间,会造成严重的内存碎片。CMS收集周期:初始标记(STW):从GCRoots直接可达的老年代对象,新生代引用老年代的对象,这个过程是单线程的。...

2019-07-28 20:22:00 90

转载 从技术平台到aPaaS平台

互联网行业喜欢搞一些单词的缩写,最近一个朋友换工作,说是去搞aPaaS平台了,那么aPaaS平台是什么呢?了解下云计算aPaas是衍生在云平台之上的,如果开发一款应用,需要涉及大量基础技术或者基础设置。如果从技术层次上划分来说,分为以下几层:application层data层ru...

2019-07-27 22:59:00 428

转载 程序员如何变得靠谱

写在前面之前有位老板和我说过,大家智商是正态分布曲线的,能力上都是大差不差,同时大家都在规范化的公司里面坐着规范化的事情,能力也都差不多,那么为什么有人做的好,为什么有的人更被老板认可呢?其实无外乎就是做事靠谱,人在职场身不由己,究竟哪些东西可以让我们做起事来靠谱呢?无外乎是一些心态吧。本...

2019-07-22 20:13:00 93

转载 GC和垃圾回收器其一

什么是GCGC(Garbage Collection)垃圾回收,释放垃圾占用的空间,对堆中已经死亡或者长时间没有使用的对象进行清除和回收,防止内存泄漏。可以有效使用内存空间。什么是垃圾垃圾收集之前需要定义什么是垃圾,之后才能决定如何回收垃圾。抛开书面上介绍的几种垃圾分析算法,一步到位说...

2019-07-22 12:03:00 83

转载 理解Linux系统负荷

写在前面如果你的电脑很慢,你或许想查看一下,它的工作量是否太大了。在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行)。信息中显示"load average",它的意思是"系统的平均负荷",里面有三个数字,我们可以从中判断系统负荷是大还是小。会有三个数字它们的意思...

2019-07-21 12:46:00 162

转载 旧闻系列-SSH是怎么回事儿

写在前面前一篇文章简单写了双向加密的原理,ssh是我们使用比较多的一个命令,用于计算机之间的加密登陆,那么ssh协议是如何保证通信过程中的安全的呢?也可以反过来想下ssh为什么不会向https一样安全呢?ssh咋回事儿SSH之所以能够保证安全,原因在于它采用了公钥加密。整个过程是这样的...

2019-07-21 12:42:00 137

转载 旧闻系列-编程加密那些事儿

写在前面在上大学之前对于加密和密码的理解就是qq的password输入,以为是一串******不让别人看见就是密码了,后来有次上课老师一不小心把话题扯远了,讲起来各种暗网,洋葱头等故事,才理解原来计算机在加密这件事上那么酷,又那么多玩法,后来应该就去网上搜了下关于加密算法的东西。加密那些事...

2019-07-21 12:28:00 121

转载 旧闻系列-Unix编程哲学

写在前面这应该是大学期间读的第一本操作系统方面的书,刚开始接触编程时觉得搞操作系统才是最牛X的,所以和同学一起去图书馆找书,出来各种Windows操作图书,就找到一般Unix编程哲学感觉可以作为小说看看。Unix编程哲学关于Unix编程哲学相信大家或多或少多个角度都了解或听到过一些。比...

2019-07-21 12:07:00 108

转载 旧闻系列-简单理解TCP/IP

写在前面周末无意中发现了之前写的一些笔记,不管是技术还是感悟,看起来一些笔记还是比较透意思的,不知道当时是看到了一段文字记下来还是看了某个文章写了读后感,可以再做整理看一看。TCP/IP理解互联网就要理解网络,理解网络就要理解TCP/IP。TCP/IP模型是一系列网络协议的总称,目的就...

2019-07-21 12:00:00 119

转载 RocketMQ的事务投递

RocketMQ的事务投递这是阿里的分布式事务图:1、A服务先发送个Half Message给Brock端,消息中携带 B服务 即将要+100元的信息。2、当A服务知道Half Message发送成功后,那么开始第3步执行本地事务。3、执行本地事务(会有三种情况1、执行成功。2、执...

2019-07-20 21:38:00 125

转载 说说FactoryBean

写在前面FactoryBean有什么作用:FactoryBean是以工厂形式生成Bean,在对Bean进行修饰之后返回Bean。常用的使用场景为:根据不同的配置类型返回不同类型的处理Bean,整体上简化了XML配置等。Spring本身有70多个FactoryBean的实现,通过它...

2019-07-14 15:53:00 50

转载 一次永久代泄漏(perm泄漏)排查

写在前面网上关于perm区泄露的文章比较少,特别是对于动态类加载方面问题的分析比较少,在此记录下。perm区问题一般两种解决方案:启动时perm区问题,一般修改PermSize,MaxPermSize参数即可运行时动态生成类加载问题,这种问题比较难搞,需要关心动态加载了哪些类周末...

2019-07-14 11:56:00 459

转载 拦截编译好的类

java -classpath ".:$JAVA_HOME/lib/sa-jdi.jar" -Dsun.jvm.hotspot.tools.jcore.filter=MethodAccessorFilter sun.jvm.hotspot.tools.jcore.ClassDump <p...

2019-07-13 18:46:00 62

转载 CMS发生Full GC的几种场景

JVM垃圾回收机制:JVM所采用的Old区垃圾收集器为CMS,CMS会在以下几种情况下发生Full GC:大对象分配到老年代时,可用空间不足perm或metaspace空间不足 (JDK 8 开始HotSpot取消了perm,将类信息存放在metaspace中)晋升失败:年轻代的存...

2019-07-10 14:43:00 1323

转载 LOG4J简单配置

<?xml version="1.0" encoding="UTF-8"?><configuration status="info"> <appenders> <!--默认按天&按512M文件大小切分日志,默认最多保留...

2019-07-08 12:52:00 539

转载 从Spring事务的隔离级别说起

隔离级别(isolation)定义了事务并发的隔离程度。数据隔离级别分为不同的四种:Serializable :最严格的级别,事务串行执行,资源消耗最大;REPEATABLE READ :保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取...

2019-07-07 14:01:00 91

转载 说说Spring事务的传播机制

写在前面琪姐问了个问题,原来的方法逻辑,类似如下伪代码:updateTableA.setStatus(0);rpcOperateAccount();updateTableA.setStatus(1);相信很好理解。琪姐说将这段逻辑放到线程池中一起提交就OK(意思应该是DB落库成功...

2019-07-07 13:52:00 271

转载 架构视图模型

提出了4+1的视图模型来描述架构。4+1视图中的4,有逻辑视图、实现视图、进程视图、部署视图。其中的1,是场景。场景来负责把视图串联在一起。这种视图模型表示法是对现代化应用程序架构一个准确的描述,放在我们如今广泛使用的微服务架构中能很清晰的给出精准的定位。无论如何架构,都会涉及逻辑、...

2019-07-06 23:19:00 95

转载 为什么old涨的那么快呢?

一般大概就几种情况:新生代对象每经历依次minor gc,年龄会加一,当达到年龄阀值会直接进入老年代。阀值大小一般为15。Survivor空间中年龄所有对象大小的总和大于survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,而无需等到年龄阀值。大对象直接进入老年代。...

2019-07-06 23:01:00 206

转载 程序员怎样才算是了解技术细节呢?

写在前面前一篇文章写了程序员怎样才算是了解业务?后台有人问那程序员怎样算是了解技术了呢?技术过关需要了解技术细节吗?我觉得这个观点也挺有意思可以讨论讨论。平时我们也会私下讨论这种问题,比如认为某个高P技术一般啊,看PPT写的大而全,但是好多技术细节都不知道,光知道名词。比如PPT里面写...

2019-07-06 18:38:00 417

转载 程序员了解了哪些业务才算是懂业务呢?

程序员分类有哪些?程序员一般分两种:搞中间件或者基础架构的,搞业务架构开发业务系统的。搞中间件基础架构的这种程序员一般被认为是技术更好一些,会深入研究一些基础技术,技术深度更深一些。比如自建CDN,多云互备,长连接系统,五大中间件,linux内核开发,k8s平台等。搞业务系统的...

2019-07-04 14:43:00 2611

转载 BeanFactory和ApplicationContext的区别

Spring Bean先从SpringBean说起,Spring Beans是被Spring容器管理的Java对象,比如:public class HelloWorld { private String message; public void setMessage(St...

2019-07-02 20:21:00 61

空空如也

空空如也

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

TA关注的人

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