自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小程故事多的博客

一名工作十多年的技术老兵,永保初心!合著作品《深入分布式缓存--从原理到实践》

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

原创 重磅:《高可用可伸缩微服务架构》预售了

购书地址:https://item.jd.com/12585284.html近年来微服务架构已经成为大规模分布式架构的主流技术,越来越多的公司已经或开始转型为微服务架构。《高可用可伸缩微服务架构:基于Dubbo、Spring Cloud和Service Mesh》不以某一种微服务框架的使用为主题,而是对整个微服务生态进行系统性的讲解,并结合工作中的大量实战案例为读者呈现一本读完即可实际上手应...

2019-04-12 16:40:47 1297 2

原创 一款实用延迟队列的自研历程

文章原创作者:北京哗啦啦 基础架构部架构师 王晓鹏文章推荐人:程超一、背景一款技术产品必定有其使用场景,不然代码写的再好也没有用武之地,那么首先我们要先来了解一下,在什么情况下会用到延迟队列呢?当订单一直处于未支付状态时,如何及时的关闭订单,并退还库存?如何定期检查处于退款状态的订单是否已经退款成功?新创建店铺,N天内没有上传商品,系统如何知道该信息,并发送激活短信?等等以上业务...

2018-12-14 15:16:21 1141

原创 Netflix Conductor源码分析--Client层源码分析

一、Client层总体介绍在正式介绍Client层源码前,我们先来看一下如何在client端与server端通信,demo代码如下:TaskClient taskClient = new TaskClient();taskClient.setRootURI("http://localhost:8080/api/"); //Point this to the server API...

2018-12-10 14:12:13 1363 1

原创 深入浅出Netflix Conductor使用

Netflix Conductor框架是典型的服务编排框架,通过Conductor还可以实现工作流和分布式调度,性能非常卓越。关于Conductor的基本概念在 https://netflix.github.io/conductor/intro/ 文中已经有深入介绍,本篇将以实战案例为出发点深入介绍Conductor的使用。###一、Conductor的功能全景图在正式使用之前我们先来了解...

2018-10-25 14:40:41 21252 8

原创 Log4j2的性能为什么这么好?

**原创:詹嵩 某公司架构部中间件架构师 校对:程超 某公司架构部中间件负责人** 一、logback和log4j2压测比较1、logback压测数据logback压测数据,50个线程,500万条日志写入时间。logback:messageSize = 5000000,threadSize = 50,costTime = 27383mslogback:...

2018-08-15 15:59:56 9964 5

原创 分布式理论:CAP是三选二吗?

CAP是什么? CAP理论,被戏称为[帽子理论]。CAP理论由Eric Brewer在ACM研讨会上提出,而后CAP被奉为分布式领域的重要理论[1] 。分布式系统的 CAP 理论:首先把分布式系统中的三个特性进行了如下归纳: ● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的 值。(等同于所有节点访问同一份最新的数据副本)● 可用性(A):在...

2018-04-01 11:20:12 1264

原创 由参加领域驱动大会与自己所想的

2017首届领域驱动技术大会一直是我非常期望的,要非常感谢右军赠送的门票能够让我领略大会风采。这届大会组织者非常用心,组织了非常多的话题可供探讨,确实大会的内容给我带来的感觉是震撼的,我之前对领域的了解也仅从《领域驱动设计》以及《实现领域驱动设计》这两本书中有过学习,以及在实现微服务生态体系的过程中有过一些接触。在大会的整个进程中,听了很多老师不同主题的演讲,让我印象极为深刻的还是:张逸老师的《Bo

2017-12-13 09:02:15 687

原创 都在说微服务,那么微服务的反模式和陷阱是什么(三)

都在说微服务,那么微服务的反模式和陷阱是什么(一) http://blog.csdn.net/u013970991/article/details/78079910都在说微服务,那么微服务的反模式和陷阱是什么(二) http://www.jianshu.com/p/c76f7f234a31 九、通信协议使用的陷阱在微服务架构体系中要求每个服务都是独立布署,这就意味着服务之间会有通信,也就是

