- 博客(84)
- 资源 (1)
- 收藏
- 关注
原创 ElasticSearch
ElasticSearch回顾ElasticSearchd的自我介绍主要功能基础概念Elastic Stack生态和场景方案日志收集系统Metric收集和APM性能监控多数据中心方案ElasticSearch和Kibana安装ElasticSearchkibana安装访问注意需要打开防火墙,不然会访问不到ES 普通查询和聚合查询批量导入数据查询语法查询所有分页查询(from+size)指定字段查询:match查询段落匹配:match_phrase多条件查询:bool查询条件:query or filter聚
2022-05-29 17:05:29
4281
1
原创 MongoDB
基础概念NoSQLNoSQL是一种非关系型的DMS,不需要固定的架构,可以避免join链接,并且易于扩展NoSQL数据库常用于具有庞大数据存储需求的分布式数据存储NoSQL的功能非关系NoSQL数据库从不遵循关系模型切勿为tables提供固定的固定列记录使用自包含的聚合或BLOB不需要对象关系映射和数据规范化没有复杂功能,例如查询语句、查询计划者参照完整性联接,ACID动态架构NoSQL数据库是无模式的或具有宽松模式的数据库不需要对数据架构进行任何形式的定义提供同
2022-05-29 14:41:03
1296
原创 SpringBean的加载过程
文章目录spring读取配置或注解的过程spring的bean的生命周期实例化Instantiation初始化spring的BeanPostProcessor处理器实例化阶段初始化阶段容器启动运行阶段容器的停止销毁一些关键问题FactoryBean和BeanFactory的区别?Spring如何解决循环依赖问题spring读取配置或注解的过程先通过扫描指定包路径下的Spring注解,比如@Component,@Service,@Lazy,@Sope等Spring识别的注解或者XML配置的属性(通过读取流
2021-03-22 15:40:02
822
原创 Mysql的索引实现之B树和B+树
文章目录B树定义B树的插入操作B树的删除操作B+树定义B+树的插入操作B+树的删除操作B树定义B树也称为B-树,它是一棵多路平衡查找树,一般描述一棵B树时需要指定它的阶树,阶数表示一个节点最多可以有多少个孩子节点,一般用字母m表示阶数,当m取2时,就是我们常见的二叉搜索树一般m阶的B树定义如下:每个节点最多有m-1个关键字根节点最少可以只有一个关键字非根节点至少有Math.ceil(m/2)-1个关键字TIP:Math.ceil()表示加上0.5再向下取整每个节点中的关键字都按照从小到大
2021-03-19 17:57:15
566
原创 分布式事务的实现方案
文章目录CAP定理分布式的实现方案XA方案(两阶段提交方案)TCC方案本地消息表可靠消息最终一致性方案最大努力通知方案CAP定理要看分布式事务先要了解CAP定理CAP定理在分布式系统中就是:一致性,可用性,分区容忍性一致性:分布式环境下多个节点得数据是否强一致可用性:分布式服务能一致保证可用状态,当用户发出一个请求后,服务能在有限时间内返回结果分区容忍性:特指对网络分区得容忍性对于共享数据系统,最多只能同时拥有CAP其中得两个,没法三者兼顾任两者得组合都有其适用场景真实系统应当是AC
2021-03-15 11:34:38
229
原创 23种设计模式
文章目录单例设计模式工厂设计模式单例设计模式定义:单例设计模式,是一种常用的软件设计模式,在它的核心结构中只包含一个被称为单例的特殊类,通过单例模式可以保证系统中一个类只用一个实例,即一个类只有一个对象实例特点:单例类只能有一个实例单例类必须自己创建自己的唯一实例单例类必须给所有其他对象提供这一实例单例模式的要点:私有的构造函数指向自己实例的私有静态引用以自己实例为返回值的静态的公有方法单例模式根据实例化对象的时机的不同分为两种:一种是饿汉式单例,一种是懒汉式单例饿汉式单
2021-03-04 15:01:00
975
3
原创 数据库面试常问的一些概念
文章目录超键、候选键、主键、外键什么是事务?什么是锁?数据库事务的四个特性及含义超键、候选键、主键、外键超键:在关系中能唯一标识元组的属性集称为关系模式的超键,一个属性可以作为一个超键,多个属性组合在一起也可以作为一个超键,超键包含候选键和主键候选键:是最小超键,既没有冗余元素的超键主键:数据库表中对存储数据对象予以唯一和完整标识的数据列或属性的组合,一个数据列只能有一个主键,且主键的取值不能缺失,既不能为空值(null)外键:一个表中存在另一个表的主键称此表的外键什么是事务?什么是锁?
2021-02-25 16:32:38
292
原创 Java泛型面试题
文章目录Java中的泛型是什么 ? 使用泛型的好处是什么?Java的泛型是如何工作的 ? 什么是类型擦除 ?如何工作?可以把List传递给一个接受List< Object >参数的方法吗?如何阻止Java中的类型未检查的警告?Java中List和原始类型List之间的区别?Array中可以用泛型吗?如何编写一个泛型方法,让它能接受泛型参数并返回泛型类型?Java中的泛型是什么 ? 使用泛型的好处是什么?泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指
2021-02-25 14:51:37
1288
原创 使用LinkedHashMap实现一个LRU算法的缓存
/** * @author wdj * Created on 2021/2/25 14:28 */public class LRUcache<K,V> extends LinkedHashMap<K,V> { //默认缓存值 private static final int DEFAULT_NODE_NUM = 11; //缓存限定值 private int capacityLimit; LRUcache(){ thi
2021-02-25 14:45:39
195
原创 java最强基础面试题集锦
文章目录基础篇一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?说说&和&&的区别。在JAVA中如何跳出当前的多重嵌套循环?switch语句能否作用在byte上,能否作用在long上,能否作用在String上?short s1= 1; s1 = (s1+1是int类型,而等号左边的是short类型,所以需要强转)1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?(没有错)char型变量中能不能存贮一个中文汉字?为什么?用最有效率的方法
2021-02-23 15:49:48
1657
1
原创 Hutool中那些常用的工具类和方法
文章目录ConvertDateUtilStrUtilClassPathResourceReflectUtilNumberUtilBeanUtilCollUtilMapUtilAnnotationUtilSecureUtilCaptchaUtilConvert类型转换工具类,用于各种类型数据的转换。//转换为字符串int a = 1;String aStr = Convert.toStr(a);//转换为指定类型数组String[] b = {"1", "2", "3", "4"};Integ
2021-02-09 15:39:43
1985
原创 nginx的一些小功能
文章目录反向代理静态代理动态代理文件压缩地址重写按目录划分项目配置HTTPS生成SSL自签名证书配置支持HTTPS如何申请受浏览器信任的证书反向代理反向代理就是当请求访问你的代理服务器时,代理服务器会对你的请求进行转发,可以转发到静态的资源路径上去,也可以转发到动态的服务接口上去。下面我们以对域名进行代理为例,来讲讲如何进行静态代理和动态代理静态代理静态代理就是将请求代理到不同的静态资源路径上去,需要修改nginx的配置文件,如下:server { listen 80;
2021-02-09 15:07:58
336
原创 RabbitMQ的5种核心消息模式
文章目录简介相关概念安装访问配置5种消息模式简单模式工作模式发布/订阅模式路由模式通配符模式简介RabbitMQ是最受欢迎的开源消息中间件之一,在全球范围内被广泛应用。RabbitMQ是轻量级且易于部署的,能支持多种消息协议。RabbitMQ可以部署在分布式系统中,以满足大规模、高可用的要求。相关概念以消息模式中的路由模式为例安装此文只讲诉linux下安装的步骤下载rabbitmq 3.7.15的Docker镜像docker pull rabbitmq:3.7.15使用Dock
2021-02-08 17:23:02
357
原创 使用Docker部署redis集群并整合springBoot
文章目录简介redis集群搭建修改配置文件编写docker-compose文件SpringBoot中使用Redis集群修改application.yml配置文件,添加Redis集群配置引入lettuce依赖简介为了提高Redis的存储容量和响应速度,有时候我们需要搭建Redis集群。本文主要讲述Redis集群环境的搭建步骤以及如何在SpringBoot中整合使用Redis集群。redis集群搭建这里使用Docker Compose来搭建,我们将搭建一个6节点的Redis集群,包括3个主节点和3个从节
2021-02-08 15:41:07
438
原创 Redis面试题
文章目录简介什么是Redis?Redis的优缺点为什么要用 Redis /为什么要用缓存?为什么要用 Redis 而不用 map/guava 做缓存?Redis为什么这么快?数据类型Redis有哪些数据类型?简介什么是Redis?Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串(String)、
2021-02-08 15:09:47
2372
1
原创 mysql实现读写分离
文章目录简介前提安装Gaea安装Go语言环境安装Gaeanamespace配置文件简介传统的MySql读写分离方案是通过在代码中根据SQL语句的类型动态切换数据源来实现的,那么有没有什么中间件可以自动实现读写分离呢?小米开源的数据库中间件Gaea就可以实现,接下来我们将详细讲解如何使用Gaea来实现MySql的读写分离。Gaea是小米中国区电商研发部研发的基于MySql协议的数据库中间件,目前在小米商城大陆和海外得到广泛使用,包括订单、社区、活动等多个业务。Gaea支持分库分表、SQL路由、读写分离等
2021-02-05 11:26:35
825
2
原创 MySQL主从复制的原理以及实现
文章目录什么是主从复制?主从复制的原理主实例搭建从实例搭建将主从数据库进行连接主从复制测试什么是主从复制?主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从数据库上,然后在从数据库上对这些日志进行重新执行,从而使从数据库和主数据库的数据保持一致。主从复制的原理Mysql主库在事务提交时会把数据变更作为事件记录在二进制日志Binlog中;主库推送二进制日志文件Binlog中的事件到从库的中继日志Relay log中,之后从库根据中继日志重做数据变更操作,通过逻辑复制来达到主库和从库的数
2021-02-03 23:39:49
452
1
原创 MySQL数据库面试题
文章目录数据库基础知识为什么要使用数据库?什么是SQL?什么是MySQL?数据库三大范式是什么?mysql有关权限的表都有哪几个?MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型数据库基础知识为什么要使用数据库?数据保存在内存优点: 存取速度快缺点: 数据不能永久保存数据保存在文件优点: 数据永久保存缺点:1)速度比内存操作慢,频繁的IO操作。2)查询数据不方便数据保存在数据库1)数据永久保存2)使用SQL语句,查询方便效率高。3)管理数据
2021-02-03 16:38:59
697
原创 实现SpringBoot整合ELK
文章目录准备ELK环境下载安装包elasticsearchLogstash使用docker-compose.yml脚本启动ELK服务启动ELK三个容器后的操作给Elasticsearch安装IK分词器logstash需要安装json_lines插件,并重新启动关闭防火墙访问KibanaSpringBoot集成Logstash引入依赖包在resource下添加配置文件logback-spring.xml让logback的日志输出到logstash启动springboot应用在kibana中查看日志信息准备E
2021-01-28 22:18:57
1086
原创 JVM常见面试题目
文章目录Java内存区域说一下 JVM 的主要组成部分及其作用?说一下 JVM 运行时数据区深拷贝和浅拷贝说一下堆栈的区别?队列和栈是什么?有什么区别?HotSpot虚拟机对象探秘对象的创建为对象分配内存处理并发安全问题对象的访问定位内存溢出异常Java会存在内存泄漏吗?请简单描述垃圾收集器简单描述一下垃圾回收机制GC是什么?为什么要GC?垃圾回收的优点和原理,并考虑2种回收机制垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?Java中都有哪些引用类型?怎么判
2021-01-26 17:46:33
5655
2
原创 快速实现一个小文件存储
安装MinIO(Docker方式)下载MinIO的Docker镜像docker pull minio/minio容器构建语句docker run -p 9090:9000 --name minio \ --restart=always \ -v /mydata/minio/data:/data \ -v /mydata/minio/config:/root/.minio \ -d minio/minio server /data构建成功运行之后运行成功后,访问htt
2021-01-25 17:29:39
402
原创 docker部署nacos
拉取镜像docker pull nacos/nacos-server:1.3.0数据库创建数据库,库名为nacos_config,创建表脚本如下,也可从官网连接获取/* * Copyright 1999-2018 Alibaba Group Holding Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compli
2021-01-23 23:45:15
433
原创 一些常见的Common类
文章目录通用返回对象CommonResult分页数据封装类CommonPage通用返回对象CommonResultpublic class CommonResult<T> { private long code; private String message; private T data; protected CommonResult() { } protected CommonResult(long code, String mess
2021-01-22 00:27:47
2787
1
原创 并发容器之ConcurrentHashMap详解
文章目录ConcurrentHashMap的关键属性ConcurrentHashMap的关键属性tablevolatile Node<K,V>[] table;装载Node的数组,作为ConcurrentHashMap的数据容器,采用懒加载的方式,直到第一次插入数据的时候才会进行初始化操作,数组的大小总是为2的幂次方。nextTablevolatile Node<K,V>[] nextTable;扩容时使用,平时为null,只有在扩容时才为非null.sizeCtl
2021-01-22 00:13:15
1122
1
原创 网络
文章目录网络7层架构TCP/IP原理网络访问层(Network Access Layer)网络层(Internet Layer)传输层(Tramsport Layer-TCP/UDP)应用层(Application Layer)TCP三次握手/四次挥手数据包说明三次握手四次挥手HTTP原理传输流程HTTP状态HTTPSCDN原理分发服务系统负载均衡系统管理系统网络7层架构7层模型主要包括:物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特
2021-01-20 16:41:26
448
原创 Spring原理
文章目录Spring特点Spring的核心组件Spring常用模块Spring中主要的包Spring常用注解@Controller@RestController@Component@Repository@Service@ResponseBody@RequestMapping@Autowired@PathVarlable@requestParam@RequestHeader@ModelAttribute@SessionAttribute@Valid@CookieValueSpring和一些第三方结合Sprin
2021-01-20 10:34:02
222
原创 docker使用docker-compose构建容器时使用external_links失效
例如:monitor: image: monitor:1.0-SNAPSHOT container_name: monitor ports: - 8101:8101 volumes: - /mydata/app/monitor/logs:/var/logs - /etc/localtime:/etc/localtime environment: - 'TZ="Asia/Shanghai"' external_l
2021-01-20 00:30:44
3764
原创 搭建jenkins
文章目录准备jenkins需要的环境下载jenkinsjenkins配置构建任务安装git安装maven配置在jenkins配置用到的工具在jenkins上创建一个项目准备jenkins需要的环境安装jenkins之前需要先搭建jdk环境,安装git和maven准备jdk这里用oracle jdk8丢到服务器某个目录执行解压tar -zxvf jdk-8u251-linux-x64.tar.gz目录下多了一个文件夹剪切到/usr/local/javamv jdk1.8.0_251
2021-01-17 00:17:13
529
原创 maven安装
下载maven压缩包并进行解压缩tar -zxvf apache-maven-3.6.3-bin.tar.gz下载maven的tar包可到以下网址https://maven.apache.org/download.cgivim /etc/prifile #添加环境变量export MAVEN_HOME=/var/local/apache-maven-3.6.2export MAVEN_HOMEexport PATH=$PATH:$MAVEN_HOME/bin#刷新环境变量source
2021-01-16 16:44:17
114
原创 GIT安装
Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel下载git解压并进行编译命令:tar -zxf git-2.9.5.tar.gz$ cd git-
2021-01-16 16:23:53
530
原创 JAVA基础
文章目录Java异常分类及处理概念异常分类异常处理方式throw和throws的区别JAVA反射动态语言反射机制概念(运行状态中知道类所有的属性和方法)反射的应用场合JAVA反射API反射使用步骤获取Class对象的3种方法创建对象的两种方法JAVA注解概念4种标准元注解@Documented描述-javadoc@Inherited描述了某个被标注的类型是被继承的注解处理器JAVA内部类静态内部类成员内部类局部内部类(定义在方法中的类)匿名内部类(要继承一个父类或者实现一个接口,直接使用new来生成一个对象
2021-01-15 17:09:11
559
原创 JAVA多线程并发
文章目录JAVA并发知识结构JAVA线程实现/创建方式继承Thread类实现Runnable接口ExecutorService,Callable,Future有返回值线程基于线程池的方式4种线程池线程生命周期(状态)终止线程4种方式正常运行结束使用退出标志位退出线程Interrupt方法结束线程stop方法终止线程(不安全)sleep和wait得区别start和run区别JAVA后台线程JAVA并发知识结构JAVA线程实现/创建方式继承Thread类Thread类本质上是实现了Runnable接口
2021-01-15 12:03:48
1475
原创 如何创建一个线程池
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import java.util.concurrent.ThreadPoolExecutor;/** * @author wdj *
2021-01-13 10:05:09
904
原创 编写一个springTest
先引入依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <version>2.1.7.RELEASE</version> </dependency> &
2021-01-11 16:59:17
264
原创 JAVA集合
文章目录接口继承关系和实现ListArrayList(数组)Vector(数组实现,线程同步)LinkedList(链表)SetHashSet(Hash表)TreeSet(二叉树)LinkHashSet(HashSet+LinkedHashMap)MapHashMapConcurrentHashMapHashTable(线程安全)TreeMap(可排序)LinkedHashMap(记录插入排序)接口继承关系和实现集合类存放在Java.util包中,主要有3种:set(集),list(列表包含Queue)
2021-01-11 14:33:43
228
原创 JVM篇
文章目录JVM简介JVM运行过程JVM内存结构JVM运行时数据区Java堆详细说明新生代JVM简介JVM包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆和一个存储方法域,JVM是运行在操作系统上的。JVM运行过程Java源文件通过编译器,能够生产相应的.Class文件,也就是字节码文件,而字节码文件又通过Java虚拟机中的解释器,编译成特定机器上的机器码。(1)Java源文件 -》 编译器 -》 字节码文件(2)字节码文件 -》 JVM -》 机器码每台机器上的解释器是不同的,但是实
2021-01-08 17:56:18
1193
原创 ISO8601标准的时间格式和普通时间格式之间的转换
普通时间转ISO8601格式的时间public static String getISO8601TimestampFromDateStr(String timestamp){ java.time.format.DateTimeFormatter dtf1 = java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime ldt = LocalDateTime.parse(
2021-01-08 08:57:39
8196
原创 EncryptUtils(加密和解密以及一些编码解码的工具类)
import org.apache.commons.codec.binary.Base64;import org.apache.commons.codec.digest.DigestUtils;import org.apache.commons.codec.digest.HmacAlgorithms;import org.apache.commons.codec.digest.HmacUtils;import org.apache.commons.codec.digest.Md5Crypt;imp
2021-01-08 08:57:14
3751
原创 JSONObject转换的一些例子
JSONObject和json字符串之间的转换JSON字符串转JSONObject对象JSONObject jsonObject = JSONObject.parseObject(“JSON字符串”);JSONObject对象转JSON字符串JSONObject jsonObject;String jsonStr = JSON.parseObject(jsonObject.toJSONString()).getString("code");JSONObject和实体对象之间的转换JSONO
2021-01-08 08:56:06
709
PHP完整项目(附数据)下载即可使用
2019-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人