自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 孤独送书啦~本期送出《springboot实战》

孤独送书活动啦~ 本次送出汪云飞的 springboot实战一书。关注孤独的投机家即可参与,在公众号留言或者从菜单栏选择孤独抽奖跳转。

2020-05-28 17:00:18 3 0

原创 如何评价马士兵教育这套价值1万2的视频

课程的内容以及部分学习后的感想腾讯课堂里面的流量主内容的大致框架计划分享的博客安排马士兵教育课程具体的时间安排 腾讯课堂里面的流量主 先谈谈马老师本人,从我对Java学习开始就喜欢上他的声音,见解深入,而从整个价值一万多块的课程来看,我目前已经学习了又90天左右,大概对整个架构师的学习内容有个框架...

2020-05-05 11:01:27 648 0

原创 《大规模分布式存储系统》--杨传辉

送书啦 本月将会送出一本 《大规模分布式存储系统》–杨传辉 关注公众号留意抽奖信息。

2020-05-31 22:50:03 1 0

原创 微信公众号的模板消息如何实现

前言 相信很多读者关注了我的公众号之后很多自动回复的消息,突然感觉,腾讯做的这个消息模板还是很及时的进行推送的,而基于这套的消息推送的功能,大概如何实现,本文就开始这话题的讲解。 微信扫码登陆的实现前言链路请求分析登陆的流程分析腾讯提供的丰富接口 链路请求分析 项目里面需要引入公众号提供的依赖,...

2020-05-24 21:01:30 18 0

原创 springcloud全家桶系列

网关zuul的搭建网关的概念理解链路跟踪的原理健康检查 网关的概念理解 对外统一一个IP提供用户调用,协调整个调用的代理。这也称之为代理模式。网关也有流量网关,比如对上传的包的大小进行检查,而且可以把服务降级放到zuul来提前返回给用户,不用 走服务。还有一种路由模式,网关作为一个透明代理,服务端...

2020-05-18 17:07:53 23 0

原创 springcloud全家桶系列

hystrix feign 整合hystrix dashboard服务监控hystrix线程隔离,信号量隔离整合feign hystrix dashboard服务监控 配置如下 启动类 yml配置 hystrix线程隔离,信号量隔离 拿到信号量的可以接入请求,如果没有信号量就不能访问,做限流...

2020-05-17 21:18:15 16 0

原创 springcloud全家桶系列

springcloud全家桶SRFeign的常用调用方式Ribbon重试策略与服务恢复Hystrix原理 Feign的常用调用方式 feign面向api或者面向jar包编程,以下的依赖引入就可以接受到客户端的请求的参数,使用requestParam注解获取到客户的参数,有feign来组装URL,然...

2020-05-17 11:37:36 7 0

原创 SpringCloud全家桶HoxtonSR3

restTemplate内容总体流程ribbon基于服务器端的负载均衡feign的搭建 内容总体流程 有精力的朋友可以按照架构里面的内容自行的找资料,基本大多数都可以在官网得到非常详细的解答。以及详细的视频链接地址。 ribbon基于服务器端的负载均衡 基于IP地址进行区分的服务集群,服务器的列...

2020-05-16 17:37:12 29 0

原创 SpringCloud全家桶系列HoxtonSR3

架构系列的高可用环境搭建Eureka高可用集群环境搭建Eureka安全认证注册中心原理 Eureka高可用集群环境搭建 这里的重点无非就是Eureka的作用以及,在集群中的搭建,搭建的过程遇到非常多的问题,无非还是注解的使用,以及yml文件的配置问题,默认情况下如果要实现高可用就这里的value都...

2020-05-16 11:14:35 16 0

原创 设计模式2

设计模式策略模式工厂模式外观模式责任链模式 策略模式 从设计模式的角度确实 可以让项目维护起来更加的方便,这里就结合之前在某金融公司的项目来讲讲策略模式,这里的需求大致是如下: 现在需要对某个账号的贷款进行还款处理,由于被借贷人是多个金融机构,而每个按照级别来排序,进行还款,先还A,然后换B,直到...

2020-05-06 18:45:37 22 0

原创 如何写一个Stack Overflow的程序
原力计划

0基础课程OOM以及Stack Overflow二级目录三级目录 OOM以及Stack Overflow 里面有关于对象分配以及栈的方法区的变量,记得以前被面试过一个面试试题,主要是考量堆分配内存以及栈分配内存的区别,以及GC的时间,只要在内存有限,栈分配过多的变量,这时候就会买来得及GC就溢出,...

