- 博客(106)
- 资源 (6)
- 收藏
- 关注
原创 ELK(Elasticsearch+Filebeat+Kibana) 轻量级采集分析Nginx日志
ELK是什么?轻量级日志统计分析组件,包含elasticsearch、filebeat、kibanaELK环境准备Elasticsearch 下载地址https://www.elastic.co/downloads/past-releases/elasticsearch-6-4-2Elasticsearch 参考文档https://www.elastic.co/guide/en/ela...
2019-04-01 13:02:27 2626
原创 Solr 6.0 学习(十七)SolrCloud
参考: SolrCloud中文讲解 windows下基于zookeeper发布solrcloud 官方文档 solrcloud wiki solr中文文档什么是solrcloud官方文档的解释: SolrCloud is designed to provide a highly available, fault tolerant environment for dis...
2018-03-27 16:08:23 705
原创 SpringBoot集成Quartz动态定时任务
SpringBoot自带schedule沿用的springboot少xml配置的优良传统,本身支持表达式等多种定时任务 注意在程序启动的时候加上@EnableScheduling@Scheduled(cron="0/5 * * * * ?") public void job(){ System.out.println("每五秒执行一次"); }...
2018-03-02 14:57:05 87458 45
原创 Spring aop 基于JDK动态代理和CGLIB代理的原理以及为什么JDK代理需要基于接口
本文是根据《深入分析Java Web技术内幕》一书第十三章探讨Spring Aop是什么简单来说就是面向切面编程。Spring AOP的实现对于接口来说就是使用的JDK的动态代理来实现的,而对于类的代理使用CGLIB来实现。JDK动态代理JDK的动态代理,就是在程序运行的过程中,根据被代理的接口来动态生成代理类的class文件,并加载运行的过程。代理的目的是调用目标方法时可
2018-01-11 16:14:46 4188
原创 Cookie的压缩以及字符集简单的探讨
本文是根据《深入分析Java Web技术内幕》一书第三章和第十章做一个摘取总结和探讨Cookie是什么简单来说就是用户通过http请求访问一个服务器时,服务器会将一些key/vlaue的键值对返回给客户端浏览器,用户下次访问的时候,这些数据又可以玩转的发送给服务器主要特征 Key–Value形式 Domain 指定cookie生成域名 Max-Age 过期时间
2018-01-09 14:44:26 526 1
原创 反射中Class.forName()和ClassLoader.loadClass()的区别
本文参考反射中Class.forName()和ClassLoader.loadClass()的区别Java类加载过程 加载:找到.class文件并把这个文件包含的字节码加载到内存中链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性;(文件格式验证,元数据验证,字节码验证,符号引用验证) 准备:给类的静态变量分配并初始化存储空间;
2017-12-19 13:28:19 515
原创 Java多线程工具包java.util.concurrent---目录
以下内容部分参考于: Java 并发工具包 java.util.concurrent 用户指南 这一系列的文章中例子是作者自己编写,有不对的地方欢迎大家指教讨论,多数例子是想通过实际场景来说明工具包API的作用。目录阻塞有界队列ArrayBlockingQueue延迟队列DelayQueue阻塞链表队列LinkedBlockingQueueConcurrentHashMapThre
2017-11-29 13:20:44 337
原创 Java多线程工具包java.util.concurrent---原子性和ABA问题
什么是原子性 什么是可见性可见性 在多核处理器中,如果多个线程对一个变量(假设)进行操作,但是这多个线程有可能被分配到多个处理器中运行,那么编译器会对代码进行优化,当线程要处理该变量时,多个处理器会将变量从主存复制一份分别存储在自己的片上存储器中,等到进行完操作后,再赋值回主存。(这样做的好处是提高了运行的速度,因为在处理过程中多个处理器减少了同主存通信的次数);同样在单核处理器中这样由于“备份
2017-11-29 11:57:54 477
原创 Java多线程工具包java.util.concurrent---Atomic
java.util.concurrent工具包中提供了很多原子类的工具类,这篇文章主要针对 AtomicBoolean、AtomicInteger、AtomicReference做一个说明AtomicBooleanAtomicBoolean 类为我们提供了一个可以用原子方式进行读和写的布尔值,它还拥有一些先进的原子性操作,比如 compareAndSet()。AtomicBoolean 类位于 j
2017-11-28 13:22:56 484
原创 Java多线程工具包java.util.concurrent---ReadWriteLock
什么是ReadWriteLockjava.util.concurrent.locks.ReadWriteLock 读写锁是一种先进的线程锁机制。它能够允许多个线程在同一时间对某特定资源进行读取,但同一时间内只能有一个线程对其进行写入。 读写锁的理念在于多个线程能够对一个共享资源进行读取,而不会导致并发问题。并发问题的发生场景在于对一个共享资源的读和写操作的同时进行,或者多个写操作并发进行。Read
2017-11-27 15:44:21 297
原创 Java多线程工具包java.util.concurrent---Lock
什么是lockjava.util.concurrent.locks.Lock 是一个类似于 synchronized 块的线程同步机制。但是 Lock 比 synchronized 块更加灵活、精细。 首先创建了一个 Lock 对象。之后调用了它的 lock() 方法。这时候这个 lock 实例就被锁住。任何其他再过来调用 lock() 方法的线程将会被阻塞住,直到锁定 lock 实例的线程调用了
2017-11-27 11:09:57 419
原创 Java多线程工具包java.util.concurrent---ExecutorService
什么是ExecutorServicejava.util.concurrent.ExecutorService 接口表示一个异步执行机制,使我们能够在后台执行任务。因此一个 ExecutorService 很类似于一个线程池。实际上,存在于 java.util.concurrent 包里的 ExecutorService 实现就是一个线程池实现。ExecutorService的实现E...
2017-11-23 16:15:44 2279
原创 Java多线程工具包java.util.concurrent---Semaphore
什么是Semphorejava.util.concurrent.Semaphore 类是一个计数信号量。计数信号量由一个指定数量的 “许可” 初始化。每调用一次 acquire(),一个许可会被调用线程取走。每调用一次 release(),一个许可会被返还给信号量。因此,在没有任何 release() 调用时,最多有 N 个线程能够通过 acquire() 方法,N 是该信号量初始化时的许可的指定数
2017-11-22 16:00:37 567
原创 Java多线程工具包java.util.concurrent---CyclicBarrier
什么是CyclicBarrier栅栏java.util.concurrent.CyclicBarrier 类是一种同步机制,它能够对处理一些算法的线程实现同步。换句话讲,它就是一个所有线程必须等待的一个栅栏,直到所有线程都到达这里,然后所有线程才可以继续做其他事情。图示如下: 有什么特点1、CyclicBarrier初始化时规定一个数目,然后计算调用了CyclicBarrier.await()进入
2017-11-21 17:05:47 408
原创 Java多线程工具包java.util.concurrent---CountDownLatch
什么是CountDownLatchjava.util.concurrent.CountDownLatch 是一个并发构造,它允许一个或多个线程等待一系列指定操作的完成。 CountDownLatch 以一个给定的数量初始化。countDown() 每被调用一次,这一数量就减一。通过调用 await() 方法之一,线程可以阻塞等待这一数量到达零。典型使用场景最新开《亿级流量网站架构核心技术》一书中提
2017-11-21 15:56:32 460
原创 ThreadLocal和ConcurrentHashMap的不同,扫盲篇
本文主要是针对ThreadLocal和ConcurrentHashMap的使用说一个简单的说明,其中示例说明了他们两个从结果上看的明显不同,扫盲篇什么是ThreadLocalThreadLocal并不是一个Thread,而是Thread的局部变量。将类变量放到ThreadLocal类型的对象中,使变量在每个线程中都有独立拷贝,不会出现一个线程读取变量时而被另一个线程修改的现象。ThreadLocal
2017-11-21 11:49:10 5881
原创 Java多线程工具包java.util.concurrent---ConcurrentHashMap
参考以下微博 http://blog.csdn.net/xiaohui127/article/details/11928865 http://blog.csdn.net/xuefeng0707/article/details/40797085 http://www.importnew.com/21388.html 本文没有具体探讨ConcurrentHashMap、HashMap、HashT
2017-11-20 18:17:59 577
原创 Java多线程工具包java.util.concurrent---LinkedBlockingQueue
LinkedBlockingQueue 简介 LinkedBlockingQueue 类实现了 BlockingQueue 接口。 LinkedBlockingQueue 内部以一个链式结构(链接节点)对其元素进行存储。如果需要的话,这一链式结构可以选择一个上限。如果没有定义上限,将使用 Integer.MAX_VALUE 作为上限。 LinkedBlockingQueue 内部以
2017-11-20 15:50:37 522
原创 Java多线程工具包java.util.concurrent---DelayQueue
延迟队列 DelayQueue DelayQueue 实现了 BlockingQueue 接口。 DelayQueue 对元素进行持有直到一个特定的延迟到期。 DelayQueue 将会在每个元素的 getDelay() 方法返回的值的时间段之后才释放掉该元素。如果返回的是 0 或者负值,延迟将被认为过期,该元素将会在 DelayQueue 的下一次 take 被调用的时候被释放掉
2017-11-17 15:31:21 629
原创 Java多线程工具包java.util.concurrent---ArrayBlockingQueue
以下内容部分参考于: Java 并发工具包 java.util.concurrent 用户指南 这一系列的文章中例子是作者自己编写,有不对的地方欢迎大家指针,多数例子是想通过实际场景来说明工具包API的作用。BlockingQueuejava.util.concurrent 包里的 BlockingQueue 接口表示一个线程安放入和提取实例的队列。本小节我将给你演示如何使用这个 Blockin
2017-11-16 10:30:40 870
原创 cas shiro spring实现单点登录
《SSO CAS单点系列》之 实操!轻松玩转SSO CAS就这么简单(相识篇) 《SSO CAS单点系列》之 实操!轻松玩转SSO CAS就这么简单(相遇篇)这里贴出传送门,来自幕课网大神。讲了cas配置和cas的基本原理。CASGithub地址:https://github.com/apereo/cas/tags war下载地址:http://mvnrepository.com/arti
2017-10-10 12:31:02 2163
原创 shiro 判断ajax是否通过身份验证
这篇文章主要是针对使用shiro后ajax请求判断是否经过验证的问题。代码:public class RoleAuthorizationFilter extends AuthenticationFilter { private static int bytes = 1024; private static int startByte = 0; private static in
2017-09-08 14:17:52 2613 2
原创 shiro 配置
1、web.xml配置<filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name
2017-09-07 10:51:09 437
原创 shiro realm实现
实现realm实现realm需要继承AuthorizingRealm/** * shiro * @author yvan * */public class ShiroRealm extends AuthorizingRealm { /* * 登录信息和用户验证信息验证(non-Javadoc) * @see org.apache.shiro.realm.Auth
2017-08-02 13:40:55 595
原创 shiro简介
这几篇文章会对shiro做一些简单概括和运用,springmvc集成,shiro+cas+springmvc 做一个简单的SSL。不深究其源码,能够运用和初步掌握的程度。传送门:开涛博客1.1 简介Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但
2017-08-01 14:43:36 282
原创 SpringMvc 浅析 之 错误处理
@ExceptionHandler在一个controller中定义一个方法,用@ExceptionHandler注解标注。(优先级最高) @ExceptionHandler public ModelAndView handlerException(Exception ex) { Map<String, String> model = new HashMap<Strin
2017-06-20 15:12:16 368
原创 SpringMvc 浅析 之 URL Action
就不再赘述理论,下面都是代码示例。 Web.xml配置<servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param>
2017-06-20 10:46:27 361
原创 SpringMvc 浅析
参考:第二章 Spring MVC入门 —— 跟开涛学SpringMVC参考:Spring MVC 教程,快速入门,深入分析参考:spring framework 4 源码阅读感谢三位博主的分享。——————————————————————————————————————————————————————————————————说明:本作者是文章的原创作者,转载请注明出处
2017-06-19 15:12:05 618
原创 Solr 6.0 学习(十六)FunctionQuery
solr的评分机制、重新排序,作者也正在研究中,变工作边学习当中,欢迎拍砖。 为什么要使用FunctionQuery 按照solr wiki文中的描述, 函数查询 让我们可以利用 numeric域的值 或者 与域相关的的某个特定的值的函数,来对文档进行评分。 实际中的运用 简单需求solr提供sort功能即可完成。 但是如果需要多个维度进行评分排序的时候,我们就需要使用FuctionQue
2017-06-08 16:19:57 2016
原创 Solr 6.0 问题汇总
本文是针对在学习和运用solr6.0中遇到的问题做总结,会持续更新配置solr 404问题在Solr 6.0 学习(一)环境搭建中很多同学在评论区说404问题 访问:http://localhost:8080/solr/index.html 正常 访问:http://localhost:8080/solr 报404我们看下到web.xml中部分配置如下: <servlet> <serv
2017-05-18 16:42:51 1952 2
原创 Solr 6.0 学习(十五)Solr SearchComponent
我们看到之前文章Solr 6.0 学习(十四)Solr RequstHandler中的代码,我们看到有如下片段 if (timer == null) { for (final SearchComponent c : components) { c.prepare(rb); } } else
2017-05-03 17:11:12 1424
原创 Solr 6.0 学习(十四)Solr RequstHandler
什么是RequstHandler我们看到solrconfig.xml中配置<requestHandler name="/select" class="solr.SearchHandler">结合solr admin管理后台我们看到 第一个qt参数是select,那么solr对应的requestHandler是SearchHandlerRequstHandler做了什么下面我们通过solr源码的
2017-05-02 15:25:16 843
原创 Solr 6.0 学习(十三)Solr缓存
Solr是基于Lucene的全文搜索服务器。实际上所有的搜索索引文件都是以文件形式存储在磁盘中。数据量到一定程度上,磁盘的IO会影响搜索性能。那么针对这种情况,我们优化的过程中势必需要运用缓存技术。目前,我们熟知的缓存nosql数据库:redis、mongodb、memcache。不过,本文不在这里针对这些nosql数据库做讨论,本文主要是针对solr已经实现的缓存技术做探讨。
2017-04-20 15:13:45 1840 3
原创 Solr 6.0 学习(十二)SolrParamer实现
SolrParamer我们看到solr给我们提供的API 我们看到SolrParamer是一个抽象类。 我们看到Solr学习(九) 中最后总结的代码。//设置查询参数ModifiableSolrParams params = new ModifiableSolrParams(solrReq .getParams());solrReq.setParams(params
2017-01-05 16:31:14 1547
原创 Solr 6.0 学习(十一)solr writer自定义
CustomerResponseWriterpackage com.upxiaofeng.solr;import java.io.IOException;import java.io.Writer;import org.apache.solr.common.util.NamedList;import org.apache.solr.request.SolrQueryRequest;import
2017-01-04 15:55:35 679
原创 Solr 6.0 学习(十)QueryResponseWriter 源码解析
QueryResponseWriter 源码解析看到上一篇 中获取响应回写实例的时候返回类型为:QueryResponseWriter public final QueryResponseWriter getQueryResponseWriter(String writerName)QueryResponseWriter responseWriter = core.getQueryRespons
2017-01-04 15:41:46 1618
原创 Solr 6.0 学习(九) SolrDispatchFilter源码解析之HttpSolrCall及扩展
这段源码特别重要,如果想在solr应用之上开发自己的代码,这段源码很值得研究。HttpSolrCallpackage org.apache.solr.servlet;import java.io.EOFException;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;impo
2016-12-29 11:50:17 1957
原创 Solr 6.0 学习(八) SolrDispatchFilter源码解析及solr扩展
传送门:老版SolrDispatchFilter源码解析SolrDispatchFilter做了什么我们发布好我们的solr6.X之后我们可以看到项目下web.xml中一段配置<!-- Any path (name) registered in solrconfig.xml will be sent to that filter --> <filter> <filter-name>Sol
2016-12-29 11:21:33 3996 2
原创 Effective Java 学习笔记(十、十一、十二)
【 第10条:始终要覆盖toString】其实这条是一种编程的规范,我们在定义bean的时候最好覆盖toString方法。 举例来说:人可以抽象为一个bean,里面有属性姓名、性别、升高、年龄。我们期望toString出来看到这些信息,而不是一串看不懂的DNA分子结构。package com.effective.java;public class Pepole { private Stri
2016-12-09 14:53:27 308
spring cloud dalston中文PDF文档
2018-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人