隔壁老王的专栏

每天进步一点点。。。。。。

SpringBoot整合Sharding-JDBC,实现从数据库读取sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换

SpringBoot整合Sharding-JDBC,实现从数据库读取sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换 Hello,隔壁老王时隔很久很久又来了,今天给大家介绍的是一个分库分表的框架—sharding-jdbc。这个框架在我公司用到了,使用的还算比较复杂...

2019-03-21 18:06:39

阅读数 471

评论数 3

Mybatis的SQL执行流程

Mybatis的SQL执行流程 1、指定statementId和参数 public static void main(String[] args) throws Exception { // 指定全局配置文件 String resource = "myba...

2019-06-20 15:39:50

阅读数 26

评论数 0

SpringBoot整合Shiro,权限的动态加载、更新,Shiro-Redis实现分布式Session共享,挤人功能

本文章是介绍SpringBoot整合Apache Shiro,并实现在项目启动时从数据库中读取权限列表,在对角色进行增删改时,动态更新权限以及在分布式环境下的Session共享,Session共享使用的是shiro-redis框架,是根据真实项目写的一个Demo。网上有很多关于Shiro相关的文章...

2018-04-22 11:04:30

阅读数 12981

评论数 8

Java锁--Lock实现原理(底层实现)

Lock完全用Java写成,在java这个层面是无关JVM实现的。 在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖java.u...

2017-10-17 18:00:10

阅读数 3880

评论数 0

浅析Java中equals()方法和hashCode方法

今天去面试,总觉得自己什么都懂了,应该问题不大,当被问到“未重写的equals()方法和hashCode()方法里面的内容是什么?为什么在重写equals()方法的同时需要重写hashCode()方法?”时,说实话,一脸懵逼啊!!! 一、equals()方法 1、什么时候应该覆盖Object.eq...

2017-10-16 22:59:49

阅读数 983

评论数 0

深入理解Java虚拟机学习笔记——四、Java内存模型与多线程

1、Java内存模型 Java内存模型的意义:屏蔽掉各种硬件和操作系统的内存访问差异,以实现Java程序在各种平台上一致的内存访问效果。 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中把变量存储到内存和从内存中取出变量。此处的变量是指实例字段、静态字段和构成数组对象的元素...

2017-04-14 23:43:41

阅读数 522

评论数 0

深入理解Java虚拟机学习笔记——三、虚拟机类加载机制

1、概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成能够被虚拟机直接使用的数据类型,这就是虚拟机的类加载机制。在Java中,类的加载、校验、解析和初始化都是在运行期间完成的。 2、类加载的时机 类从被加载都虚拟机内存开始,到卸载出内存为止,它的整个...

2017-03-26 21:44:07

阅读数 580

评论数 0

深入理解Java虚拟机学习笔记——二、垃圾收集器与内存分配策略

1、对象是否存活判定算法 引用计数算法 给对象添加一个引用计数器,当有其他对象引用它时,计数器加1;当引用失效时,计数器减1。任何时刻计数器为0的对象就是不可能在被使用的。引用计数算法实现简单,判定效率也很高,但是很难解决对象间相互循环引用的问题。 可达性分析算法 通过一系列被称为“GC...

2017-03-17 21:45:55

阅读数 1042

评论数 0

深入理解Java虚拟机学习笔记——一、JVM结构

运行时数据区 JVM在执行Java程序时会将它所管理的内存划分成若干个不同的数据区域,每个区域都有各自的用途以及创建、销毁的时间。有些区域随着JVM虚拟机进程的启动而存在,有些区域则依赖于用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》的规定,JVM所管理...

2017-03-16 22:56:29

阅读数 728

评论数 0

ActiveMQ——3、ActiveMQ高可用与集群搭建

1. ActiveMQ的高可用原理 使用ZooKeeper(集群)注册所有的ActiveMQ Broker。只有其中的一个Broker可以提供服务,被视为 Master,其他的 Broker 处于待机状态,被视为Slave。如果Master因故障而不能提供服务,Zookeeper会从Slave中选...

2016-12-29 19:49:19

阅读数 5913

评论数 6

ActiveMQ——2、ActiveMQ API详解

1.Connection 在成功创建正确的ConnectionFactory后,下一步是创建一个连接,它是JMS定义的一个接口。ConnectionFactory负责返回可以与底层消息传递系统进行通信的Connection实现。通常客户端只使用单一连接。根据JMS文档,Connection的目的是...

2016-12-25 11:41:15

阅读数 553

评论数 0

ActiveMQ——1、JMS简介与ActiveMQ入门

1.背景&JMS概述 当前CORBA、DCOM、RMI等RPC中间件技术已广泛应用于各个领域。但是面对规模和复杂度都越来越高的分布式系统,这些技术也显示出其局限性: (1)同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果后才能继续执行; (2)客户和服务对象的生命周期紧密耦合:...

2016-12-24 18:20:58

阅读数 988

评论数 0

Storm——3、 Storm Trident API 实践

一、概要      1.1 Storm(简介)      Storm是一个实时的可靠地分布式流计算框架。      具体就不多说了,举个例子,它的一个典型的大数据实时计算应用场景:从Kafka消息队列读取消息(可以是logs,clicks,sensor data)、通过Storm对消息进...

2016-12-20 13:18:02

阅读数 465

评论数 0

转载——JAVA内存模型

深入理解Java内存模型(一)——基础 并发编程模型的分类 在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 ...

2016-12-18 11:00:17

阅读数 501

评论数 0

Storm——2、Storm原生API编程、并发机制、可靠性与DRPC详解

1、HelloWord入门 首先编写数据源Spout,可以使用两种方式: (1)实现IRichSpout接口。 (2)继承BaseRichSpout类。 需要对其中重点的几个方法进行重写或实现:open、nextTuple、declareOutputFields。 其次编写数据处理类Bolt,同样...

2016-12-14 19:34:47

阅读数 540

评论数 1

Storm——1、Storm简介与环境搭建

1.Storm简介 Storm是Twitter开源的一个分布式实时计算系统,用于数据的实时分析,持续计算,人不是RPC等等。 实时计算需要解决的一些问题: (1)最显而易见的就是实时推荐系统,比如在淘宝等电商购物网站买东西时,我们会在网页旁边或者底端看到与自己所需商品相关的系列产品。这就是使用类似...

2016-12-12 20:39:28

阅读数 552

评论数 0

Dubbo简介与入门

Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,即使从国际视野来看应该也是一个非常全面的SOA基础框架。作为一个重要的技术研究课题,当当网根据自身的需求,为Dubbo实现了一些新的功能,并将其命名为Dubbox(Dubbo eXtensions)。 1.Dubbo是什么? Dub...

2016-12-06 22:17:42

阅读数 678

评论数 0

Zookeeper——4、使用Curator操作Zookeeper

为了更好的实现Java操作zookeeper服务器,后来出现了Curator框架,非常的强大,目前已经是Apache的顶级项目,里面提供了更多丰富的操作,例如session超时重连、主从选举、分布式计数器、分布式锁等等适用于各种复杂的zookeeper场景的API封装。 Curator所需的mav...

2016-12-05 19:57:23

阅读数 11996

评论数 2

Zookeeper——3、使用zkClient操作zookeeper

zkClient在原生API的基础上进行了封装,简化了zookeeper的复杂性。 创建客户端方法:ZKClient(Arguments) 参数1:zkServers,zookeeper服务器地址,用“,”分隔。 参数2:sessionTimeout,会话超时时间,单位毫秒,默认为30000ms。...

2016-12-03 23:59:46

阅读数 12669

评论数 0

Zookeeper——2、使用Zookeeper原生API操作Zookeeper

zookeeper的javaclient可以使我们更轻松的实现对zookeeper的各种操作,要使用java操作zookeeper,需要引入zookeeper-3.4.5.jar和zkclient-0.1.jar。zookeeper-3.4.5.jar是官方提供的JAVA API,zkclient...

2016-12-02 17:05:43

阅读数 8321

评论数 0

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