2020-05-06 15:05:58 47 0

原创 如何自定义注解应用在切面编程上?进阶高级程序员你需要懂!

回顾之前做了几个关于权限访问的功能,大家都会想到使用shiro进行处理,但是原生的提供的需要做适当的扩展才能满足自定义的权限控制,这时候,你就需要继承shiro的AuthorizingRealm类来实现 具体代码 @Component public class HynRealmConfig ex...

2020-02-27 23:06:07 33 0

原创 SSO依然是BAT的面试重点

yiqing期间是否你也准备着无数的面试**是的I am keepping interviewed** 上周电话面试了某B公司,印象最深的还是那个单点登录的问题,毕竟很多底层的问题以后再分享,比如聊聊AQS等,不过这节先谈谈SSO,毕竟老生常谈的东西,再次复习一下,表示对Apache的shiro...

2020-02-25 15:02:52 135 0

原创 混沌理论摘要

原文链接 提及到混沌理论,本ID 理解就是一个递归的过程,比如提及到的如何把大的趋势分解为小的趋势的过程,把大的同体结构分解为小级别的同体结构的过程。 下面的是精彩的摘要。 混沌理论和分形: 沌理论揭示的有序与无序的统一、确定性与随机性的统一,是继相对论和量子力学问世以来,本世纪物理学的第三次大革...

2019-05-25 12:29:03 265 1

转载 基于Future的java并发编程

转 https://blog.csdn.net/amd123456789/article/details/80522855 业精于勤,荒于嬉;行成于思,毁于随。—韩愈 它告诉我们,事业的成功在于奋发努力,勤勉进取,太贪玩,放松要求便会一事无成;做事情要想成功,需要反复思考、深思熟虑,而随手随意、...

2019-04-28 11:22:45 55 0

原创 ThreadLocal重新理解上路

前言 之前基于对深入理解JVM的理解,对于ThreadLocal的理解是存在弱引用,从而使得避开了本次的GC,而并没有从数据结构的层面分析,ThreadLocal的内部实现原理,本次重新上路就是针对ThreadLocal的数据结构而做出分析,从设计原理到JVM的回收,以及如何保证多线程的场景下实现...

2019-03-30 22:21:38 47 0

原创 从RocketMQ源码的Store模块分析RocketMQ

前言 前几篇都是基于RockeMQ的工具类的源码来分析其架构,功能等,本节从RocketMQ的存储方面来分析,RocketMQ是如何实现回调,高可用的。 消息追加的回调方法AppendCallback 这个的追加的消息体分为批量的以及单一的消息体两种方式,都是实现了MessageExt类,而...

2019-02-08 23:00:53 224 0

原创 从RocketMQ源码的NameSrv模块分析RocketMQ

前言 从RocketMQ启动来分析,namesrv的功能就是提供broker的注册以及client通过topic来获取routing的信息,从broker获取相应的操作过程,简单的介绍还是从源码的角度来分析,本节主要是对namesrv的主要功能,包括默认请求处理方式,集群请求处理方式,以及路由信...

2019-02-08 00:58:45 148 0

原创 如何重构老项目更加安全快捷?

前言 很对一定工作年限的读者相信都遇到把老项目重构成技术比较新的项目,比如,笔者之前就是把一些MVC的项目重构为springcloud项目等,这一路上消耗的时间不亚于重写写一个项目,后来发现了重构项目的神器,在这里供读者参考。 mybatis逆向工程 逆向工程字面意思就是反向生成工程,和hiber...

2019-02-06 09:58:23 105 0

原创 从RocketMQ的common模块分析RocketMQ

前言 从之前的几节介绍了消息中间件,以及之间的使用区别,这节将会从RocketMQ的common模块出发,分析设计了思路以及可以借鉴的代码逻辑,代码技巧等,毕竟目前好的架构师一半是来自阿里,学习阿里的这套代码规范以及设计思路,帮助读者在项目中更好的,更高层面思考模块的设计,后续将会陆续的从其他模块...

2019-02-05 17:38:09 108 0

原创 从面试中的LMAX Disruptor问题

前言 上节提及到了关于队列的生成以及使用的api从应用的角度来分析了队列的各种使用,包括常用的rabbitMQ以及性能比较好的kafka等等,而对于LMAX的介绍相对来说比较少,而本节就从源码的角度来看看面试中的应答,毕竟作为消息中间件,性能方面,lmax是毋庸置疑是性能之王,单线程可以并发600...

2019-01-29 00:25:32 326 0

