<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Logica的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u013400939</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u013400939]]></copyright><item><title><![CDATA[synchronized原理]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/83042497</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/83042497</guid><author>u013400939</author><pubDate>Sat, 13 Oct 2018 21:38:41 +0800</pubDate><description><![CDATA[一、synchronized原理

]]></description><category></category></item><item><title><![CDATA[JMM内存模型（未完节）]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/81879656</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/81879656</guid><author>u013400939</author><pubDate>Sat, 13 Oct 2018 21:35:16 +0800</pubDate><description><![CDATA[一、什么是内存模型？

先来了解下计算机操作发展的历史：

part1时期

计算机执行指令的时候都是在CPU中，数据都在主存中，物理内存中。
	随着技术发展CPU中的执行速度越来越快，然而主存的技术遇到瓶颈，导致CPU的操作都要等待主存操作的响应。
    ceo————员工

于是考虑能不能不直接操作主存，在上层添加缓冲层

       part2时期                    ...]]></description><category></category></item><item><title><![CDATA[等待通知范式]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/83042364</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/83042364</guid><author>u013400939</author><pubDate>Sat, 13 Oct 2018 21:27:42 +0800</pubDate><description><![CDATA[一、等待通知机制 



等待线程获取到对象的锁，调用wait()方法，放弃锁，进入等待队列
	通知线程获取到对象的锁，调用对象的notify()方法
	等待线程接受到通知，从等待队列移到同步队列，进入阻塞状态
	通知线程释放锁后，等待线程获取到锁继续执行
二、等待方与通知方遵循的原则

...]]></description><category></category></item><item><title><![CDATA[Spring data ES攻略]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/82596948</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/82596948</guid><author>u013400939</author><pubDate>Mon, 10 Sep 2018 23:10:20 +0800</pubDate><description><![CDATA[总结下es的使用，方便其他小伙伴使用

一、配置依赖


&amp;lt;dependency&amp;gt;
   &amp;lt;groupId&amp;gt;org.springframework.data&amp;lt;/groupId&amp;gt;
   &amp;lt;artifactId&amp;gt;spring-data-elasticsearch&amp;lt;/artifactId&amp;gt;
   &amp;lt;version&amp;gt;2.0.4.REL...]]></description><category></category></item><item><title><![CDATA[ES增删改查内部原理]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/82469636</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/82469636</guid><author>u013400939</author><pubDate>Thu, 06 Sep 2018 22:58:43 +0800</pubDate><description><![CDATA[一、ES查询内部原理

客户端发起请求到集群协调节点coordinate node
	若是根据docId（不是根据docId查询则根据随机轮询算法，分配到所有分片查询）查询则根据路由算法，找到分片
	根据随机轮询算法，将请求分摊给主备节点，达到负载均衡的目的
	各个节点将结果返回给协调节点，由协调节点统一返回数据给客户端


二、ES增删改内部原理

客户端发起创建的请求到集群协调节点coordi...]]></description><category></category></item><item><title><![CDATA[Gossip 算法]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/82469157</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/82469157</guid><author>u013400939</author><pubDate>Thu, 06 Sep 2018 22:13:47 +0800</pubDate><description><![CDATA[
Gossip 算法, 灵感来自办公室八卦, 只要一个人八卦一下, 在有限的时间内所有人都会知道该八卦的信息,
这种方式也与病毒传播类似, 因为 Gossip 有众多的别名&quot;闲话算法&quot;、&quot;疫情传播算法&quot;、&quot;病毒感染算法&quot;、&quot;谣言传播(Rumor-Mongering)算法&quot;.
但 Gossip 并不是一个新东西, 之前的泛洪查找、路由算法都归属于这个范畴, 不同的是 Gossip 给这类算法提供了明...]]></description><category></category></item><item><title><![CDATA[BeanUtils.copyPropertys源码时序图]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/82431792</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/82431792</guid><author>u013400939</author><pubDate>Wed, 05 Sep 2018 22:15:00 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[ES集群单机（单节点/多节点）搭建]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/81915794</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/81915794</guid><author>u013400939</author><pubDate>Tue, 28 Aug 2018 00:06:02 +0800</pubDate><description><![CDATA[一、单机单节点搭建

需要在安装目录/config/elasticsearch.yml中加入配置



使用系统默认配置，在ES安装目录执行elasticsearch脚本

 

看到控制台输出started表示启动成功



二、单机多节点（伪集群）搭建

在单台服务器上以不同的端口，启动ES服务，搭建ES伪集群



拷贝安装包三分，分别修改elasticsearch.yml文件



三、启...]]></description><category></category></item><item><title><![CDATA[ES通配符查询慢优化]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/82120297</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/82120297</guid><author>u013400939</author><pubDate>Mon, 27 Aug 2018 22:49:41 +0800</pubDate><description><![CDATA[ 

使用ES查询遇到的坑：

当为空字符串查询** 时速度超慢

原始查询条件：



生成的查询语句：

查询语句

http://11.11.11.11:9100/

data_aa-2018.08/category_goods_1_day/_search  POST


{

  &quot;from&quot; : 0,

  &quot;size&quot; : 10,

  &quot;query&quot; : {

    &quot;bool&quot; ...]]></description><category></category></item><item><title><![CDATA[代理模式———静态代理、动态代理（JDK代理）、CGLIB代理]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/81517040</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/81517040</guid><author>u013400939</author><pubDate>Sun, 19 Aug 2018 19:23:48 +0800</pubDate><description><![CDATA[一、代理模式

代理模式就是为某个对象Q，提供一个代理对象，通过代理对象，完成对对象Q的引用。

通过代理对象的增强可以无侵入的扩展委托类。真正的业务实现还是交与委托类，代理类相当于包装了一层委托类，可以在委托类执行的前后加入扩展，比如缓存，切面，消息等。

在SpringAOP的实现中，使用的核心技术就是动态代理，使用了JDK代理（对象实现了接口使用）与CGLIB（对象没实现接口使用）代理的结合...]]></description><category></category></item><item><title><![CDATA[SpringIOC源码分析(七)__IOC容器的依赖注入]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/81321246</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/81321246</guid><author>u013400939</author><pubDate>Wed, 01 Aug 2018 00:04:29 +0800</pubDate><description><![CDATA[一、前情提要

完成了BeanDefinition的注册，就完成了了IOC容器初始化的过程。且这些BeanDefinition也可以被容器使用了，在beanDefinitionMap中承载。容器DefaultListableBeanFactory做用就是对这些信息进行处理维护。这些基础数据也是容器建立以来注入的基础。这些Bean都放在了容器里，什么时候才会初始化呢？bean的依赖关系什么时候回注入...]]></description><category></category></item><item><title><![CDATA[BeanUtils之Converter转换器]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/81255845</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/81255845</guid><author>u013400939</author><pubDate>Fri, 27 Jul 2018 23:53:45 +0800</pubDate><description><![CDATA[一、BeanUtils.copyPropertys时序图



解析：

获得类对象后循环copyProperty()方法，拷贝每一个属性
	在动态类中取得属性的信息DynaProperty
	在存放Convert转换器的map中获得Convert转换器，转换属性，返回value；这里的Convert转换器可以自定义，自定义的转换器继承Convert，实现某种类型的特殊转换，调用对应的regist...]]></description><category></category></item><item><title><![CDATA[SpringIOC源码分析(六)__IOC容器的初始化__BeanDefinition载入注册]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/81073553</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/81073553</guid><author>u013400939</author><pubDate>Fri, 27 Jul 2018 23:49:08 +0800</pubDate><description><![CDATA[一、前情提要

上一篇提到了IOC容器初始化的流程，及资源定位，本篇主要分析BeanDefinition的载入过程



二、BeanDefiniton载入解析

BeanDefinition是IOC容器对Bean的数据承载模型，IOC容器对Bean的管理和依赖注入的实现，是通过对BeanDefinition的各种操作来实现的，IOC容器通过一个HashMap来保持和维护这些BeanDefinit...]]></description><category></category></item><item><title><![CDATA[Lucence倒排索引]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/81123948</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/81123948</guid><author>u013400939</author><pubDate>Thu, 19 Jul 2018 23:28:03 +0800</pubDate><description><![CDATA[带着问题探索：

全文检索，为什么要全文检索？
	什么是lucence？
	什么是倒排索引？
一、全文检索

要了解全文检索首先需要了解:结构化数据与非结构化数据，以及半结构化数据，这三种数据构成了我们生活中所有数据的组成形式。

 
			结构化数据
			非机构化数据
			半结构化数据
		含义
			有固定格式的的数据
			无固定格式的数据
			有一定格式的数据
		举例
			数据库...]]></description><category></category></item><item><title><![CDATA[SpringIOC源码分析(五)__IOC容器的初始化__资源加载]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/81072808</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/81072808</guid><author>u013400939</author><pubDate>Mon, 16 Jul 2018 23:38:47 +0800</pubDate><description><![CDATA[一、IOC容器初始化过程

IOC容器初始化是由如上篇所讲到的refresh()，方法来启动的，启动包括BeanDefinition的Resource定位，载入和注册这个主要过程。



过程一：resource定位，是由resourceLoader通过getResource(String location) 的接口来完成的。
	过程二：将用户定义的Bean表示为IOC容器的内部数据结构BeanD...]]></description><category></category></item><item><title><![CDATA[SpringIOC源码分析(三)__BeanFactory与FactoryBean]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/80993376</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/80993376</guid><author>u013400939</author><pubDate>Thu, 12 Jul 2018 23:50:18 +0800</pubDate><description><![CDATA[二、BeanFactory与FactoryBean       BeanFactory顾名思义是个bean工厂，是个IOC容器，负责管理和生产bean。       FactoryBean是一个Bean，能生产对象的工厂Bean。实现与工厂模式和修饰器模式相似。 Spring 中有两种Bean，一直为普通的Bean由容器管理，一种就是工厂Bean，由Spring管理。  package com.q...]]></description><category></category></item><item><title><![CDATA[ES基本查询及HEAD操作]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/81008581</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/81008581</guid><author>u013400939</author><pubDate>Wed, 11 Jul 2018 23:26:52 +0800</pubDate><description><![CDATA[一、基本查询操作选择索引设置type查询条件搜索        操作说明如图：二、must, must not,should的区别must 返回的文档必须满足must子句的条件，类似于 ==   and must not返回的文档必须不满足must not 子句的条件  类似于!=  not should 返回的文档只要满足should中的一个条件即可  类似于 ||  or三、各类查询参数ter...]]></description><category></category></item><item><title><![CDATA[SpringIOC源码分析(二)__BeanFactory]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/80934232</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/80934232</guid><author>u013400939</author><pubDate>Wed, 11 Jul 2018 09:30:55 +0800</pubDate><description><![CDATA[一、BeanFactory           beanFactory是一个接口类提供了最基本的IOC容器的功能，负责管理和生产bean。beanFactory源码：package org.springframework.beans.factory;  
import org.springframework.beans.BeansException;  
public interface Bean...]]></description><category></category></item><item><title><![CDATA[SpringIOC源码分析(一) ___IOC容器]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/80919331</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/80919331</guid><author>u013400939</author><pubDate>Thu, 05 Jul 2018 17:57:24 +0800</pubDate><description><![CDATA[一、IOC容器概念            ioc容器是一个javaBean容器，通过工厂模式和反射，实现了对bean和bean依赖关系的管理，将对象的引用或依赖关系的管理，交与容器来实现。通过依赖注入，将bean注入容器而不是传统的在类自身通过new对象来创建。对象之间的依赖关系从传统的由类对象自身维护“反转”为由容器来维护。解耦了对象之间的依赖关系，提高了可测试性。二、IOC容器接口设计图IOC...]]></description><category></category></item><item><title><![CDATA[责任链模式的应用]]></title><link>https://blog.youkuaiyun.com/u013400939/article/details/80882813</link><guid>https://blog.youkuaiyun.com/u013400939/article/details/80882813</guid><author>u013400939</author><pubDate>Mon, 02 Jul 2018 13:18:06 +0800</pubDate><description><![CDATA[一、责任链模式概念         链是一系列节点的集合，链的各节点可以灵活的拆分重组。当一个请求需要多个对象进行处理，将多个对象串成一个链路，从而避免了请求发送者和接收者之间的耦合关系。请求者不知道是链路上的哪个节点做了处理。二、优缺点         优点： 1. 降低了请求发送者和接收者之间的耦合关系                   2. 把多个判定与条件处理放在各个类中去处理，代码更加...]]></description><category></category></item></channel></rss>