能写下来,理解才会更深

共同学习,共同提高,坚持!

排序:
默认
按更新时间
按访问量

基于redis setnx的简易分布式锁(修正版)

前面写过一篇  错误示例 , 当时写完测试方法不对,就直接放上来了.后面实际使用过程中发现不行, 这次将改正后的记录下来.前一篇写了一些锁的概念和为了防止死锁而使用redis对key的有效期来控制超时释放.这些都是没有问题的.而上一篇出问题的地方,基本上也是现在网上很多帖子的问题所在.问题1: 获...

2018-03-28 17:05:55

阅读数:2657

评论数:0

浅谈库存扣减和锁

先说场景: 物品W现在库存剩余1个,  用户P1,P2同时购买.则只有1人能购买成功.(前提是不允许超卖) 秒杀也是类似的情况, 只有1件商品,N个用户同时抢购,只有1人能抢到.. 这里不谈秒杀设计,不谈使用队列等使请求串行化,就谈下怎么用锁来保证数据正确. 常见的实现方案有以下几种: 1....

2017-08-08 00:02:08

阅读数:6404

评论数:4

基于redis setnx的简易分布式锁

(此文章实现有误,修正版地址 : https://blog.csdn.net/qq315737546/article/details/79728676)锁的原理, 就是设置个flag,记录下是否正被使用,可重入锁再判断下是否是自己在使用.这个flag,必须保证所有资源用的是同一个.synchron...

2017-07-06 12:43:45

阅读数:903

评论数:0

RabbitMQ(六)使用Dead Letter(死信队列)进行延时发送

在我们实际业务中,经常会碰到需要延时处理的问题.例如A操作5分钟后触发B操作.这些也可以使用定时器来实现. 考虑以下情况. 1.客户端提交订单A. 2.服务端F新增订单A,通过Rabbitmq发送新增订单消息M1到服务F2.返回新增成功到客户端(M模块不影响主业务). 3.客户端收到新增成...

2017-03-26 16:00:59

阅读数:6556

评论数:0

RabbitMQ(五)消息发送失败后的处理

前一篇文章,写了消息发送确认的一些内容. 就是消息发送成功或失败的时候,都会调用confirmListener 或者returnListener. 如果消息发送成功,就不考虑了.当消息发送失败时,怎么处理这个消息呢. 1.自动重发 2.系统预警人工处理等 以上操作,都需要知道是哪条消息,具体什...

2017-03-26 14:39:49

阅读数:10249

评论数:4

Log4j不同级别输出到不同文件的几种方式

log4j已经是古董了,但是现在项目还在用,需要用到不同级别输出到不同文件,所以把几种实现方式记录下来,备忘! 下面的几种配置都是使用properties的情况,但是xml的原理也一样. 使用LevelRangeFilter 使用LevelMatchFilter 自定义Appender 下...

2017-01-17 23:55:16

阅读数:6691

评论数:3

RabbitMQ(四)消息确认(发送确认,接收确认)

前面几篇记录了收发消息的demo,今天记录下关于 消息确认方面的 问题. 下面是几个问题: 1.为什么要进行消息确认? 2.rabbitmq消息确认 机制是什么样的? 3.发送方如何确认消息发送成功?什么样才算发送成功? 4.消费方如何告知rabbitmq消息消费成功或失败? 5.使用spring...

2017-01-07 19:30:04

阅读数:33003

评论数:11

dubbo(四)异常处理

dubbo的异常处理网上描述的文章很多,复制黏贴也不在少数.在这里记录下自己的一些体会. 还是带着问题(目录)来写吧. 1.dubbo官方推荐的异常处理方式是什么? 2.dubbo处理异常的逻辑是什么样的?为什么要这样处理? 3.抛出自定义异常有哪些方式? 4.provider统一异常(包括自...

2016-12-29 21:16:48

阅读数:10065

评论数:0

Jenkins(一)windows下的安装

准备用Jenkins来提高打包部署的效率,省去大部分人工重复环节,所以记录下过程. 1.下载 2.部署运行 3.插件安装 1.下载 官网地址 https://jenkins.io/index.html, 下载war包就可以了. 会让你选择一个最新版或者稳定版. 这里我们选择稳定版  2...

2016-12-06 19:45:05

阅读数:2106

评论数:0

redis zookeeper 开机启动

每次重装系统后,都忘记redis和zookeeper开机启动的方式,去搜索的话还要筛选半天才能找到自己想要的. 所以记录下来,用于备忘. 暂时先记录windows系统的. win10(win7的话,记得是直接把1中的bat脚本放到 启动这个 文件夹里面就可以了) 1.新建bat脚本,...

2016-12-05 20:25:51

阅读数:712

评论数:0

RabbitMQ(三)Spring整合 的 HelloWorld

现在java项目,貌似spring是必备的啦.而spring对于流行的中间件之类都有支持. rabbitmq当然也不例外. 这个整合网上的例子也挺多.不过大部分都是最简单的一个demo,连consumer这里接收对象我都找了半天没找到. 下面直接上代码了. 第一步当然是引入依...

2016-11-17 20:47:59

阅读数:1736

评论数:0

RabbitMQ(二)CentOS6.7 下的 HelloWorld

前一篇写了在Windows下的安装使用,这次记录下CentOS6.7下的安装使用. 其实在CentOS下和Windows下过程是一样的,都是 先安装Erlang环境,再安装RabbitMQ Server. 只不过CentOS下经常遇到各种问题,所以感觉上麻烦点.

2016-11-13 00:25:54

阅读数:3907

评论数:3

RabbitMQ(一) Windows下的 HelloWorld

rabbit的官方文档相当不错,按照文档来基本就OK了. 先在windows下面搭建一个helloworld,安装的rabbitmq版本是3.6.5 参考官网 http://www.rabbitmq.com/install-windows.html 主要分下面5步: 1) 下载安装Erlan...

2016-11-13 00:03:07

阅读数:675

评论数:0

Java nginx https 双向认证

最近要做个https 双向认证的,就做了个demo,踩了不少坑,记录一下. 主要还是对原理理解不够透彻,刚开始直接从网上搬个例子就用,结果大部分都不适用.

2016-10-20 23:29:54

阅读数:4416

评论数:3

dubbo(三)dubbo的文件上传

在(dubbo二)文章中,我们将customer和provider分开部署了,这次主要记录文件在customer和provider之间的传输. 如果文件直接在customer中进行保存,不需要传递到provider,则和dubbo就没有关系了. 如果需要传递,如果是使用dubbo协议的话,是不支持...

2016-10-11 23:48:01

阅读数:12212

评论数:5

好读书不求甚解(一)Java多线程编程核心技术

第1章 Java多线程技能 第2章 对象及变量的并发访问 1 synchronized同步方法 2 synchronized同步代码块 3 volatile 第3章 线程间通信 1 等待通知机制 2 join方法 3 ThreadLocal类 第4章 Lock的使用 1 ReentrantLock...

2016-10-08 23:22:51

阅读数:1558

评论数:1

dubbo(二)普通项目dubbo服务化改造+provider构建为jar包运行

前面写过 dubbo的 hello world 和 一个普通的ssm框架集成 的2个项目.  今天我们来将 普通的项目 改造成dubbo服务的结构. 并且provider以jar包方式运行. 前面 dubbo的hello world 点这里看 传送门 前面 ssm框架集成的项目 点这里看 传送门 ...

2016-08-20 21:45:18

阅读数:10424

评论数:2

nginx代理后,获取request的ip

应用程序部署上线,一般都会用nginx之类的来进行反向代理,而不是直接访问tomcat之类的容器. 这时候如果用平时的获取ip的代码,就只会获取到nginx所在服务器的ip, 就失去了本身的意义. 今天就来配置下 nginx+tomcat 后,  程序获取ip和 tomcat的访问日志localh...

2016-08-15 22:52:28

阅读数:7279

评论数:0

quartz集群

当项目部署在多个tomcat上进行集群后,定时任务就会有问题. 多个tomcat都会执行相同的定时任务.最简单的解决办法是把定时器只放到一个tomcat上运行,但是这样就不是集群了. 我们期望的是一台服务挂掉,不影响定时器执行. 这时候就用到了quartz的集群. 其实单机运行的时候,使用sp...

2016-08-14 23:00:40

阅读数:3815

评论数:1

JAVA基础(三)异常处理

目录. 1.java异常体系 2.异常处理方法 3.异常处理原则 4.自定义异常 1.java异常体系 如图 Thorwable类所有异常和错误的超类,有两个子类Error和Exception,分别表示错误和异常。 Error 是程序无法处理的,这里不多说. Exception下面分了 ...

2016-08-14 16:03:20

阅读数:398

评论数:0

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