原创 Redis,Kafka,ActiveMQ,RabbitMQ, JVM, lMax Disruptor 等实现的队列进行对比 -- lMax篇

前言 前几节提到的队列的实现都是基于并发量不是特别大的场景,而且需要消息消费的数据数据达到最终一致性做了折中的处理,而本节针对超高并发量的场景下使用lMax,这节就重点提及disruptor的使用,以及从各大厂对disruptor的使用情况,简单的介绍disruptor的文章。文中介绍了disru...

2019-01-26 16:52:53 314 0

原创 Redis,Kafka,ActiveMQ,RabbitMQ, JVM, lMax Disruptor 等实现的队列进行对比 --JVM篇

前言 前面章节提及到的队列的几种变形,本节就结合代码讲述JVM层面的队列的使用,也就是java原生里面支持双向阻塞的队列LinkBlockingQueue的使用。只是这里带出一个知识点就是,JVM在同一时刻只会初始化一个类,使用匿名内部类实现单例,这就支持了线程安全。具体代码如下。 秒杀队列(固定...

2019-01-21 23:07:05 489 0

原创 beanNameAware,applicationContextAware,DisposeableBean在项目中的使用

前言 今天在项目中使用了研发部对spring框架的扩展的应用,比如,实现消息队列功能的springEven,springListener,以及对上下文的扩展,实现了spring的applicationContextAware,而本节就是根据项目的扩展,综合的分析bean的生命周期,在这里,介绍项...

2019-01-21 21:04:50 216 0

原创 Redis,Kafka,ActiveMQ,RabbitMQ, JVM, lMax Disruptor 等实现的队列进行对比 --Redis篇

前言 上一节重点介绍了RabbitMQ在rabbitAdmin的使用以及结合RabbitTemplate的使用细节,从而介绍了适配器设计模式在监听器部分的应用场景,从而得出,rabbitMQ是灵活,适用性强的消息队列,而本节会重点的结合redis的使用场景来对redis重点介绍,之前的章节有介绍...

2019-01-20 22:34:24 308 0

原创 rabbitMQ里面的MessageListernerAdapter的适配器模式

前言 在前面章节提到rabbitMQ的监听器的适配模式的时候,就想找一篇关于适配器通俗易懂的文章给读者分析的。 适配器模式是将一个类的接口转换成客户希望的另外一个接口,身边很多东西都是适用于适配器模式的,笔记本的电源(也叫电源适配器),是将220V的交流电转换为笔记本电脑所需要的12V(电流先忽略...

2019-01-20 11:12:21 125 0

原创 Redis,kafka,activeMQ,RabbitMQ,JVM, lMax Disrupt等实现的队列进行对比--开篇

前言 结合前面提到的各种rabbitMQ的使用,本节开始综合的对比市场上流行的redis,kafka,activeMQ等的进行对比,附加使用的代码Demo提供参考。文章大致的结构分为,rabbitMQ的使用介绍,这里的介绍结合项目的使用源码,主要是结合MVC的使用,而其他的整合,比如spring...

2019-01-19 23:15:23 151 0

转载 rabbitmq的消息可靠投递 --下篇

文章目录 保证消息100%投递 如何保证生产者可靠性投递消息 方案一 : 消息入库,对消息状态进行打标。 方案二 : 消息延迟投递,进行二次确认,回调检查 confirm确认消息 Return消息机制 消费端限流策略 消费端ACK与重回队列 消费端的手动ACK和NACK 消费端重回队列 TTL队列...

2019-01-15 22:00:20 154 0

原创 RabbitMQ的消息可靠投递 --中篇

前言 上一节提到的问题,关于在消费端消费了消息后进行回调处理作出应答的机制,再通过RPC的方式进行调用生产端把没有正常消费的消息进行重复的投递的过程,产生的疑问都归结于,broker没有及时的作出回应的情况如何处理的问题,而本节就针对这个生产端以及broker端的应答作出详细的解说,结合上一节的内...

2019-01-13 22:47:49 82 0

原创 RabbitMQ的消息可靠投递 --上篇

前言 上一节介绍了有关rabbitmq里面常用了几种命令,以及交换机的路由规则等,生产端以及消费端之间的伪代码来介绍了各种路由规则下的消费情况,从管控台的设置,数据分析,了解到如何手动设置vhost下的交换机以及用户,队列等。这节开始就rabbitmq的高级特性进行详细的介绍,比如TTL,死信队...

2019-01-13 19:19:43 135 0

原创 RabbitMQ之渐入佳境

前言 上一节提及到的rabbitMQ提供的的三种常用命令rabbitmq-server,rabbitmq-plugins,rabbitmqctl,其中rabbitmqctl的命令最为丰富,功能支持用户的操作,交换机的操作,vhost等的操作,有关rabbitmqctl的使用可以通过在Linux系统...

2019-01-13 14:44:56 53 0

转载 CSDN站内最全的zookeeper分布式锁的讲解

1 场景描述 在分布式应用, 往往存在多个进程提供同一服务. 这些进程有可能在相同的机器上, 也有可能分布在不同的机器上. 如果这些进程共享了一些资源, 可能就需要分布式锁来锁定对这些资源的访问。 2 思路 进程需要访问共享数据时, 就在"/locks"节点下创建一个seque...

2019-01-12 12:55:53 43 0

原创 分布式锁,使用redis还是zookeeper?--中篇

前言 上篇已经详细提及到redis实现的redLock算法下的分布式锁,在项目里出现的问题以及提出的解决的方案,现在就针对这个分布式锁的话题,这节就针对zk的锁来详细说明,项目里使用的zk实现分布式锁还是很方便的,使用起来比redis要高效,安全。而且ZooKeeper是一个分布式的,开放源码的分...

2019-01-09 23:36:50 110 0

原创 分布式锁,使用redis还是zookeeper来实现? ---上篇

背景: 项目终于在使用redis的redLock算法出现了生产问题,就是master-slaver模式,线程一进入lock,而master准备写进slaver的时候down了,而另外一个线程进入了lock,这时候就出现了并发的情况出现,虽然设置了过期时间,但是这时候数据已经不一致了。为了解决这个...

2019-01-09 21:56:57 171 0

原创 RabbitM基于Linux7.5的安装以及使用

这节简单的从RabbitMQ的环境搭建开始,详细的说关于什么版本的rabbitMQ对应什么版本的Erlang版本,附带图示,假设读者已经把需要的版本以及对应的Erlang完成下载并且安装,Linux7.5的RabbitMQ的旗舰版rpm包是一键安装,非常方便。关键是针对安装完之后以下的三个重要命令...

2019-01-08 21:56:18 125 0

原创 RabbitMQ的核心概念以及AMQP协议

前言 上一节从各个常用的mq的对比,拓扑图以及集群方案来做了对比,本节就针对rabbitMQ的基本的概念再深入的探讨以及巩固,为后续搭建多活架构做准备,本系列课程将同步慕课网,如果有需求的读者,可以自行慕课网学习,探讨。 RabbitMQ是基于AMQP协议 根据之前的人工智能的项目,使用消息队列也...

2019-01-07 23:35:48 87 0

原创 RabbitMQ与KAFKA还有ActiveMQ的对比

简单的对比三种生产上常用的MQ,提到这三种肯定很多人都使用过,下面针对他们的使用来做个对比。 ActiveMQ 作为老牌的消息队列中间件,只要使用在并发场景不是特别大的情况下,性能是非常好的,而且支持JMS规范。 而在集群方面一般采用的是zookeeper来进行心跳检查,主从的架构,或者是...

2019-01-07 21:57:11 88 0

原创 Postgre查询优化 --算法篇

前言 这部分的内容也是基于上章节提到的数据库优化的各种操作,比如逻辑层面,以及物理层面的,而这节将从物理层面来介绍PG 基于算法的优化,提到PG的算法优化就从PG引以为豪的遗传算法来介绍以及对比动态规划的优缺点来分别得出结论,什么情况下使用PG得到最好的解决方案。 动态规划算法 简单的介绍动态规划...

2019-01-06 22:05:13 225 0

原创 Postgre查询优化 --功能的角度优化分析

前言 前一篇文章已经从PG的数据结构等角度分析了PG的优化处理的源码细节,这节将从功能应用层面来对PG的查询优化进行分析。重点还是放到了逻辑查询优化功能上,分别针对,操作下推,谓词改造,语义转换,非SPJ优化等等内容。 PG查询优化器之逻辑查询优化 这里的逻辑优化是针对数据库常用的优化方案进行讲解...

2019-01-06 18:14:31 365 0

原创 UML图的回顾

前言 回顾软件开发的路层,都是练习使人进步,并不是查看了几篇博客,或者看了几集视频的结果,所以练习是很重要的,而提到开发,就从第一步开始,建模概念,建模就是需要告诉别人,开发的软件如何交互,设计的架构如何交互,数据如何传递,处理,返回等,下面就从网上一介绍来总结UML的在开发过程中的作用。 领域模...

2019-01-06 15:43:55 46 0

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