- 博客(161)
- 资源 (9)
- 收藏
- 关注
转载 分布式redis锁代码实现
@Componentpublic class RedisDistributedLock extends AbstractDistributedLock { @Autowired private RedisTemplate<String, Object> redisTemplate; private ThreadLocal<String> lockFlag = new ThreadLocal<>(); private static ...
2021-10-28 21:09:27
324
转载 java生成复杂的嵌套json
https://blog.csdn.net/surpass0728/article/details/79372775在之前并没有接触到关于复杂嵌套json数据,都是返回一些简单的json数据。最近了解到JSONObject和JSONArray的一些知识。json对象与json对象数组的转化关系var jsonStr = "{\"userId\":\"001\"}"; /...
2020-02-08 12:46:39
1878
转载 一个轻量级的分布式RPC框架
本文链接:https://blog.csdn.net/u014411730/article/details/78607616背景:在互联网中,随着访问需求的不断扩大,单一的MVC架构已经不能满足用户的访问需求,这个时候就需要RPC分布式架构。常见的RPC框架:跨语言调用型:Apache的Thrift,Google的Grpc、微博开源的Motan。服务治理型:淘宝的Dubbo(...
2019-11-12 15:19:41
287
原创 Netty基础
1.BIO、NIO 和 AIO 的区别?BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。伪异步 IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有 I/O 请求时才启动一个线程进行处理。AIO:一个有效请求一个线程,客户端的 I/...
2019-09-01 15:08:23
229
转载 Hbase源码解析和开发实战笔记
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/china_demon/article/details/51760595Hbase笔记HBase基础1)HBase简介2)HBase特点3)HBase数据模型4)HBase体系结构5)HBase存储模型6)HBase应用简介1)HBase是一个分布式的、多版本的、面向列的开源...
2019-08-11 22:51:30
342
转载 Kafka 背景及架构介绍
最近一直太忙,一直没有更新,今天更新一点知识点Kafka 是由 LinkedIn 开发的一个分布式的消息系统,使用 Scala 编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如 Cloudera、Apache Storm、Spark 都支持与 Kafka 集成。InfoQ 一直在紧密关注Kafka 的应用以及发展,“Kafka 剖析”专栏将会从架构设计、实现...
2019-03-06 10:06:10
283
转载 WebService 四种发布方式总结
1. CXF方式CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为: java.lang.IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资...
2018-07-29 22:38:13
3704
3
转载 CXF提供Client调用WebService接口的方法
实在抱歉,最近公司太忙,一直没有更新知识点,今天开始尽量有时间多更新 CXF提供Client调用WebService接口的方法 1、 JaxWsProxyFactoryBean 简介:调用方式采用了和RMI类似的机制,即客户端直接服务器端提供的服务接口(interface),CXF通过运行时代理生成远程服务的代理对象,在客户端完成对webservice的访问;几个必填的字...
2018-07-29 22:06:54
8424
2
转载 处理器拦截器
http://jinnianshilongnian.iteye.com/blog/1670856/5.1、处理器拦截器简介Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。 5.1.1、常见应用场景1、日志记录:记录请求
2018-01-04 23:56:47
303
转载 2018第一遍JAVA并发:线程同步机制之计数器&Exechanger
https://www.cnblogs.com/studyLog-share/p/5296449.html第一节 CountDownLatch(1)初识CountDownLatch (2)详述CountDownLatch CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完
2018-01-01 23:49:26
642
转载 websocket心跳的实现
http://blog.csdn.net/real_bird/article/details/77119897前言在使用websocket的过程中,有时候会遇到客户端网络关闭的情况,而这时候在服务端并没有触发onclose事件。这样会:多余的连接服务端会继续给客户端发数据,这些数据会丢失所以就需要一种机制来检测客户端和服务端是否处于正常连接的状态。这
2017-11-26 23:08:58
2980
转载 深入理解Servlet线程安全问题
在上一篇关于Serlvet框架和Servlet生命周期的学习中,我们已经知道了在多线程的情况下 Servlet是线程不安全的。Servlet体系是建立在java多线程的基础之上的,它的生命周期是由Tomcat 来维护的。当客户端第一次请求Servlet的时候,tomcat会根据web.xml配置文件实例化servlet,
2017-07-11 07:48:37
431
转载 《java设计模式》之责任链模式
http://www.cnblogs.com/draem0507/p/3784130.html在阎宏博士的《JAVA与模式》一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。
2017-07-10 07:23:04
292
转载 hashmap冲突的解决方法以及原理分析:
在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样。当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例:HashMap m=new HashMap(); m.put("a", "rrr1"); m.put("b", "tt9"); m.put("c",
2017-07-06 22:51:44
382
转载 关于BIO和NIO的理解
https://my.oschina.net/u/658658/blog/521016最近大概看了ZooKeeper和Mina的源码发现都是用Java NIO实现的,所以有必要搞清楚什么是NIO。下面是我结合网络资料自己总结的,为了节约时间图示随便画的,能达意就行。简介:BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动
2017-07-05 01:03:15
326
转载 高并发的核心技术-幂等的实现方案
高并发的核心技术-幂等的实现方案 一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 3. 发送消息,也应该只发一次,同样的短信发给用户,用户
2017-07-04 23:36:49
269
原创 策略模式
package com.moshi.celv;public interface Caluator {public void testcal(int a,int b);}package com.moshi.celv;public class AddCal implements Caluator {public void
2017-07-03 01:19:41
386
原创 java 实现3个线程 依次打印ABC,并且循环10次
http://blog.csdn.net/pingnanlee/article/details/9468531package com.printabc;import java.util.concurrent.atomic.AtomicInteger;public class TestABC {/*** @param args*/publi
2017-07-02 21:43:37
1012
转载 Spring事务传播特性的浅析——事务方法嵌套调用的迷茫
http://www.iteye.com/topic/35907/ http://blog.csdn.net/hy6688_/article/details/44763869Spring事务传播机制回顾 Spring事务一个被讹传很广说法是:一个事务方法不应该调用另一个事务方法,否则将产生两个事务。结果造成开发人员在设计事务方法时束手束脚,生怕一不小心就踩到地雷
2017-06-28 11:22:42
2998
1
转载 设计模式系列之建造者模式
http://blog.csdn.net/jason0539/article/details/44992733本文继续介绍23种设计模式系列之建造者模式。定义:建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。实用范围1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的
2017-06-27 19:56:13
251
1
转载 spring + redis 实现数据的缓存
spring + redis 实现数据的缓存1、实现目标 通过redis缓存数据。(目的不是加快查询的速度,而是减少数据库的负担) 2、所需jar包 注意:jdies和commons-pool两个jar的版本是有对应关系的,注意引入jar包是要配对使用,否则将会报错。因为commons-pooljar的目录根据版本的变化,目录结构会变。前面的版本是or
2017-06-22 23:59:51
281
转载 分布式事务
事务必须满足传统事务的特性,即原子性,一致性,分离性和持久性。但是分布式事务处理过程中,某些场地比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?在搜索广告系统中,当用户点击某广告后,除了在点击事件表中增加一条记录外,还得去商家账户表中找到这个商家并扣除广告费吧,怎么保证?一 本地事务以用户A转账用户B为例,
2017-06-14 23:59:21
298
转载 分布式锁的三种实现方式
一、zookeeper1、实现原理:基于zookeeper瞬时有序节点实现的分布式锁,其主要逻辑如下(该图来自于IBM网站)。大致思想即为:每个客户端对某个功能加锁时,在zookeeper上的与该功能对应的指定节点的目录下,生成一个唯一的瞬时有序节点。判断是否获取锁的方式很简单,只需要判断有序节点中序号最小的一个。当释放锁的时候,只需将这个瞬时节点删除即可。同时,其可以避免服务宕机
2017-06-12 23:53:50
351
转载 关于java中的锁的理解(通俗易懂)
关于java中的锁的理解(通俗易懂)http://blog.csdn.net/u012291108/article/details/51348603一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在Java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(
2017-06-06 23:53:53
3256
2
转载 Zookeeper(一)分布式事务
http://blog.csdn.net/u012291108/article/details/53821424我们都知道普通的事务中有原子性,一致性,隔离性,持久性。而分布式事务中也有这些属性,下面我们就来介绍一下分布式事务与普通的事务有何不同之处。分布式事务随着分布式计算的发展,事务在分布式中也得到了广泛的应用。在单机数据库中,我们很容易能够实现桃满足ACID特性的
2017-06-05 23:43:29
1520
转载 基于zookeeper实现分布式锁
http://blog.csdn.net/sunfeizhi/article/details/51926396一、分布式锁介绍 分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。二、架构介绍 在介绍使用Zookeeper实现分布式锁之前,首先看当前的
2017-06-01 18:17:34
225
转载 Druid基本配置及内置监控使用
http://www.open-open.com/lib/view/open1430558786084.html 使用方法首先从http://repo1.maven.org/maven2/com/alibaba/druid/ 下载最新的jar包。如果想使用最新的源码编译,可以从https://github.com/alibaba/druid 下载源码,
2017-05-25 20:11:34
379
转载 zabbix3.0.4添加对web页面url的状态监控
zabbix3.0.4添加对web页面url的状态监控1、应用集配置 在配置—>主机中打开主机列表,选择需要添加监控主机的web,创建应用集2、web监测配置选择web场景,再单击右上角的创建web场景在名称中输入监控的名称,客户端是选择测试站点的浏览器类型在步骤选项卡添加测试步骤Name是
2017-05-22 23:44:59
1670
转载 分布式锁原理及实现方式
本文转自:http://www.hollischuang.com/archives/1716 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance
2017-05-18 01:01:44
374
转载 Spring动态代理的两种方式
http://m.blog.csdn.net/article/details?id=51051258说明:spring AOP就是用aspectj来实现的,是依赖关系!AspectJ是动态代理的一种实现!而spring默认使用的就是AspectJ来实现的动态代理,spring自己的AOP就是使用AspectJ来实现的!当然你也可以使用其他的实现,如cglib!第一种
2017-05-16 00:59:45
2104
转载 Java中常用的锁分析总结
http://www.tuicool.com/articles/NnQjyqJava中常用的锁分析总结Java中常用的锁分析总结Java 中常用的锁分析总结1. ReentrantLock、ReentrantReadWriteLock及Sychronized简介(a) 类继承结构ReentrantLock类继承结构
2017-05-10 23:30:37
397
转载 用AtomicStampedReference解决ABA问题
http://www.cnblogs.com/java20130722/p/3206742.html在运用CAS做Lock-Free操作中有一个经典的ABA问题:线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,
2017-05-09 17:56:33
479
转载 Java线程(八):锁对象Lock-同步问题更完美的处理方式
http://blog.csdn.net/ghsau/article/details/7461369 Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychroni
2017-05-09 00:05:48
511
转载 Java线程(九):Condition-线程通信更高效的方式
http://blog.csdn.net/ghsau/article/details/7481142上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。 那么引入本篇的主角,Cond
2017-05-08 23:16:15
231
转载 BlockingQueue
BlockingQueue前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,
2017-05-07 22:55:50
197
转载 CopyOnWriteArrayList与Collections.synchronizedMap性能比较
CopyOnWriteArrayList与Collections.synchronizedMap性能比较Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnW
2017-05-05 21:08:55
372
转载 linux系统添加根证书 linux证书信任列表
http://blog.csdn.net/lemonzone2010/article/details/465155211.linux 访问 https 证书问题[root@boss-test-dev001-jydx ~]# curl -v https://mobile.mycard520.com.tw* About to connect() to mobile.myc
2017-05-05 20:36:37
18736
转载 java中Collections详解
Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能;如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的。compare(a,b)方法:根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。equals(obj)方法:仅当指定的对象也是一个 Compara
2017-05-02 23:43:10
3840
转载 HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap
Map是最重要的数据结构。这篇文章中,我会带你们看看HashMap, TreeMap, HashTable和LinkedHashMap的区别。1. Map概览Java SE中有四种常见的Map实现——HashMap, TreeMap, Hashtable和LinkedHashMap。如果我们使用一句话来分别概括它们的特点,就是:HashMap就是一张hash表,键和值都没有排序
2017-05-01 17:04:52
249
转载 CyclicBarrier和CountDownLatch区别
这两天写多线程时,用到了CyclicBarrier,下意识的认为CyclicBarrier和CountDownLatch作用很像,就翻阅资料查了一下,说一下他们的区别吧CyclicBarrier和CountDownLatch 都位于java.util.concurrent 这个包下CountDownLatchCyclicBarri
2017-04-26 00:30:35
235
关于SQL 中的inner join的使用
2012-01-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人