自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 问答 (7)
  • 收藏
  • 关注

原创 力扣 1493(删掉一个元素以后全为 1 的最长子数组)Java

len-1就代表结束下标,倒数第二个0的下标+1就是起始下标。

2023-04-25 01:34:06 636

原创 Redis最新版本安装教程——Linux操作系统(Centos7)

Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:Redis的官方网站地址:RedisRedis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures …https://redis.io/例如,我放到了/usr/local/src 目录:进行解压 进入

2023-04-23 20:41:13 513

原创 Sentinel——限流规则

簇点链路:就是项目内的调用链路,链路中被监控的每个接口就是一个资源。默认情况下sentinel会监控SpringMVC的每一个端点(Endpoint),因此SpringMVC的每一个端点(Endpoint)就是调用链路中的一个资源。流控、熔断等都是针对簇点链路中的资源来设置的,因此我们可以点击对应资源后面的按钮来设置规则:点击资源/order/{orderId}后面的流控按钮,就可以弹出表单。

2023-04-22 20:55:38 1621

原创 初始Sentinel

丰富的应用场景Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。

2023-04-21 19:02:04 678

原创 面试题——集合详解

5. addAll(Collection c) 没有元素时,扩容为 Math.max(10, 实际元素个数),有元素时为 Math.max(原容量 1.5 倍, 实际元素个数)extends E> c) 会使用 c 的大小作为数组容量。2. ArrayList(int initialCapacity) 会使用指定容量的数组。4. add(Object o) 首次扩容为 10,再次扩容为上次容量的 1.5 倍。1. ArrayList() 会使用长度为零的数组。

2023-04-20 22:25:35 294

原创 Nacos的服务注册表结构是怎样的?

结构为Map,其中最外层Map的key就是namespaceId,值是一个Map。内层Map的key是group拼接serviceName,值是Service对象。Service对象内部又是一个Map,key是集群名称,值是Cluster对象。接下来就是服务(Service)了,一个服务包含多个实例,但是可能处于不同机房,因此Service下有多个集群(Cluster),Cluster下是不同的实例(Instance)。

2023-04-18 16:58:33 486

原创 微服务面试篇——热点面试题及源码分析Day01——SpringCloud常见组件有哪些

服务配置管理组件:SpringCloudConfig、Nacos。SpringCloud包含的组件很多,有很多功能是重复的。服务保护组件:Hystrix、Sentinel。注册中心组件:Eureka、Nacos等。网关组件:Zuul、Gateway。远程调用组件:OpenFeign。负载均衡组件:Ribbon。

2023-04-18 16:13:05 118

原创 elasticsearch集群

单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点单点故障问题:将分片数据在不同节点备份(replica )

2023-04-17 21:14:20 412

原创 elasticsearch——数据同步

*** 交换机*//*** 修改和插入队列*//*** 删除队列*//*** 修改和新增RoutingKey*//*** 删除RoutingKey*/

2023-04-17 16:33:38 1662

原创 elasticsearch——自动补全

