自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 springcloud笔记

SpringCloud微服务概述[马丁福勒微服务论文] : https://martinfowler.com/articles/microservices.html什么是微服务目前的微服务并没有一个统一的标准,一般是以业务来划分将传统的一站式应用,拆分成一个个的服务,彻底去耦合,一个微服务就是单功能业务,只做一件事。与微服务相对的叫巨石微服务与微服务架构微服务是一种架构模式或...

2019-10-14 12:16:00 209

原创 解决报错java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present

今天在运行程序的时候,一直报“java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present”的错误, 代码之前一直没有动过,唯一的改变的就是之前用的是jdk8,昨天卸载了jdk8,重装了jdk12。百度原因,发现是因为用了jdk12的缘故。因为JAXB-API是java ee的一部分,在jdk12中没...

2019-09-04 22:02:27 14835 23

原创 SpringBoot 在IDEA中实现热部署

第一步:具体步骤:打开顶部工具栏 File -> Settings -> Default Settings -> Build -> Compiler 然后勾选 Build project automatically第二步:具体步骤:同时按住 Ctrl + Shift + Alt + / 然后进入Registry ,勾选自动编译并调整延时参数compiler.aut...

2019-07-07 21:59:31 337

原创 Springboot项目配置Mybatis二级缓存

什么是缓存?简单来讲,缓存就是存储在缓冲区里的内容,或者可以理解为存在内存中的内容。用户可以将经常查询的内容放到缓存中,再次使用时直接从缓存中取值,而不需要再查询数据库。这样做的优点是响应迅速,减少了系统资源(网络资源、CPU资源等)开销;缺点是需要占用内存资源,服务器一旦关机,缓存就会丢失,重启后需要重新将写一遍数据到内存。Mybatis的缓存Mybatis的缓存分为一级缓存和二级缓存。一级缓存是默认开启的,二级缓存需要手动开启。一级缓存是SqlSession级别的缓存,作用域是一个SqlSess

2020-08-12 18:34:57 1520

原创 索引管理_ mapping root object深入剖析