2017-09-26 09:55:37 3075 6

原创 都在说微服务,那么微服务的反模式和陷井是什么(二)

都在说微服务,那么微服务的反模式和陷井是什么(一) http://blog.csdn.net/u013970991/article/details/78079910 六、无因的开发者陷阱名字来自詹姆斯·迪恩演的电影《无因的反叛》(Rebel Without a Cause),一个问题青年因为错误的原因做了错误的决定。很多架构师和开发者在微服务的开发中权衡利弊, 比如服务粒度和运维工具,但是基

2017-09-26 09:53:04 2525 1

原创 都在说微服务,那么微服务的反模式和陷井是什么(一)

前言网上看到一本关于微服务反模式的电子书,看后感觉内容非常棒,于是我决定分阶段翻译成中文书,翻译的目的也是想帮助想深入了解微服务的朋友,由于英文水平有限,如有翻译不对之处希望多留言指正。 书籍英文目录如下 书籍中文目录如下: 1、数据驱动的迁移反模式 1.1、太多的数据迁移 1.2、功能分割优先,数据迁移最后 2、超时反模式 2.1

2017-09-24 21:22:18 4606 7

原创 OpenTracing语义标准规范及实现

注:本文转自好友吴晟的两篇译文 ,译文原文如下: https://github.com/opentracing-contrib/opentracing-specification-zh/blob/master/semantic_conventions.md https://github.com/opentracing-contrib/opentracing-specification-z

2017-09-03 14:14:50 10473

原创 最近一个多月我学习的关于数据双活的文章与书籍

一、Mysql数据库双活1、Mysql binlog介绍官网: https://dev.mysql.com/doc/refman/5.5/en/binary-log.html中文: * http://www.cnblogs.com/Richardzhu/p/3225254.html * http://www.cnblogs.com/martinzhang/p/3454358.html2、阿里

2017-08-18 15:41:22 4046 5

原创 微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布

在项目迭代的过程中,不可避免需要”上线“。上线对应着部署,或者重新部署;部署对应着修改;修改则意味着风险。目前有很多用于部署的技术,有的简单,有的复杂;有的得停机,有的不需要停机即可完成部署。本文的目的就是将目前常用的布署方案做一个总结。 一、蓝绿布署Blue/Green Deployment(蓝绿部署)1、定义蓝绿部署是不停老版本,部署新版本然后进行测试,确认OK,将流量切到新版本,然后老

2017-08-11 10:32:07 10075 5

原创 技术书写作你要知道的几件事

写作是非常系统性的工程,需要作者和策划一起设计写作的路径,根据读者的阅读情景、需求考虑内容的呈现形式。如果可以切实从读者出发,首先满足知识性需求,其次满足阅读的舒适度,那么这本书应该不差。我根据评审的书稿,简单总结技术类图书常见的一些问题,希望大家在写作的时候注意避免。1、标题下无综述性语句章节开篇(一级和二级标题下)没有综述性内容,尤其纯技术书作者往往直接开始写内容,这样的作者往往缺乏整体性、全局

2017-08-09 22:10:21 2062 5

原创 好玩的Raft动画演示,原理秒懂

关于Raft原理,许多朋友也许不是很明白原理,下面的地址是一个好玩的Raft动画,看完后能够很快的掌握Raft原理: http://thesecretlivesofdata.com/raft/动画中的一些概念和简要原理总结如下: 一、Raft原理在Raft中,每个结点会处于下面三种状态中的一种:1、follower:所有结点都以follower的状态开始。如果没收到leader消息则会变

2017-08-03 07:32:03 3812

原创 小程聊微服务-数据抽取那点事(一)

一、前言我们在《微服务是在双刃剑 http://www.jianshu.com/p/82ec12651d2d 》中提到了当我们将应用服务化以后,很多在单块系统中能够开展的数据统计和分析业务将会受到很大程度的影响,本文将延续上一篇文章深入分析服务化后,作为后端的数据统计和分析如何做。注:本文的数据库是基于Oracle数据库 二、服务化后的现状分析拿一个简单的快捷支付系统为例,服务化后的系统调用