elasticsearch中分词器(analyzer)的组成包含三部分:character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。例如大小写转换、同义词处理、拼音处理等PUT /test},"py": {

2023-04-16 21:26:29 433

原创 elasticsearch——数据聚合

聚合(aggregations)可以实现对文档数据的统计、分析、运算。聚合常见的有三类:桶(Bucket)聚合:用来对文档做分组TermAggregation:按照文档字段值分组Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组度量(Metric)聚合:用以计算一些值,比如:最大值、最小值、平均值等Avg:求平均值Max:求最大值Min:求最小值Stats:同时求max、min、avg、sum等管道(pipeline)聚合:其它聚合的结果为基础做聚合。

2023-04-14 21:38:32 1548

原创 elasticsearch之RestClient查询文档

创建SearchRequest对象 准备Request.source(),也就是DSL。QueryBuilders来构建查询条件 传入Request.source() 的 query() 方法发送请求,得到结果 解析结果(参考JSON结果,从外到内,逐层解析)

2023-04-12 13:55:25 215

原创 elastissearch——排序结果处理

优点:支持随机翻页缺点:深度分页问题,默认查询上限(from + size)是10000场景:百度、京东、谷歌、淘宝这样的随机翻页搜索。

2023-04-12 11:03:48 657

原创 elasticsearch之DSL查询文档

过滤条件:哪些文档要加分算分函数:如何计算function score加权方式:function score 与 query score如何运算。

2023-04-11 21:13:52 815 2

原创 RestClient操作文档

初始化RestHighLevelClient创建XxxRequest。XXX是Index、Get、Update、Delete准备参数(Index和Update时需要)插入和更新发送请求。调用RestHighLevelClient#.xxx()方法,xxx是index、get、update、delete解析结果(Get时需要。

2023-04-10 17:55:23 121

原创 RestClient操作索引库

ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。mysql表结构es表结构。

2023-04-09 19:15:58 99

原创 Elasticsearch——文档操作

创建文档:POST /索引库名/_doc/文档id { json文档 }查询文档:GET /索引库名/_doc/文档id删除文档:DELETE /索引库名/_doc/文档id修改文档:全量修改:PUT /索引库名/_doc/文档id { json文档 }增量修改:POST /索引库名/_update/文档id { "doc": {字段}}

2023-04-08 21:05:37 1229

原创 索引库操作

创建索引库:PUT /索引库名查询索引库:GET /索引库名删除索引库:DELETE /索引库名添加字段:PUT /索引库名/_mapping。

2023-04-08 17:55:36 301

原创 初识elasticsearch

什么是正向索引?基于文档id创建索引。查询词条时必须先找到文档,而后判断是否包含词条什么是倒排索引?对文档内容分词,对词条创建索引,并记录词条所在文档的信息。查询时先根据词条查询到文档id,而后获取到文档。

2023-04-07 21:21:41 208

原创 SpringAMQP

官方网址官方文档。

2023-04-06 16:42:09 353

原创 RabbitMQ快速入门

RabbitMQ是基于Erlang语言开发的开源消息通信中间件在线拉取安装MQ-d \这里使用的都是Docker安装。

2023-04-04 22:11:18 427

原创 初识MQ——springCloud

1、耦合度高2、性能下降3、资源浪费4、级联失败。

2023-04-04 16:04:06 336

原创 数组比较内容是否相等,一行搞定

我们以前比较数组,是需要一个一个进行比较的,有一次刷题碰到了一个我称为666的函数。根据返回值Boolean类型就可以知道两个数组是否相等。

2023-04-01 23:58:35 296

原创 Dockerfile自定义镜像

1、Dockerfile本质是一个文件,通过指令描述镜像的构建过程2、Dockerfile的第一行必须是FROM,从一个基础镜像来构建3、基础镜像可以是一个基本操作系统,如Ubuntu,也可以是其他人制作好的镜像,例如:java:8-alpine。

2023-03-30 20:46:47 216

原创 Docker基本操作

docker ps 查看容器状态 ,但是默认只可以看到运行中的,想要查看所有的加上-a参数。docker rm 删除容器,但是不能删除运行中的容器,加上-f参数就可以强制删除。exec命令可以进入容器修改文件,但是在容器内修改文件是不推荐的。

2023-03-30 17:34:29 492

原创 初识Docker

Docker是一个快速交付应用、运行应用的技术:1:可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意的Linux操作系统。2:运行时利用沙箱机制形成隔离容器,各个应用互不干扰3:启动、移除都可以通过一行命令完成,方便快捷。

2023-03-29 19:54:23 459

原创 Java小技巧 二维数组排序 一行解决(实用至极)

经常刷题的小伙伴肯定对于二位数组排序甚是头疼,今天他来了~一行代码可以解决我们之前几十行的代码了,实用,妙也。people指你要排序的二位数组。

2023-03-22 20:46:26 250

原创 Java刷LeetCode算法总结(三点)

对于其中的s,也就是初始化的内容,我以前一直以为是一个自己定义并赋值过的字符串或者一个字符串常量,没想到还可以使用char[]数组,很神奇,那么String.valueOf(),这个方法对于字符数组转化字符串就没有必要了。前一个参数为要获取的键,后一个参数为获取不到的初始化代码,类似于三目运算符的思想了。之前不知道这个方法,就需要写一个 if-else语句判断,很是没有高手的风范。不仅可以进行简单的初始化,而且还可以做到比较复杂的,茅塞顿开。map的getOrDefault方法,例如。

2023-03-22 00:33:21 224

原创 统一网关Gateway

身份认证和权限校验服务路由、负载均衡请求限流。

2023-03-22 00:24:49 176

原创 http客户端Feign

修改配置类型我拿日志配置的设置举例。日志级别尽量用basic,我使用的是java代码方式,不是配置文件方式,你可以看到,我的配置文件日志级别注释掉了。使用HttpClient或OKHttp代替URLConnection导依赖配置文件开启功能,设置参数。

2023-03-04 14:04:24 522

原创 Nacos配置管理

在nacos中添加配置管理微服务中引入nacos的config依赖添加bootstrap.xml,配置cloud的属性值。不是所有的配置都适合放到配置中心,维护很繁琐将需要运行时调整的参数放到nacos配置中心,也就是自定义的配置。

2023-03-03 01:46:40 263

原创 Nacos注册中心

一级:提供者的服务。二级:集群的名称。三级:集群中部署了该服务的物理服务器。负载均衡策略优先选择同集群服务实例列表找不到提供者,才会去其他集群寻找,并且发出警告先确认集群中的实例列表,再根据负载均衡策略选择具体的实例权重策略值在0~1之间权重越大,概率越大0的话就不会被访问每个namespace都有一个唯一的ID,除了默认的public配置文件中的namespace属性设置的是ID,而不是名称不同namespace下的服务不可见,也就是说刚才你修改后就获取不到提供者的服务了。

2023-03-02 19:56:02 641

原创 Ribbon负载均衡

负载均衡规则规则接口是IRule默认是轮询算法负载均衡方式代码方式配置文件方式饥饿加载开启加载指定微服务名称。

2023-03-01 13:46:07 378

原创 Eureka注册中心

在eureka架构中,微服务角色有两类:eurekaserver:服务器,注册中心记录服务信息心跳监控errekaclient:客户端provider:服务提供者,例如user-service注册自己的信息到eurekaservice每隔30s向eurekaservice发送心跳consumer:服务消费者,例如order-service根据服务名称向eurekaservice拉取服务列表基于服务列表做负载均衡,选中一个微服务后发起远程调用引入eureka-server依赖。

2023-02-28 22:57:31 690 1

原创 服务拆分及远程调用

基于RestTemplate发起的http请求实现远程调用;http请求做远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数就可以。

2023-02-28 13:18:19 398

原创 认识微服务

单体架构特点:简单方便、高度耦合、扩展性差、适合小型项目、例如:学生管理系统分布式架构特点?松耦合、扩展性好、但架构复杂、难度大、适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案优点:拆分粒度更小、服务更独立、耦合度更低缺点:架构非常复杂,运维、监控、部署难度提高。

2023-02-27 23:20:25 101

原创 直接内存——Java

常见于NIO操作时,用于数据缓冲区分配回收成本较高,但读写性能高不受JVM内存回收管理。

2023-02-27 22:21:17 105

原创 StringTable(串池)——运行时常量池

看下面的这段代码说明:常量池中的字符串仅是符号,第一次用到时才变为对象利用串池的机制,来避免重复创建字符串对象字符串变量拼接的原理是,StringBuilder(1.8)字符串常量拼接的原理是编译期优化可以使用intern方法,主动将串池中还没有的字符串放入串池1.8:将这个字符串对象尝试放入串池,如果有则并不会放入,如果没有则放入串池,会把串池中的对象返回1.6:将这个字符串对象尝试放入串池,如果有则并不会放入,如果没有会把此对象复制一份,放入串池,会把串池中的对象返回。

2023-02-12 11:50:48 421

原创 Java 内存结构解密

物理上被称为寄存器,存取速度很快。

2023-02-11 12:41:21 441

原创 什么是JVM?

学习了Jvm,可以让我们在面试中如鱼得水,和别人拉开差距;理解底层的实现原理,能够解决一些响应缓慢,内容溢出等实际的开发问题;也是一名程序员进阶之路的必备技能。后续我会对其继续进行介绍。

2023-02-09 15:36:19 119

空空如也

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

TA关注的人

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