4 等一杯咖啡

尚未进行身份认证

我要认证

未曾踏足山巅,时常坠落低谷,前者追逐梦想,后者受益良多...

等级
TA的排名 1w+

Dubbo源码——源码阅读环境搭建

I. 前言好久没写博客了,Markdown都有些生疏了,惭愧!终于又看起源码了,其实大论文还有好多没写,但我就是喜欢在该干些什么的时候跑去干点别的…这次准备对Dubbo下手了,好好研究一下,预览了一下感觉看完会有很多收获,特征是对Spring源码的理解可能更加深入。挺想在中间件那种团队,高大上的软件设计,不被业务所拘泥。II. 环境准备系统:Mac OSIDEA 2018.3 (好久...

2020-04-02 14:59:39

细说分布式锁实现

Redis分布式锁获取锁当一个进程前来请求分布式锁,首先通过 setnx 来尝试获取锁,如果获取锁成功,OK,设置好过期时间,可以返回去干自己事情了。如果 setnx 没获取成功,事情麻烦了,说明肯定有人拿到锁了。这个时候就要看看拿锁的进程是不是该让让位了——比较当前时间和锁里设置的过期时间(通过 get 查看),如果没到过期时间,好吧,自己就只好放弃或者继续等待了。如果发现当前时间已经超过过...

2019-07-29 12:10:11

管理后台服务通用化设计拙见

前言在公司实习两个多月,主要接手的都是管理后台的需求。一般情况下,管理后台很容易和CRUD联想到一起,这一类操作的特点就是代码基本相似,做一些简单的增删改查接口,不同的只是对于不同数据表的更改。不过针对这样的一个管理后台,相当于业务配置中心的服务,功能简单但又十分重要,往往会花费较多的经历在写一些重复相似的代码上,本文就来讲讲相关的改进工作。为了避免涉及商业隐私,我们依然以上一篇文章大型工程微...

2019-09-05 15:14:30

大型工程微服务架构设计拙见

现在大型项目的设计架构都是进行服务精细化、微服务的设计。最近也是接触到真实亿级流量项目,大致记录一下较为优秀的项目结构设计。不过师傅也说,总有更精妙的架构设计。为了方便说明,这里举个例子,比如我们有个简单的网售咖啡网站,网售咖啡平台项目名为 祺平(qpcoffee)。我们整个咖啡零售分为管理后台、首页门户、订单支付、发货售后等等服务,每个服务我们可以对应创建一个微服务项目,来实现所有的功能。T...

2019-07-31 01:31:22

Redis设计与实现——数据结构与对象

前言Redis是一个KV数据库,常用于实现缓存,因为基于内存实现,所以速度极快。最近阅读《Redis设计与实现》一书,整理几篇文章,本文介绍Redis数据结构相关内容。I. 数据结构我们通常说的Redis支持的数据类型有五种,包括字符串、哈希、列表、集合、有序集合,其实这只是存储的数据类型,底层用于存储数据的数据结构并不是这些,而是动态字符串(SDS)、链表、字典(哈希表)、跳跃表、整数集合...

2019-06-30 01:33:29

版本管理Git相关

前言最近要开始正式进行融入团队开发,对于 Git 的使用一直也不是特别清楚,基本的多人协作也比较模糊。所以照着廖雪峰老师的 Git 教程 系统的学习了一下,内容还是十分清晰有用的。这里做一些简单归纳,具体命令细节可以查看原文。当然,大多数情况我们可能并不直接使用命令行操作 Git,之前用过一款图形化工具 SourceTree 推荐给大家,当然现在 VsCode 和 IDEA 也都提供可视化操作...

2019-06-20 10:47:40

TensorFlow1.x最佳实践:Dataset API+Keras Model+TF Train

前言关于深度学习框架,主流的几个TensorFlow、PyTorch以及Keras都有所使用,由于在深度学习领域自己也只算个入门级选手,所以本文只从一个AI新手的角度去尝试分享一些使用框架编程的实践经验。至于标题最佳实践,那也纯粹有些哗众取宠之意,文章对于能够玩转各种框架API的大佬们,也许会贻笑大方。除此以外,本文相当于一个搬运工,并不讲解具体的使用细节,当然会推荐一些已经介绍的很好的文章,看...

2019-06-04 15:08:33

JavaEE进阶——ZooKeeper和Curator

I. 简介ZooKeeper是一个分布式的,提供分布式应用程序协调服务的一个项目。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。II. 工作机制ZooKeeper从设计模式角度理解:是基于观察者模式的分布式服务管理框架,它负责存储和管理所有节点都关心的数据...

2019-05-20 20:39:05

美团Leaf源码——snowflake模式源码解析

前言上一篇文章介绍了如何使用Leaf的号段模式生成分布式全局唯一id,参照下图我们简单总结一下。当我们部署Leaf集群时(图中是3个),每个节点起初都包含一个双 buffer,也就是双号段。当有请求过来时,每个节点都会去数据库查询按照初始的DB中的step去更新最大id,从而获取到一个号段,然后每个节点当第一个号段用到超过10%的时候再异步准备第二个号段。所以按照图中的理解可以认为左中右三个节点...

2019-05-19 17:12:51

美团Leaf源码——号段模式源码解析

前言I. 导入项目Leaf由Maven构建,源码地址:https://github.com/Meituan-Dianping/Leaf首先先Fork官方仓库到自己的仓库,我的源码注释版:https://github.com/MrSorrow/Leaf下载源码,导入IDEA,导入成功依赖下载完成后项目结构大致如下:II. 测试项目使用号段模式「创建数据库表」DROP TABLE I...

2019-05-15 19:30:06

电商秒杀系统相关实现

本文主要就电商秒杀系统所涉及的相关技术进行探究,相关Demo地址如下:- 个人实现版本:[https://github.com/MrSorrow/seckill](https://github.com/MrSorrow/seckill)- Github Star较高的版本,第一版也是基于慕课网的:[https://github.com/qiurunze123/miaosha](https://github.com/qiurunze123/miaosha)本Demo实现了电商项目的秒杀功能,主要内容包

2019-05-11 14:37:19

Spring Boot源码——源码阅读环境搭建

前言阅读Spring Boot源码,需要先有所了解Spring Framework相关知识或者源码细节等,可以参考我之前的相关博客内容。接下来,主要着手研究Spring Boot这一块,如果还不知道怎么用Spring Boot,建立花费一些时间入门一下。本文主要是阅读源码的第一步,搭建阅读Spring Boot源码的环境,我们依然使用的是IDEA工具。环境准备JDK8+Maven3.5...

2019-04-21 16:32:41

Spring源码——MVC流程

前言最近回顾了一下Spring源码,准备用思维导图的方式简单的将整个源码内容的流程展示出来,思维导图、图片等文件更新在https://github.com/MrSorrow/spring-framework仓库中,阅读博客不方便可以直接下载。思维导图使用MindMaster制作而成,可以下载导入查看。如果有知道如何在markdown中展示思维导图或矢量图的朋友,希望能评论告知

2019-04-19 15:12:50

Spring源码——声明式事务流程

前言最近回顾了一下Spring源码,准备用思维导图的方式简单的将整个源码内容的流程展示出来,思维导图、图片等文件更新在https://github.com/MrSorrow/spring-framework仓库中,阅读博客不方便可以直接下载。思维导图使用MindMaster制作而成,可以下载导入查看。如果有知道如何在markdown中展示思维导图或矢量图的朋友,希望能评论告知

2019-04-16 21:06:24

Spring源码——动态AOP实现流程

前言最近回顾了一下Spring源码,准备用思维导图的方式简单的将整个源码内容的流程展示出来,思维导图、图片等文件更新在https://github.com/MrSorrow/spring-framework仓库中,阅读博客不方便可以直接下载。思维导图使用MindMaster制作而成,可以下载导入查看。如果有知道如何在markdown中展示思维导图或矢量图的朋友,希望能评论告知

2019-04-14 23:15:29

Spring源码——ClassPathXmlApplicationContext流程

前言最近回顾了一下Spring源码,准备用思维导图的方式简单的将整个源码内容的流程展示出来,思维导图、图片等文件更新在https://github.com/MrSorrow/spring-framework仓库中,阅读博客不方便可以直接下载。思维导图使用MindMaster制作而成,可以下载导入查看。如果有知道如何在markdown中展示思维导图或矢量图的朋友,希望能评论告知

2019-04-10 15:49:16

Spring源码——XmlBeanFactory流程

前言最近回顾了一下Spring源码,准备用思维导图的方式简单的将整个源码内容的流程展示出来,思维导图、图片等文件更新在https://github.com/MrSorrow/spring-framework仓库中,阅读博客不方便可以直接下载。思维导图使用MindMaster制作而成,可以下载导入查看。如果有知道如何在markdown中展示思维导图或矢量图的朋友,希望能评论告知 :)本文主要关...

2019-04-09 14:27:26

排序——堆排序和TopK

前言堆排序与TopK的问题,面试中还是经常问的,索性也整理一下。下面是徒手写的,供参考.堆排序public void heapSort(int[] array) { // 先构造一个大顶堆 int N = array.length - 1; for (int i = (N - 1) / 2; i >= 0; i--) { sink(array, i, N); } // ...

2019-04-02 10:56:54

MySQL——深入理解事务与锁

前言本文内容主要参考自《高性能MySQL》、《深入浅出MySQL》、《MySQL DBA 修炼之道》书中的关于事务与锁相关章节,其中《深入浅出MySQL》讲的最为深入,这篇博客算是几本书的综合提炼以及个人理解补充。 上次主要讲了MySQL的索引与 EXPLAIN 的用法,是MySQL中非常重要的一部分,这次将进入下一部分,有关数据库的设计。I. 事务特性ACIDα. 事务定义事务是数据库管...

2019-03-25 10:35:46

MySQL——三大范式与数据库设计

前言本文内容主要参考自《MySQL DBA 修炼之道》书中的第四章,算是原书的实践与补充。 上次主要讲了MySQL的索引与 EXPLAIN 的用法,是MySQL中非常重要的一部分,这次将进入下一部分,有关数据库的设计。I. 三大范式α. 范式含义范式是数据库规范化的手段,那么啥又是数据库规范化 ?数据库规范化通俗的来讲就是经过合理的设计,将大表分成很多有关联关系的小表,这样来去除数据的冗...

2019-03-22 22:30:20

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 回归勋章
    回归勋章
    授予重新回归CSDN的真爱粉用户,我们不会让你失望哒!
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。