自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ElasticSearch(二)简介

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

2023-05-03 21:31:02 1881 2

原创 ElasticSearch(一)下载及安装(windows)

本地下载相应的插件,解压,然后手动上传到elasticsearch的plugins目录,然后重启ES实例就可以了。直接访问:http://localhost:9200/直接访问:http://localhost:5601/备注:网址打不开,或者打开速度慢是正常情况。直接运行elasticsearch.bat。启动ES实例时,出现示图,即安装成功。出现下示图,则说明本地启动成功。出现下示图,则说明本地启动成功。直接运行Kibana.bat。

2023-05-02 12:28:43 1433

原创 Guava缓存(一)基础

Guava缓存,谷歌开源的一种本地缓存,使用本节点的内存来存储的,实现原理类似于ConcurrentHashMap

2022-11-02 23:44:33 6460

原创 Redis设计与实现(六)整数集合

整数集合

2022-10-12 21:55:33 485

原创 Redis设计与实现(四)跳跃表

跳表

2022-10-07 20:45:15 531

原创 数据结构与算法学习笔记(七)选择、冒泡、快排排序

排序

2022-10-07 18:29:48 194

原创 数据结构与算法学习笔记(六)插入、希尔、归并排序

排序算法

2022-10-06 20:46:15 351

原创 Redis设计与实现(三)字典

Redis - 哈希

2022-09-30 00:01:17 520

原创 Redis设计与实现(二)链表

Redis-链表

2022-09-28 22:23:45 107

原创 Redis设计与实现(一)简单动态字符串

Simple Dynamic String,简单动态字符串

2022-09-27 23:35:48 345

原创 数据结构与算法学习笔记(五)队列

队列

2022-09-24 21:30:44 697

原创 数据结构与算法学习笔记(四)栈

2022-09-18 22:55:18 233

原创 SpringBoot启动流程梳理-自定义实现@SpringBootApplication注解

SpringBoot启动流程梳理-自定义实现@SpringBootApplication注解

2022-08-11 02:01:21 376

原创 面试题个人汇总

面试题个人汇总

2022-07-30 20:25:11 519

原创 面试题个人汇总 - 网络协议

面试汇总

2022-07-21 20:04:55 439

原创 List.stream().collect(Collectors.toMap(User::getId, k1->k1,(k1,k2)->k2))的意义

2022-04-10 22:35:06 2084 1

原创 Spring Security 学习笔记(一)基础使用

1. 简介1.1 官网Spring Security 官网1.2 Spring Security定义Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。Spring Security 主要实现了Authentication(认证,解决who are you? ) 和 Access Control(访问控制,也就是what are you allowed to do?,也称为Authorization)。Spring Security在

2022-03-24 23:20:13 343

原创 Java Optional类API笔记

