设计
谁喝了我的菊花茶
IT民工、搬砖的、老实的80后
展开
-
Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
转自:https://www.cnblogs.com/fashflying/p/6908028.html从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行...转载 2019-06-06 16:55:40 · 320 阅读 · 0 评论 -
ZAB协议在Zookeeper中的实现
转自:https://zhuanlan.zhihu.com/p/27375422ZooKeeper 是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。说明ZAB 协议是为分布式协调服务ZooKeeper专门设计的一种支持崩溃恢复的一致性...转载 2018-12-17 09:52:07 · 166 阅读 · 0 评论 -
Zookeeper源码分析-Zookeeper Leader选举算法
当Leader崩溃或者Leader失去大多数的Follower,这时候zk进入恢复模式,恢复模式需要重新选举出一个新的Leader,让所有的Server都恢复到一个正确的状态。Zookeeper中Leader的选举采用了三种算法:LeaderElection FastLeaderElection AuthFastLeaderElection并且在配置文件中是可配置的,对应的配置项为ele...转载 2018-12-17 09:25:32 · 168 阅读 · 0 评论 -
maven不能下载ojdbc14-10.2.0.4.0.jar
使用maven下载包时Oracle数据库的驱动ojdbc14-10.2.0.4.0.jar是需要付费的,所以在maven中央库中是没有ojdbc14-10.2.0.4.0.jar包,我们可以通过 mvn install:install-file 把第三方jar包导入到本地的资源库中。 进入到ojdbc14-10.2.0.4.0.jar的目录中执下以下命令:mvn install:inst...原创 2015-03-26 06:59:51 · 3999 阅读 · 0 评论 -
dubbo线程模型图
整体步骤:(受限于派发策略,以默认的all为例, 以netty4为例)客户端的主线程发出一个请求后获得future,在执行get时进行阻塞等待;服务端使用worker线程(netty通信模型)接收到请求后,将请求提交到server线程池中进行处理server线程处理完成之后,将相应结果返回给客户端的worker线程池(netty通信模型),最后,worker线程将响应结果提交到clie...转载 2018-12-18 16:54:57 · 543 阅读 · 1 评论 -
分布式系统事务一般解决方案
TCC关于TCC(Try-Confirm-Cancel)的概念,最早是由Pat Helland于2007年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出。TCC事务机制相比于上面介绍的XA,解决了其几个缺点:1.解决了协调者单点,由主业务方发起并完成这个业务活动。业务活动管理器也变成多点,引入...转载 2019-03-11 23:37:33 · 224 阅读 · 0 评论 -
布隆重过滤器
直观的说,bloom算法类似一个hash set,用来判断某个元素(key)是否在某个集合中。和一般的hash set不同的是,这个算法无需存储key的值,对于每个key,只需要k个比特位,每个存储一个标志,用来判断key是否在集合中。算法:1. 首先需要k个hash函数,每个函数可以把key散列成为1个整数2. 初始化时,需要一个长度为n比特的数组,每个比特位初始化为03. 某个ke...原创 2019-03-18 10:24:53 · 83 阅读 · 0 评论 -
Redis的几种部署方式及持久化策略
Redis部署1.单机模式优点:架构简单,部署方便; 高性价比:缓存使用时无需备用节点(单实例可用性可以用supervisor或crontab保证),当然为了满足业务的高可用性,也可以牺牲一个备用节点,但同时刻只有一个实例对外提供服务; 高性能。缺点:不保证数据的可靠性; 在缓存使用,进程重启后,数据丢失,即使有备用的节点解决高可用性,但是仍然不能解决缓存预热问题,因此不适...原创 2019-03-18 12:20:05 · 10008 阅读 · 5 评论 -
Redis总结
本文围绕以下几点进行阐述1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解决redis的并发竞争问题正文1、为什么使用redis分析:博主觉得在项目中使用redis...原创 2019-03-18 12:31:48 · 84 阅读 · 0 评论 -
RocketMQ部署及刷盘机制
RocketMQ部署结构RocketMQ关键特性(1). 所有数据单独存储到一个 Commit Log,完全顺序写,随机读。(2). 对最终用户展现的队列实际只存储消息在CommitLog的位置信息,并且串行方式刷盘。这样做的好处如下:(1). 队列轻量化,单个队列数据量非常少。(2). 对磁盘的访问串行化,避免磁盘竟争,不会因为队列增加导致IOWAIT增高。每个方...原创 2019-03-19 10:34:29 · 1523 阅读 · 0 评论 -
RocketMQ一些概念的定义
Topic消息主题,一级消息类型,通过 Topic 对消息进行分类。详情请见Topic 与 Tag 最佳实践。Message消息,消息队列中信息传递的载体。Message ID消息的全局唯一标识,由消息队列 RocketMQ 系统自动生成,唯一标识某条消息。Message Key消息的业务标识,由消息生产者(Producer)设置,唯一标识某个业务逻辑。Tag消...转载 2019-03-19 13:26:28 · 1171 阅读 · 0 评论 -
Tcp连接创建及断开过程
TCP三次握手创建连接•A 机器发出一个数据包并将 SYN 置 l ,表示希望建立连接。这个包中的序列 号假设是 x。•B 机器收到 A 机器发过来的数据包后,通过 SYN 得知这是一个建立连接的 请求,于是发送一个响应包并将 SYN 和 ACK 标记都置 l。假设这个包中的 序列号是 y,而确认序列号必须是 x+l ,表示收到了 A 发过来的 SYN。在 TCP 中, SYN 被当...原创 2019-03-20 10:06:58 · 233 阅读 · 0 评论 -
一次完整的HTTP网络请求过程详解
0.前言从我们在浏览器的地址栏输入http://blog.csdn.net/seu_calvin后回车,到我们看到该博客的主页,这中间经历了什么呢?简单地回答这个问题,大概是经历了域名解析、TCP的三次握手、建立TCP连接后发起HTTP请求、服务器响应HTTP请求、浏览器解析html代码,同时请求html代码中的资源(如js、css、图片等)、最后浏览器对页面进行渲染并呈现给用户。下面分别...转载 2019-03-20 11:26:13 · 267 阅读 · 0 评论 -
为什么Netty使用NIO而不是AIO?
NIO模型同步非阻塞NIO有同步阻塞和同步非阻塞两种模式,一般讲的是同步非阻塞,服务器实现模式为一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。AIO模型异步非阻塞服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理,注:AIO又称为NIO2.0,在JDK7才...转载 2019-03-26 10:24:09 · 373 阅读 · 0 评论 -
异步任务轮询设计
需求 处理时间较长的请求,需要转换成异步执行,而前端通过轮询来获得任务的进度,以便告知用户需要等待的时长。实践发现,不同任务的轮询逻辑往往是相同的,不同点仅在于任务类型和任务参数(个数、顺序)。因此,可以设计一种通用的异步任务轮询接口,来复用轮询逻辑。异步任务流程 异步任务的流程见下图。前端第一次请求执行任务,此任务为异步,后端会返回一个结果,使得前端去执行轮询。 ...转载 2019-04-01 23:46:03 · 2504 阅读 · 0 评论 -
银行支付系统大小额(一代支付)、超级网银(二代支付)
转自:http://news.zol.com.cn/622/6224663.html|中国的支付清算有两套体系 当你去ATM取钱时,用的是央行的CNAPS(中国现代化支付清算系统) 当你用支付宝买买买时,用的是第三方支付的清算系统 这里先介绍第一部分:CNAPS|当你在ATM取钱时,银行都做了什么?我们先拿一个ATM取钱的例子来说明跨行业务的过程。假如你拿着...转载 2019-06-03 12:51:17 · 31551 阅读 · 10 评论 -
HTTP长连接、短连接究竟是什么?
1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠地传递数据包,使得网络上接收端收到发送端所发出的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。2. 如何理解HTTP协议是无状态的...转载 2018-12-18 16:52:16 · 128 阅读 · 0 评论