什么是 root object?就是某个 type 对应的 mapping json,包括了 properties,metadata(_id,_source,_type),settings(analyzer),其他settings(比如include_in_all)如下高亮部分,“my_type” 这个一个大 json 就叫做 root objectPUT my_index{ "ma...

2019-11-04 16:41:32 280

原创 索引管理_内核级知识点:深入探秘type底层数据结构

type,是一个index中用来区分类似的数据的,类似的数据,但是可能有不同的fields,而且有不同的属性来控制索引建立、分词器field的value,在底层的lucene中建立索引的时候,全部是opaque bytes类型,不区分类型的lucene是没有type的概念的,在document中,实际上将type作为一个document的field来存储,即_type,es通过_type来进行...

2019-11-04 16:31:37 191

原创 索引管理_快速上机动手实战修改分词器以及定制自己的分词器

1、默认的分词器standardstandard tokenizer:以单词边界进行切分standard token filter:什么都不做lowercase token filter:将所有字母转换为小写stop token filer(默认被禁用):移除停用词,比如a the it等等2、修改分词器的设置启用english停用词token filterPUT /my_inde...

2019-11-04 16:28:34 220

原创 索引管理_快速上机动手实战创建、修改以及删除索引

1.为什么要手动创建索引?更加灵活2.创建索引例子:PUT /index0{ "settings": { "number_of_shards": 1, "number_of_replicas": 0 }, "mappings": { "mytype":{ "properties": { "myfield":{ ...

2019-11-04 16:24:28 120

原创 初识搜索引擎_上机动手实战基于scoll技术滚动搜索大量数据

如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scoll滚动查询, 一批一批的查,直到所有数据都查询完处理完使用scoll滚动搜索,可以先搜索一批数据,然后下次再搜索一批数据,以此类推,真到搜索的全部的数据来,scoll搜索会在第二次搜索的时候,保存一个当时的视图快照,之后只会基于该旧的视图快照提供数据搜索,如果这个期间数据变更,是不会让用户看到的采用基于_ doc进行...

2019-11-04 16:21:44 145

原创 初识搜索引擎_搜索相关参数梳理以及bouncing results问题解决方案

1、preference决定了哪些shard会被用来执行搜索操作_primary, _primary_ first, _local, _only_ node:xyz ,_prefer_node:xyz , _shards:2,3bouncing results问题, 两个document排序, field值相同; 不同的shard上, 可能排序不同;每次请求轮询打到不同的replica sh...

2019-11-04 16:17:50 127

原创 初识搜索引擎分布式搜索引擎内核解密之fetch phase

1、fetch phbase.工作流程(1) coordinate. node构建完priority queue之后,就发送mget请求去所有shard上获取对应的document(2)各个shard将document返回给coordinate node .(3) coordinate node将合并后的document结果返回给client客户端I2、一般搜索,如果不加from和size...

2019-11-04 16:11:53 198

原创 初始搜索引擎_分布式搜索引擎内核解密之query phase

1、 query phase(1)搜索请求发送到某-个coordinate node,构构建一个priori ty queue,长度以paging操作from和size为准,默认为10(2) coordinate node将请求转发到所有shard,每个shard本地搜索,并构建一个本地的priority queue(3)各个shard将自己的pri ority queue返回给coordi...

2019-11-04 16:09:57 151

原创 Java 操作Elasticsearch Demo

环境:安装elasticsearch-6.2.4安装kibana-6.2.4安装ik分词器并将ik分词器解压到Elasticsearch目录的plugins目录中配置运行:第一步:进入Elasticsearch安装目录下的config目录,修改elasticsearch.yml文件.在文件的末尾加入以下代码:http.cors.enabled: true http.cors.allo...

2019-11-04 15:59:25 378

原创 springboot整合rabbitmq实例

springboot整合rabbitmq实例工程目录结构1.pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...

2019-10-31 10:18:21 941 4

原创 RabbitMQ快速入门笔记

1.RabbitMQ安装https://blog.csdn.net/weixin_45012575/article/details/1028251242.简单队列https://blog.csdn.net/weixin_45012575/article/details/1028256183.work queue 工作队列https://blog.csdn.net/weixin_45012...

2019-10-30 20:07:26 175

原创 rabbitmq Confirm三种模式

生产者端confirm模式的实现原理生产者将信道设置成confirm模式,一旦信道进入confirm模式,所有在该信道上面发布的消息都会被指派一个唯一的ID(从1开始),一旦消息被投递到所有匹配的队列之后,broker就会发送一个确认给生产者 (包含消息的唯一ID) ,这就使得生产者知道消息已经正确到达目的队列了,如果消息和队列是可持久化的,那么确认消息会将消息写入磁盘之后发出,broke...

2019-10-30 20:05:40 3965 1

原创 事务机制

Rabbitmq的消息确认机制(事务+confirm)在rabbitmq中我们可以通过持久化数据解决rabbitmq服务器异常的数据丢失问题,问题:生产者将消息发送出去之后,消息到底有没有到达rabbitmq 服务器,默认的情况是不知道的;两种方式:AMQP实现了事务机制,Conirm模式。事务机制txSelect txCommit txRolback中txSelect:...

2019-10-30 20:00:53 141

原创 Topic Exchange

前面讲到direct类型的Exchange路由规则是完全匹配binding key与routing key,但这种严格的匹配方式在很多情况下不能满足实际业务需求。topic类型的Exchange在匹配规则上进行了扩展,它与direct类型的Exchage相似,也是将消息路由到binding key与routing key相匹配的Queue中,但这里的匹配规则有些不同,它约定routing key...

2019-10-30 19:58:19 381

原创 Direct Exchange

6.1简介一方面是接收生产者的消息,另一方面是向队列推送消息匿名转发 “”Fanout(不处理路由键)Direct(处理路由键)6.2.路由模式生产者package com.blj.rabbitmq.routing;import com.blj.rabbitmq.util.ConnectionUtils;import com.rabbitmq.clie...

2019-10-30 19:55:17 105

原创 订阅模式 publish/subscribe

5.1模型解读:1.一个生产者,多个消费者。2.每一个消费者都有自己的队列。3. 生产者没有直接把消息发送到队列 而是发到了交换机转发器exchange4.每个队列都要绑定到交 换机上5.生产者发送的消息经过交换机到达队列就能实现一个消息被多个消费者消费5.2生产者package com.blj.rabbitmq.ps;import com.blj.rabbitmq....

2019-10-30 19:49:59 263

原创 消息应答与消息持久化

消息应答boolean autoAck = false;channel.basicConsume(QUEUE_NAME, autoAck, consumer);boolean autoAck = true;(自动确认模式)一旦rabbitmq将消息分发给消费者。就会从内存中将消息删除。这个时候如果杀死正在执行的消费者,就会造成消息丢失。boolean autoAck=false;...

2019-10-30 19:45:55 96

原创 公平分发fair dipatch

生产者package com.blj.rabbitmq.workfair;import com.blj.rabbitmq.util.ConnectionUtils;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;/** * 生产者 * * @author BaiLiJun o...

2019-10-30 19:43:39 120

原创 work queue 工作队列

2.1模型为什么会出现工作队列。Simple队列是一一对应的,而且我们实际开发生产者发送消息是毫不费力的,而消费者一般是要跟业务相结合的.消费者接收到消息之后就需要处理可能需要花费时间,这时候队列就会积压了很多消息。2.2生产者package com.blj.rabbitmq.work;import com.blj.rabbitmq.util.ConnectionUtils;...

2019-10-30 19:40:37 131

原创 rabbitmq简单队列

新建项目:myrabbitmqpom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch...

2019-10-30 19:37:44 130

原创 RabbitMQ安装

1.RabbitMQ安装RabbitMQ官网:https://www.rabbitmq.com1.rabbitmq对应erlang版本2.下载rabbitmq和erlangerlang下载地址:https://www.erlang.org/downloads/22.0rabbitmq下载地址:https://www.rabbitmq.com/install-windows.html...

2019-10-30 19:30:23 142

原创 Java数组和List之间相互转换

Java数组转List的三种方式及对比import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;/** * Java数组转List的三种方式及对比 * @author BaiLiJun on 2019/10/25 */public ...

2019-10-28 19:06:35 349

原创 SpringCloud的配置实战

SpringCloud的配置实战1.介绍:其实前面client的配置案例都是帮助理解这个组件为主,并没有很大的实际意义。。。。。。这节的案例中是配置一个Provider,一个eureka,他们的配置统一在github上获取,实现统一配置分布式管理和多环境变更,这个才比较有实战意义。2、实现过程:1. 先写好provider和Eureka的配置yml文件,这两个文件和平常配置没什么不同,因为...

2019-10-14 14:45:43 171

原创 SpringCloud Config 分布式配置中心

SpringCloud Config 分布式配置中心1、概述分布式系统面临问题,配置问题集中式的、动态的配置管理必不可少Spring colud Config为微服务架构中心的微服务提供集中式的外部配置支持,配置服务器为各个不同的微服务应用提供一个中心化的外部配置Spring colud Config分为服务端和客户端两部分服务端也成为分布式配置中心,他是一个独立的微服务应用,...

2019-10-14 14:37:47 213

原创 zuul路由网关

zuul路由网关1、概述Zuul包含了对请求的路由和过滤的主要功能:路由功能:主要负责将外部请求转发到具体的微服务上,是实现外部访问入口的基础过滤功能:负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础Zuul与Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的信息,也即以后的微服务访问都是通过Zu...

2019-10-14 14:23:40 127

原创 Hystrix 断路器

Hystrix 断路器1、概述分布式面临的问题复杂分布式体系结构复杂的依赖关系,不可避免的存在服务宕机,网络中断的问题服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的服务,这就是所谓的扇出。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的雪崩效应。对于高流...

2019-10-14 14:14:37 647 1

原创 Feign负载均衡

Feign负载均衡1、概述官网解释:http://projects.spring.io/spring-cloud/spring-cloud.html# spring-cloud-feignFeign:是一个声明式WebService客户端。 使用Feign能让编写Web Service客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。 Fei...

2019-10-14 13:52:44 332

原创 Ribbon负载均衡

Ribbon负载均衡1.概述:Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目, 主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时, 重试等。简单的说,就是在配置文件中列出Load Balance...

2019-10-14 13:47:26 177

原创 Eureka服务注册中心构建

Eureka服务注册中心构建1、Eureka基本架构及初步原理SpringCloud封装了Netflix公司开发的Eureka模块来实现服务注册和发现。Eureka采用了C-S的设计架构。Eureka作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,采用Eureka 的客户端连接到Eureka Server并维持心跳连接,这样系统的维护人员就可以通过Eureka Serve...

2019-10-14 13:22:25 251

原创 构建服务消费者 springcloud-study-consumer-dept-80

构建服务消费者 springcloud-study-consumer-dept-80pom文件配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc...

2019-10-14 12:38:55 133

原创 构建服务提供者 springcloud-study-provider-dept-8001

构建服务提供者 springcloud-study-provider-dept-8001pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc...

2019-10-14 12:27:46 322

原创 构建公共子模块 springcloud-study-api

构建公共子模块 springcloud-study-apipom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...

2019-10-14 12:20:24 202

原创 Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)

-- 1 、 查看当天日期select current_date(); -- 2、 查看当天时间select current_time(); -- 3、查看当天时间日期select current_timestamp(); -- 4、查询当天记录select * from 表名 where to_days(时间字段名) = to_days(now()); -- 5、查询昨天...

2019-09-30 12:51:34 461 1

原创 Mybatis SQL语句控制台打印

一、普通Spring项目:修改Mybatis.xml<configuration> <settings> <setting name="logImpl" value="STDOUT_LOGGING" /> </settings></configuration>二、 SpringBoot:修改appl...

2019-09-29 15:45:36 64

原创 java中BigDecimal比较大小和加减乘除

比较大小:int a = bigdemical.compareTo(bigdemical2)a = -1,表示bigdemical小于bigdemical2;a = 0,表示bigdemical等于bigdemical2;a = 1,表示bigdemical大于bigdemical2;//该方法优先于//六个布尔比较运算符(<,==,>,> =,!=,<=)中...

2019-09-27 18:58:26 4962

原创 时间格式化工具类

时间格式化工具类package com.ja.util;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;im...

2019-09-27 18:53:56 102

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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