
理论交流
文章平均质量分 64
小书go
一切好与不好都随风而去
展开
-
设计一个mq中间件,不得不考虑这些
mq简介mq 全称message queue,也叫消息队列。通俗来讲也就是一个队列,这个队列用来存储消息的。生产者负责往队列里投递消息,消费者在队列中取消息。在分布式应用架构中,常用来做应用的解耦。为什么用mq解耦。例:订单支付成功,需要给会员卡积分,优惠券核销,扣减库存,通知商家发货等。如果使用传统的方式,需要在订单支付成功后,需要与这么多系统发生交互。使用消息队列后,只需要各自需要订单...原创 2020-04-06 14:07:49 · 1115 阅读 · 0 评论 -
正确的redis分布式锁实现方式-Java
正确的redis分布式锁4种实现方式-Java实现原理redis 实现分布式锁主要用到的是 redis 的一个命令 setnx (如果key不存在就设置成功,如果key存在则设置失败) 和 setex(为key设置超时时间) 。方案1 - 原生 redis java客户端 Jedis 实现分布式锁1 maven 依赖 <dependency> ...原创 2020-01-30 21:09:50 · 1586 阅读 · 2 评论 -
三张时序图-彻底明白数据库事务隔离级别
认清数据库事务隔离级别要想讲清楚数据库的事务隔离级别,首先得明白数据库事务是什么,每件东西的诞生必有它的用途。先看一个小故事。一个小故事生活中有这种常见的场景:银行的转账,A同学账户中有1000元,B同学账户中有2000。现在A同学需要转账给B同学300。而在数据库的层面上来讲,这包含两个操作:首先在A账户中减去300,A账户的钱变为700,然后在B账户中加上300,B账户的钱变成230...原创 2018-11-26 11:01:10 · 1607 阅读 · 8 评论 -
死锁Java源码示例
死锁源码 源码仅供参考,欢迎提出问题进行交流class MyThread implements Runnable{ private Object o1 = new Object(); private Object o2 = new Object(); private boolean flag = true; public void run(){...原创 2018-06-16 19:32:17 · 445 阅读 · 0 评论 -
生产者消费者问题Java源码示例
生产者消费者问题 本示例仅供参考,欢迎提出问题,进行交流import java.util.LinkedList;class Storage{ private static final int MAX = 100; LinkedList&amp;lt;Object&amp;gt; list = new LinkedList&amp;lt;&amp;gt;(); public void...原创 2018-06-16 19:25:26 · 606 阅读 · 0 评论 -
常见的排序算法Java源码示例
public class Sort{ //插入排序 class InsertSort{ public void direct(int[] src){ int length = src.length; for(int i=1; i&lt;length; i++){ int temp = s...原创 2018-06-16 19:18:14 · 441 阅读 · 0 评论 -
Tcp可靠性和网络优化
Tcp可靠性和网络优化Tcp可靠性传输的原理发送方每次发送一个报文段后,接收方必须要回复给发送方已经收到的确认信息。出现差错的时候,如果发送放发送了一个报文后,在一段时间内还没收到确认返回,这时候就要重新发送刚才报文,称为超时重传。(发送方的角度)在接收方,并不知道报文的丢失,在发送方重发的报文过来后,接收以后,突然之前在网络中丢失的那段报文突然到达了,原来是因为网络延迟的缘故,这时候接收方应原创 2017-09-20 21:56:50 · 1536 阅读 · 2 评论 -
两张动图-彻底明白TCP的三次握手与四次挥手
两张动图解析三次握手,四次挥手原创 2017-06-04 21:53:54 · 500003 阅读 · 212 评论 -
IP地址的分配原理
网络模型介绍 在计算机网络中有著名的OSI七层协议体系结构,概念清楚,理论完整,但是它既复杂又不实用。TCP/IP体系结构则不同,得到的广泛的应用。最终结合OSI和TCP/IP的优点,采用了一种只有五层协议的体系结构,本文的讲述的IP都是基于五层协议模型中的网络层。原创 2017-06-04 15:54:14 · 59839 阅读 · 10 评论 -
WatchService监控文件变化
概述 Java 7 对原有的NIO进行了重大的改进,新增了Path接口(和平台无关的路径),还有Paths,Files两个工具类。好了进入正题WatchService,在前面的Java版本中,如果想监控某个文件的变化,需要启动一个后台进程,每隔一段时间去遍历制定的目录,如果结果和上次的不同则认为发生了变化。而WatchService在这方面有更好的性能,但是需要结合Path类的register方原创 2017-05-22 21:02:39 · 2164 阅读 · 0 评论 -
详解常用测试机器(服务)是否可用的两种方式
背景描述 在网络模型中有一层非常重要的一环,它实现了端到端之间的通信,而传输层最主要用的到协议是tcp和udp,而tcp协议作为一种可靠的面向连接的传输层协议,被广泛应用,所以本文所描述的几种方式都是基于基于传输层的tcp协议的。原创 2017-06-10 13:38:00 · 1802 阅读 · 0 评论 -
RandomAccessFile实现多线程文件复制
RandomAccessFile RandomAccessFile是Java体系中输入/输出流体系中功能最丰富的类之一,拥有强大的API,既支持文件的读,又支持文件的写;支持“随机访问”的方式,即程序可以直接跳转到文件的任意地方来读写数据。利用这个特性可以实现文件的多线程复制,将大文件分成若干段,每一段启动一个线程复制该段的文件,大大提高了效率。代原创 2017-05-22 17:28:46 · 1561 阅读 · 2 评论