2017-07-05 16:39:45 4662 3

原创 看来微服务就是一把双刃剑

微服务是银弹吗?自2014年“微服务”一词真是越来越火,不谈Microservices彷佛就out了,那么我们先来看微服务具有哪些特点:组件以服务的形式提供围绕业务功能进行组织强化终端与弱化管道产品而不是项目独立布署单一职责去中心化DevOps与组织架构 我要讲的故事开始了A公司的技术架构体系目前还是以集群扩展体系为主,我们可以看下图所示,在这种体系结构中,可以看到应用都是单块结

2017-06-13 22:04:16 8456 14

原创 跟着小程学微服务-Mock自动化系统的原理及实现

一、前言在之前的文章 http://blog.csdn.net/u013970991/article/details/54862772 中已经介绍了“自动化Mock系统0.9版本”,今天我将和大家一起探讨我们的“自动化Mock系统1.0版本”。 二、测试人员面临的测试问题我公司目前用的是基于Dubbo的微服务改造,服务之间的调用链路冗长,每个服务又是单独的团队在维护,每个团队又在不断的演进

2017-06-02 13:18:03 8132 3

原创 JAVA并发全景图1.1版本

感谢微信群“Spring Boot那些事”兄弟们的热心整理和总结

2017-05-24 14:00:12 3404 5

原创 小程聊微服务-自己动手扩展分布式调用链

一、说在前面微服务是当下最火的词语,现在很多公司都在推广微服务,当服务越来越多的时候,我们是否会纠结以下几个问题:面对一笔超时的订单,究竟是哪一步处理时间超长呢?数据由于并发莫名篡改,到底都谁有重大嫌疑呢?处理遗漏了一笔订单,曾经是哪个环节出错把它落下了?系统莫名的报错,究竟是哪一个服务报的错误?每个服务那么多实例服务器,如何快速定位到是哪一个实例服务器报错的呢?现在很多系统都要求可用

2017-05-17 15:05:27 9453 7

原创 再谈缓存穿透、缓存并发、热点缓存之最佳招式

一、前言在之前的一篇缓存穿透、缓存并发、缓存失效之思路变迁文章中介绍了关于缓存穿透、并发的一些常用思路,但是个人感觉文章中没有明确一些思路的使用场景,本文继续将继续深化与大家共同探讨,同时也非常感谢这段时间给我提宝贵建议的朋友们。说明:本文中提到的缓存可以理解为Redis。 二、缓存穿透与并发方案相信不少朋友之前看过很多类似的文章,但是归根结底就是二个问题:如何解决穿透如何解决并发当并

2017-04-10 19:11:19 7379 1

原创 野谈系列之高性能可定制化分布式发号器

刘兵,花名玄靖,开源技术爱好者,高性能Redis中间件NRedis-Proxy作者,目前研究方向为java中间件,微服务等技术。 一、什么是分布式发号器说起分布式发号器的前生今世,咱们应该感恩这个时代;随着互联网在中国越来越普及化,单机系统或者一个小系统已经无法满足需要,随着用户逐渐增多,数据量越来越大,单个应用或者单个数据库已经无法满足需求,在应用以至于微服务来临,在数据库存储方面分库分表来

2017-04-06 12:45:14 5339 4

原创 由学习《软件设计重构》所想到的代码review(二)