1. 创建Optional类API1.1 Optional.of(T t) :创建一个 Optional 实例,当 t 为null时抛出异常API:1.2 Optional.ofNullable(T t):创建一个 Optional 实例,但当 t为null时不会抛出异常,而是返回一个空的实例API:1.3 Optional.empty(): 创建一个空的 Optional 实例API:2. Optional类获取值API2.1 Optional. get(

2022-03-12 21:15:04 1100 1

原创 面试题个人汇总 - Spring

1. 什么的是bean的自动装配,有哪些方式Spring 容器能够自动装配相互合作的bean,这意味着容器不需要< constructor-arg >和< property >配置,能通过Bean工厂自动处理bean之间的协作。开启自动装配,只需要在xml配置文件< bean >中定义“autowire”属性<bean id = "cutomer" class = "com.xxx.Customer" auowire = "">auowire属性有5

2022-02-23 10:30:24 133

原创 2022年面试经历

2022-02-17 下午1.SpringMVC常用注解@RequestParam:将请求参数绑定到你的控制器的方法参数上@RequestBody:如果作用在方法上,就表示该方法的返回结果是直接按写入的Http responsebody中@PathVaribale:用于绑定url中的占位符@RequsetMappring:用来处理请求地址映射的,也就是说将其中的所有处理器方法都映射到url路径上2.Redis内存管理(其实就是问内存淘汰策略)noeviction:添加数据时,如果redi

2022-02-17 20:30:28 214

原创 面试题个人汇总 - 微服务&分布式

1. 什么是服务雪崩?什么是服务限流?服务雪崩 : 服务A调用服务B,服务B调用服务C,当大量请求突然请求服务A(服务A本身可以抗住这些请求),但是服务C存在请求堆积,从而会使服务B请求堆积,从而服务A不可用。服务限流 : 在高并发情况下为了保护系统,可以对访问服务的请求进行数量上的限制,从而防止系统不被大量请求压垮。2. 什么是服务降级、什么是熔断服务降级 : 解决系统资源不足和海量业务请求之间的矛盾。在暴增的流量请求下,对一些非核心业务、非关键业务进行有选择性的放弃,一次来释放系统资源,保

2022-02-14 17:43:06 1431

原创 面试题个人汇总 - JAVA基础

面试总结

2022-02-10 13:51:12 113

原创 大型网站技术架构 读书笔记 (八) 固若金汤:网站的安全架构

1. 道高一尺魔高一丈的网站应用攻击与防御1.1 XSS攻击XSS攻击即跨站点脚本攻击(Cross SiteScript),指黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。常见的XSS攻击类型有两种,一种是反射型,攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的。另外一种XSS攻击是持久型XSS攻击,黑客提交含有恶意脚本的请求,保存在被攻击的Web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的。预防方案:

2022-01-18 15:48:29 109

原创 大型网站技术架构 读书笔记 (七) 随需应变:网站的可扩展架构

扩展性(Extensibility): 指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。伸缩性(Scalability): 指系统能够通过增加(减少)自身资源规模的方式增强(减少)自己计算处理事务的能力。1. 构建可扩展的网站架构设计网站可扩展架构的核心思想是模块化,并在此基础之上,降低模块间的耦合性,提高模块的复用性。模块分布式部署以后具体聚合方式主要有分布式消息队列和分布式服务。2. 利用分布式消息队列降低系统耦合性2.1 事件驱动架构事件驱动架构(Event Driven

2022-01-17 15:06:38 232

原创 大型网站技术架构 读书笔记 (六) 网站的伸缩性架构

网站的伸缩性是指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。1. 网站架构的伸缩性设计1.1 不同功能进行物理分离实现伸缩纵向分离(分层后分离):将业务处理流程上的不同部分分离部署,实现系统伸缩性。横向分离(业务分割后分离):将不同的业务模块分离部署,实现系统伸缩性。1.2 单一功能通过集群规模实现伸缩将相同服务部署在多台服务器上构成一个集群整体对外提供服务。2. 应用服务器集群的伸缩性设计2.1 负载均衡实现应用服务器伸缩性2.2

2022-01-16 20:08:32 1517

原创 大型网站技术架构 读书笔记 (五) 网站的高可用架构

1. 网站可用性的度量与考核1.1 网站可用性度量网站不可用时间(故障时间)=故障修复时间点网故障发现(报告)时间点网站年度可用性指标=(11网站不可用时间/年度总时间)年100%1.2 网站可用性考核可用性指标是网站架构设计的重要指标,对外是服务承诺,对内是考核指标。从管理层面,可用性指标是网站或者产品的整体考核指标,具体到每个工程师的考核,更多的是使用故障分。2. 高可用的网站架构3. 高可用的应用3.1 通过负载均衡进行无状态服务的失效转移负载均衡,顾名思义,主要使用在业务量和数据

2022-01-13 17:46:29 1055

原创 大型网站技术架构 读书笔记 (四) 网站的高性能架构

1. 网站性能测试1.1 用户视角的网站性能从用户角度,网站性能就是用户在浏览器上直观感受到的网站响应速度快还是慢。1.2 开发人员视角的网站性能开发人员关注的主要是应用程序本身及其相关子系统的性能,包括响应延迟、系统吞吐量、并发处理能力、系统稳定性等技术指标。1.3 运维人员视角的网站性能运维人员更关注基础设施性能和资源利用率,如网络运营商的带宽能力、服务器硬件的配置、数据中心网络架构、服务器和网络带宽的资源利用率等。1.4 性能测试指标响应时间 : 指应用执行一个操作需要的时间,包括从

2022-01-13 16:10:17 822

原创 大型网站技术架构 读书笔记 (三) 大型网站核心架构要素

1. 性能2. 可用性衡量一个系统架构设计是否满足高可用的目标,就是假设系统中任何一台或者多台服务器宕机时,以及出现各种不可预期的问题时,系统整体是否依然可用。3. 伸缩性伸缩性是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。4. 扩展性衡量网站架构扩展性好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要任何改动或者很少改动既有业务功能就可以上线新产品。网站可伸缩架构的主要手段是事件驱动架构和分布式服务。事件驱动

2022-01-05 17:12:08 2642

原创 大型网站技术架构 读书笔记 (二) 大型网站架构模式

1. 网站架构模式1.1 分层将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。1.2 分割分层是将软件在横向方面进行切分,那么分割就是在纵向方面对软件进行切分。1.3 分布式分布式应用和服务分布式静态资源分布式数据和存储分布式计算1.4 集群使用分布式虽然已经将分层和分割后的模块独立部署,但是对于用户访问集中的模块(比如网站的首页),还需要将独立部署的服务器集群化,即多台服务器部署相同应用构成一个集群,通过负

2022-01-05 15:57:52 1541

原创 大型网站技术架构 读书笔记 (一) 大型网站架构演化

1. 大型网站软件系统的特点高并发,大流量高可用海量数据用户分布广泛,网络情况复杂安全环境恶劣需求快速变更,发布频繁渐进式发展2. 大型网站架构演化发展历程(一) : 初始阶段(二) : 应用服务和数据服务分离(三) : 使用缓存改善网站性能(四) : 使用应用服务器集群改善网站的并发处理能力(五) : 数据库读写分离(六) : 使用反向代理和CDN加速网站响应CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,使用户在请求网站服务时,可以

2022-01-04 17:22:30 252

原创 Docker技术入门与实战(第3版) 读书笔记: (四)操作Docker容器

1. 创建容器1.1 新建容器新建一个容器:docker [container] create 例:docker create xxx参数信息:-l, --label=[]:以键值对方式指定容器的标签信息–label-file=[]:从文件中读取标签信息使用docker [container] create命令新建的容器处于停止状态,可以使用docker [container]start命令来启动它。1.2 启动容器使用docker [container] start命令来启动一

2022-01-04 14:48:41 104

原创 Docker技术入门与实战(第3版) 读书笔记: (三)使用Docker镜像

1. 获取镜像docker [image] pull命令:NAME : 镜像仓库名称(用来区分镜像)TAG : 是镜像的标签(往往用来表示版本信息,如果不显式指定TAG,则默认会选择latest标签,这会下载仓库中最新版本的镜像)docker[image] pull NAME[:TAG]pull子命令 :-a, --all-tags=true|false:是否获取仓库中的所有镜像,默认为否–disable-content-trust:取消镜像的内容校验,默认为真2. 查看镜像信息

2021-12-31 16:20:01 788

原创 Docker技术入门与实战(第3版) 读书笔记: (二)核心概念与安装配置

1. 核心概念1.1 Docker镜像Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了Apache应用程序(或用户需要的其他软件)。可以把它称为一个Apache镜像。镜像是创建Docker容器的基础。1.2 Docker容器Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而这些容器都是彼此相互隔离、互不可见的。1.3 Doc

2021-12-31 10:46:16 550

原创 Docker技术入门与实战(第3版) 读书笔记: (一)初识Docker与容器

1. 什么是Docker1.1 Docker开源项目背景Docker是基于Go语言实现的开源容器项目。它诞生于2013年年初,最初发起者是dotCloud公司。dotCloud公司也随之快速发展壮大,在2013年年底直接改名为Docker Inc,并专注于Docker相关技术和产品的开发,目前已经成为全球最大的Docker容器服务提供商。官方网站为docker.com。1.2 Linux容器技术——巨人的肩膀Linux容器(LinuxContainers, LXC)技术,基于一系列新引入的内核特性

2021-12-30 18:04:40 707

原创 深入理解Java虚拟机 读书笔记: (四)虚拟机性能监控、故障处理工具

1. 概述2. 基础故障处理工具工具分类:商业授权工具:主要是JMC(Java MissionControl)及它要使用到的JFR(Java FlightRecorder),JMC这个原本来自于JRockit的运维监控套件从JDK 7 Update 40开始就被集成到OracleJDK中,JDK 11之前都无须独立下载,但是在商业环境中使用它则是要付费的.正式支持工具:这一类工具属于被长期支持的工具,不同平台、不同版本的JDK之间,这类工具可能会略有差异,但是不会出现某一个工具突然消失的情况.实

2021-12-30 09:44:40 430

原创 深入理解Java虚拟机 读书笔记: (三)垃圾收集器与内存分配策略

1. 概述Java内存运行时区域内存情况:程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭(栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作,当方法结束或者线程结束时,内存自然就跟随着回收了)。Java堆和方法区这两个区域则有着很显著的不确定性。只有处于运行期间,才能明确程序会创建哪些对象,这部分内存的分配和回收是动态的。2. 对象已死?2.1 引用计数算法引用计数算法(Reference Counting),在对象中添加一个引用计数器,每当有一个地方引用它时,计

2021-12-19 23:43:56 457 1

原创 深入理解Java虚拟机 读书笔记: (二)Java内存区域与内存溢出异常

1. 概述Java 语言拥有虚拟机,可以进行自动化内存管理,不需要为程序中的产生的对象进行内存管理,不容易出现内存泄漏和内存溢出问题。与此同时,一旦出现内存泄漏和溢出方面的问题,那排查错误、修正问题将会成为一项异常艰难的工作。2. 运行时数据区域2.1 概念图2.2 程序计数器程序计数器(Program Counter Register):是一块较小的内存空间,当前线程所执行的字节码的行号指示器。作用: 通过计数器的值来判断下一条需要执行的字节码指令,它是程序控制流的指示器,进行分支、循环、

2021-12-06 17:01:30 438

原创 深入理解Java虚拟机 读书笔记: (一)走进Java

1. 概述1.1 概述Java不仅仅是一门编程语言,它还是一个由一系列计算机软件和规范组成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等多种场合1.2 优点结构严谨、面向对象编程摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想提供了一种相对安全的内存管理和访问机制,避免了绝大部分内存泄漏和指针越界问题实现了热点代码检测和运行时编译及优化…2. Java技术体系2.1 官方体系定义Java程序设

2021-12-04 14:41:46 127

原创 Spring之AOP小结(四)Springboot实现AOP日志记录Demo

1. 依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>2. 切面类重要注解:@Aspect:将一个java类定义为切面类@Pointcut:定义一个切入点,可以是一个规则表达式,比如下例中某个pack

2021-11-17 20:12:06 588

原创 PostgreSQL学习笔记(一)数据库字段类型及含义

注意:字段类型以navicat顺序为主,即英文字母顺序。名字长度描述范围bigserial8 字节自增的大范围整数1 ~ 9223372036854775807bit—位串,一串 1 和 0 的字符串bit(n):数据存储长度必须为n;bit varying(n):数据存储长度最大为nbool1 字节true/false“true”(真)或"false"(假)两个状态, 第三种"unknown"(未知)状态,用 NULL 表示box32 字节

2021-11-04 23:29:30 1208

空空如也

空空如也

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

TA关注的人

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