我们接第一篇 由学习《软件设计重构》所想到的代码review(一) 来继续说明在代码review中,有哪些属于“层次结构”中的坏味道。注:通过上图咱们看到了在层次结构中有九大问题点,咱们就从中找出三个典型的问题点给与分析和解释。 一、缺失的层次结构问题点:public Insets getBorderInsets(Component c, Insets insets) { if(c

2017-03-05 18:48:24 2468 1

原创 由学习《软件设计重构》所想到的代码review(一)

前言对于一个程序员来讲如何来最直接的来衡量他的技术能力和产出呢?我想最直观的作法是看他的代码编写能力,就拿我经常接触的一些程序员来看,他们买了很多技术重构类书籍,但是看完后代码编写能力并没有显著提高。有人说可以用代码review工具啊,但是像市面上的这些代码review工具,只能帮助我们解决表面的bug和规范点,还无法帮助我们发现更深层次的设计问题。下面我将结合《软件设计重构》这本书谈谈在进行代码

2017-02-28 11:09:19 3443

原创 Git常用命令速查手册

命令不断更新中…… Git的四个组成部分1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件g

2017-02-27 21:04:17 1904

原创 Faas,又一个未来?

经同事独家授权,原创发表此文 作者说明: 苗立尧 易宝支付运维工程师,热爱Kubernetes,对容器生态圈具有浓厚兴趣 前言云计算时代出现了大量XaaS形式的概念,从IaaS、PaaS、SaaS到容器云引领的CaaS,再到火热的微服务架构,以及现在越来越多被谈起的Serverless和FaaS,我们正在经历⼀一个技术飞速变革的时代。 一、什么是Faas云计算时代出现

2017-02-26 21:18:35 22280 7

原创 小程聊微服务-增艺眼中的自动化测试

如果说“生活不只有眼前的苟且,还有诗和远方”的话,那么自动化测试可以说是很多测试人员心中的“诗和远方”。 “诗和远方”OR“禁果”测试自动化,需要持续改进。但由于其本身是一种过于激动人心的想法:用程序去测试程序——解放了测试人员的生产力,节省大量的人力成本,这就有点“禁果”的意思了。一个常见的行动模式是:在实施自动化测试时,设定一些量化指标,例如根据业务、接口、模块设置的覆盖率。技术团队在完成

2017-02-08 16:48:17 2381

原创 小程聊微服务-基于dubbo的mock测试系统

一、说在前面基于微服务或者SOA的自动化测试系统每个公司都有自己的特有的,我今天就主要介绍一下,我们研发的一套mock测试系统。 二、目前面临的问题1、测试人员面临的测试问题我公司目前用的是基于Dubbo的微服务改造,服务之间的调用链路冗长,每个服务又是单独的团队在维护,每个团队又在不断的演进和维护各个服务,那么对测试人员将是非常大的挑战。测试人员每次进行功能测试的时候,测试用例每次都需

2017-02-04 14:10:31 10888 4

原创 小程聊微服务--微服务思想

前言一直对微服务非常感兴趣,因为公司的架构改造正好有机会能够接触微服务,买来一些书,请教了很多微服务大牛同时自己也做了很多总结,写成了80页ppt,算是我对微服务的一个认识吧,微服务本身不同的人有不同的理解,而我就从我自己的角度来谈谈微服务是什么。目前市面上的不少书或者不少相关文章写的都是框架的使用,或者架构的介绍,其实对于刚入门不久的同学来说很容易造成微服务就是一堆框架和组件的堆砌,于是今天我将

2017-01-20 16:16:39 10103 9

原创 小程眼里的微服务

最近一直在研究微服务有了一点小小的成果,前段时间给公司部门同事做了分享,在此将ppt发出来与大家分享。

2016-12-13 14:19:30 5466 11

原创 Martin Fowler关于微服务的原文翻译(一)

原文如下:http://martinfowler.com/articles/microservices.html微服务一个新的架构术语“微服务架构”一词是在过去几年里涌现出来的,它用于描述一种独立部署的软件应用设计方式。这种架构方式并没有非常明确的定义,但有一些共同的特点就是围绕在业务能力、自动化布署、端到端的整合以及语言和数据的分散控制上面。“微服务”- 这是在软件架构领域这个非常拥挤的街道上,冒

2016-11-25 14:23:27 24956 4

原创 NRedis-Proxy 高性能Redis 中间件服务

受飞凡电商技术负责人刘兵先生的独家授权,在csdn博客我原创发表《NRedis-Proxy 高性能Redis 中间件服务》的架构原理,以及项目开源介绍。 一、 NRedis-Proxy 介绍NRedis-Proxy 是一个Redis中间件服务,第一个Java 版本开源Redis中间件,无须修改业务应用程序任何代码与配置,与业务解耦;以Spring为基础开发自定义标签,让它可配置化,使其更加容

2016-11-12 20:18:58 12981 2

原创 JVM垃圾回收全景图

由于图片没有放大功能,大家要看清晰的图还需要另存为到本地再查看

2016-10-20 16:16:13 2096

原创 JAVA线程使用全景图

晚上在家利用二个小时时间整理了JAVA线程使用的全景图供大家参考,如果有不妥之处,请大家及时指正。另外,由于图片没有放大功能,大家要看清晰的图还需要另存为到本地,再看如果感觉好,请打赏支持,谢谢

2016-10-20 11:44:01 4193 2

原创 从0到1起步-跟我进入堆外内存的奇妙世界

堆外内存一直是Java业务开发人员难以企及的隐藏领域,究竟他是干什么的,以及如何更好的使用呢?那就请跟着我进入这个世界吧。 一、什么是堆外内存1、堆内内存(on-heap memory)回顾 堆外内存和堆内内存是相对的二个概念,其中堆内内存是我们平常工作中接触比较多的,我们在jvm参数中只要使用-Xms,-Xmx等参数就可以设置堆的大小和最大值,理解jvm的堆还需要知道下面这个公式:堆内内存

2016-10-12 18:28:25 8509 5

原创 淘宝Tedis组件究竟是个啥(一)

淘宝的Tedis组件究竟是个啥呢?可能有一些朋友没有听过这个名字,有一些朋友会经常使用,那么今天我就来和大家深入分析一下,它的使用和原理。 一、Tedis简介Tedis是另一个redis的java客户端,Tedis的目标是打造一个可在生产环境直接使用的高可用Redis解决方案。特性如下: * 高可用:Tedis使用多写随机读做HA确保redis的高可用 * 高性能:使用特殊的线程模型,使r

2016-10-07 17:46:34 7799 1

原创 测试人员的核心能力与素质

声明:该文不是我的原创作品,是我的同事魏增艺的大作,独家授权我来进行发表。 原文链接:http://www.jianshu.com/p/60e28cf160b9在《测试人员的角色》一文的最后,我们相信优秀的测试人员是项目的前灯,是整个研发系统的反馈回路。那么什么是优秀的测试人员呢?具体说来,具备哪些核心能力与素质的测试人员才能胜任这样的角色呢?对于能力模型,例如常见的“冰山”模型、“洋葱圈”模型

2016-10-06 18:31:09 5402 1

原创 测试思维是怎样的一种思维?

**声明:该文不是我的原创作品,是我的同事魏增艺的大作,独家授权我来进行发表。 原文链接:http://www.jianshu.com/p/e47006717527 **平时和测试团队讨论一些基本认知问题的时候,总绕不开这个问题:测试思维是怎样的一种思维。首先,为什么总绕不开呢?测试被视为研发系统的反馈回路,其所有活动的背后是一种区别于领导层、产品经理、开发人员的思考。在研发团队中,每个角色都提

2016-10-06 18:24:05 2124 1

原创 利用多写Redis实现分布式锁原理与实现分析

在我写这篇文章的时候,其实我还是挺纠结的,因为我这个方案本身也是雕虫小技拿出来显眼肯定会被贻笑大方,但是我最终还是拿出来与大家分享,我本着学习的态度和精神,希望大家能够给与我指导和改进方案。 一、关于分布式锁关于分布式锁,可能绝大部分人都会或多或少涉及到。 我举二个例子: 场景一:从前端界面发起一笔支付请求,如果前端没有做防重处理,那么可能在某一个时刻会有二笔一样的单子同时到达系统后台。场

2016-10-02 08:26:57 27084 14

原创 究竟怎样写代码才算是好代码

今天让我们来谈谈代码吧。代码重要吗?当然,代码就是设计(Jack W.Reeves, 1992);代码是最有价值的交付物。我们需要好代码吗?在给“好代码”下个定义之前,这个问题无法回答。那么,究竟什么是好代码?看下面这段英文解释: ‘Good code’ is code that works, is bug free, and is readable and maintainable. Some

2016-09-21 16:05:06 15351 8

空空如也

空空如也

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

TA关注的人

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