自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jizhibing的博客

天道酬勤

  • 博客(46)
  • 资源 (9)
  • 收藏
  • 关注

原创 【ElasticSearch】(九)—— 集群问题

目录一、集群脑裂问题1.集群职责划分2.脑裂问题3.小结二、集群分布式存储1.分片存储测试2.分片存储原理三、集群分布式查询四、集群故障转移 elasticsearch中集群节点有不同的职责划分:默认情况下,集群中的任何一个节点都同时具备上述四种角色。职责分离可以让我们根据不同节点的需求分配不同的硬件去部署。而且避免业务之间的互相干扰。一个典型的es集群职责划分如图: 脑裂是因为集群中的节点失联导致的。例如一个集群中,主节点与其它节点失联:此时,node2和node3认为node1宕机,就会重新选主: 当

2022-07-07 22:10:39 950 9

原创 【ElasticSearch】(八)—— 自动补全

目录一、拼音分词器二、自定义分词器三、自动补全查询四、实现酒店搜索框自动补全1.修改酒店映射结构2.HotelDoc实体3.自动补全查询的JavaAPI当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项,如图:这种根据用户输入的字母,提示完整词条的功能,就是自动补全了。因为需要根据拼音字母来推断,因此要用到拼音分词功能。要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。地址:https://github.com/medcl/elasti

2022-07-07 21:39:00 1015 1

原创 【ElasticSearch】(七)—— 聚合查询(aggs)

目录一、聚合的定义聚合种类二、DSL实现聚合1)Bucket聚合语法2)聚合结果的排序3)限度聚合范围4)Metric聚合语法5)小结三、RestAPI实现聚合1)API语法2)代码实现一、聚合的定义聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如:我的网站的平均加载时间是多少? 根据交易量,谁是我最有价值的客户? 什么会被认为是我网络上的大文件? 每个产品类别有多少产品?实现这些统...

2022-05-26 23:37:35 8393 9

原创 【ElasticSearch】(六)—— 搜索结果处理

目录一、排序1)普通字段排序2)地理坐标排序1、语法说明:2、示例:二、分页1)基本的分页2)深度分页问题3)小结三、高亮1)高亮原理2)实现高亮1、高亮的语法2、注意事项3、示例四、总结一、排序elasticsearch默认是根据相关度算分(_score)来排序,但是也支持自定义方式对搜索结果排序。可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。1)普通字段排序keywo...

2022-05-23 22:48:04 784 2

原创 【ElasticSearch】(五)—— DSL查询文档

目录1)DSL查询分类2)全文检索查询1、使用场景2、基本语法3、示例4、总结3)精准查询1、term 查询2、range查询3、总结4)地理坐标查询1、矩形范围查询2、附近查询5)复合查询1、相关性算分2、算分函数查询3、布尔查询elasticsearch的查询依然是基于JSON风格的DSL来实现的。1)DSL查询分类Elasticsearch提供了机遇JSON的DSL(Domain Specific Lan...

2022-05-19 23:30:05 1296 8

原创 【ElasticSearch】(四)—— RestClient操作ES

目录​编辑一、RestClient操作索引环境搭建1、导入数据2、导入项目3、mapping映射分析4、初始化RestClient1)创建索引库1、代码解读2、完整示例2)删除索引库3)判断索引库是否存在4)总结二、RestClient操作文档1)新增文档1、索引库实体类2、语法说明3、完整代码2)查询文档1、语法说明2、完整代码3)删除文档4)修改文档1、语法说明2、完整代码5)批量导入文档1、..

2022-05-17 22:51:57 5455 15

原创 【ElasticSearch】(三)—— 索引及文档操作

目录一.索引库操作1) mapping映射属性2)索引库的CRUD1.创建索引库和映射2.查询索引库3.修改索引库4.删除索引库3)总结二.文档操作1)新增文档2)查询文档3)删除文档4)修改文档1.全量修改2.增量修改5)总结一.索引库操作索引库就类似数据库表,mapping映射就类似表的结构。我们要向es中存储数据,必须先创建“库”和“表”。1) mapping映射属性mapping是对索引库中文档的约...

2022-05-15 22:32:23 550 17

原创 【ElasticSearch】(二)—— 安装elasticsearch

一.部署单点es1.1.创建网络因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:docker network create es-net1.2.加载镜像这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G。不建议大家自己pull。文章最后有提供了镜像的tar包:大家将其上传到虚拟机中,然后运行命令加载即可:# 导入数据docker load -i es.tar同理还...

2022-05-15 21:22:14 985 6

原创 【ElasticSearch】(一)—— 初识ES

目录一、初识ElasticSearch1)了解ES1、elasticsearch的作用2、ELK技术栈3、elasticsearch和lucene4、为什么不是其他搜索技术?5、总结一、初识ElasticSearch1)了解ES1、elasticsearch的作用elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容例如:在百度搜索答案在电商网站中搜索商品在打车软件..

2022-05-11 23:12:54 429 3

原创 【微服务】(十六)—— 分布式事务Seata

目录事务ACID原则一、理论基础1)CAP理论CAP定理- ConsistencyCAP定理- AvailabilityCAP定理-Partition tolerance2)BASE理论二、分布式事务Seata1)初识seata2)Seata架构3)微服务集成seata1、首先,引入seata相关依赖:2、然后,配置application.yml,让微服务通过注册中心找到seata-tc-server:三、XA模式1)XA模式原理2...

2022-05-10 00:13:41 24894 188

原创 【微服务】(十五)—— Seata 的部署和集成

一、部署Seata的tc-server1.下载首先我们要下载seata-server包,地址在http😕/seata.io/zh-cn/blog/download.html2.解压在非中文目录解压缩这个zip包,其目录结构如下:3.修改配置修改conf目录下的registry.conf文件:内容如下:registry { # tc服务的注册中心类,这里选择nacos,也可以是eureka、zookeeper等 type = "nacos" nacos { # s.

2022-04-27 19:10:13 1155 19

原创 【微服务】(十四)—— Sentinel 规则持久化

目录一、授权规则1)授权规则2)自定义异常结果二、规则管理模式1)规则管理模式-原始模式2)规则管理模式-pull模式3)规则管理模式-push模式三、Sentinel 规则持久化1)修改order-service服务1.引入依赖2.配置nacos地址2)修改sentinel-dashboard源码1. 解压2. 修改nacos依赖3. 添加nacos支持4. 修改nacos地址5. 配置nacos数据源6. 修改前端页...

2022-04-26 23:08:09 5612 5

原创 【微服务】(十三)—— Sentinel隔离和降级

目录1)线程隔离(仓壁模式)2)降级熔断1、熔断策略-慢调用2、熔断策略-异常比例3、熔断策略-异常数据3) Feign整合Sentinel1、修改OrderService的application.yml文件,开启Feign的Sentinel功能2、给FeignClient编写失败后的降级逻辑虽然限流可以尽量避免因高并发而引起的服务故障,但服务还会因为其它原因而故障。而要将这些故障控制在一定范围,避免雪崩,就要靠线程隔离(舱壁模式)和熔断降级...

2022-04-25 23:17:52 1073 12

原创 【微服务】(十二)—— Sentinel限流

目录1)簇点链路2)快速入门1、设置流控规则:2、jemeter测试:3)流控模式1、流控模式-直接2、流控模式-关联3、流控模式-链路4)流控效果1、流控效果-warm up2、流控效果-排队等待5)热点参数限流1)簇点链路簇点链路:就是项目内的调用链路,链路中被监控的每个接口就是一个资源。默认情况下sentinel会监控SpringMVC的每一个端点(Endpoint),因此SpringMVC的每一个端点(End...

2022-04-24 23:05:37 2413 7

原创 【微服务】(十一)—— 初识Sentinel

目录一、雪崩问题及解决方案1)什么是雪崩效应2)雪崩原因3)解决方案1、超时处理:2、舱壁模式:3、熔断降级:二、服务保护技术对比三、Sentinel介绍和安装1)认识Sentinel2)安装Sentinel控制台1、下载jar包2、访问控制台页面3、修改配置四、微服务整合Sentinel1)引入sentinel依赖:2)配置控制台地址:3)访问微服务的任意端点,触发sentinel监控一、雪崩问题及解决方案...

2022-04-23 23:12:02 1417 7

原创 【微服务】(十)—— 统一网关Gateway

一、概述1)为什么需要网关网关功能:身份认证和权限校验 服务路由、负载均衡 请求限流2)SpringCloud Gateway在SpringCloud微服务体系中,有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关;但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloud Gateway网上很多地方都说Zuul是阻塞的,Gateway是非阻塞的...

2022-04-22 23:17:55 1695 9

原创 【微服务】(八)—— Eureka 平滑迁移 Nacos 方案

目录一、多注册和聚合订阅平滑迁移架构二、迁移步骤第⼀步,支持多注册和多订阅1、修改 pom.xml,添加 spring-cloud-starter-alibaba-nacos-discovery 依赖:2、支持多注册3、修改 Ribbon 配置,支持同时从多个注册中心订阅4、将修改后的应⽤打包,并部署5、验证迁移是否成功6、完成应⽤迁移第二步,迁移所有应⽤。第三步,删除原有配置中心信息,完成迁移。三、风险点和回滚四、其他问题一、多...

2022-04-21 19:43:03 2732 14

原创 【微服务】(九)—— Feign

目录​一、简介  二、Feign简单应用1)pom.xml引入Feign的依赖2)代码改造1、启动类添加注解 @EnableFeignClients2、 添加调用Feign接口三、Feign的自定义配置1)方式一:基于配置2)方式二:java代码方式四、Feign 的性能优化1)连接池配置1、依赖引入:2、配置连接池:2)日志级别一、简介  Feign是一个声明式 WebService 客户端,使用Feign能够让编写W...

2022-04-20 23:07:08 2597 18

原创 【微服务】(七)—— Nacos注册中心

目录一、Nacos 注册中心的设计原理1、数据模型2、数据⼀致性3、负载均衡4、健康检查二、Nacos 注册中心服务数据模型1、服务(Service)和服务实例(Instance)1)定义服务3)定义实例4)实例元数据5)持久化属性2、集群(Cluster)1、定义集群3、生命周期1)服务的⽣命周期2)实例的⽣命周期3)集群的⽣命周期4)元数据的⽣命周期一、Nacos 注册中心的设计原理1、数据...

2022-04-20 19:32:09 4603 9

原创 【微服务】(六)—— Nacos设计原理

目录一、简介Nacos 起源Nacos 定位Nacos 优势二、Nacos 总体设计1)Nacos 架构1、设计原则2、架构图3、用户层4、业务层5、内核层6、插件2) Nacos 配置模型1、概念介绍2、Nacos 配置模型三、Nacos 内核设计1)Nacos ⼀致性协议1、为什么 Nacos 需要⼀致性协议2、为什么 Nacos 选择了 Raft 以及 Distro3、Nacos 的⼀致性协议层2...

2022-04-19 23:06:54 2033 6

原创 剑指offer-八股文(一)

剑指offer-八股文(一)1.微服务篇1.1.SpringCloud常见组件有哪些?问题说明:这个题目主要考察对SpringCloud的组件基本了解难易程度:简单参考话术:SpringCloud包含的组件很多,有很多功能是重复的。其中最常用组件包括:•注册中心组件:Eureka、Nacos等•负载均衡组件:Ribbon•远程调用组件:OpenFeign•网关组件:Zuul、Gateway•服务保护组件:Hystrix、Sentinel•服务配置管理组件:SpringCloudCo

2022-04-19 19:20:28 792 4

原创 【微服务】(五)—— Nacos安装指南

【微服务】(五)—— Nacos安装指南1.Windows安装开发阶段采用单机安装即可。1.1.下载安装包在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:GitHub主页:https://github.com/alibaba/nacosGitHub的Release下载页:https://github.com/alibaba/nacos/releases如图:windows版本可使用nacos-server-1.4.3zip包。1.2.解压将

2022-04-18 22:25:13 590 5

原创 【微服务】(四)—— Ribbon

目录一、Ribbon概述二、负载均衡三、负载均衡流程​四、负载均衡策略1、RoundRobinRule:​2、AvailabilityFilterRule​3、WeightedResponseTimeRule​4、ZoneAvoidanceRule​5、BestAvailableRule​6、RandomRule​7、RetryRule​五、代码实操1、maven导入2、代码方式修改3、配置文件修改4、饥饿加载一、...

2022-04-18 14:43:04 897 19

原创 【微服务】(三)—— Eureka

本期介绍🍖目录一、什么是Eureka1、背景(1)netflix公司与AWS的ELB(2)eureka诞生(3)ELB和eureka搭配使用2、eureka优势(1)提供完成的服务注册和服务发现实现(2)与spirngcloud无缝集成(3)采用AP而非CP(4)开源3、eureka和zk作为注册中心比较二、eureka架构设计1、设计理念(1)AP由于CP(2)Peer to Peer设计(3)Zone和region的设计(4)se.

2022-04-18 06:42:12 1414 7

原创 【微服务】(二)—— 服务拆分与远程调用

本期介绍🍖目录一、服务拆分1)拆分时机1、有快速迭代的需求2、提交代码频繁出现大量冲突3、小功能要积累到大版本才能上线4、解决高并发横向扩展问题2)拆分原则3)拆分方法2、需求变化频率3、服务性能要求4、组织架构和团队规模5、安全边界6、技术异构4)服务拆分注意事项二、 远程调用1)RestTemplate简介2)提供者和消费者三、代码实操1)注册RestTemplate2)服务远程调用RestTemplate..

2022-04-17 21:50:31 1390 4

原创 【微服务】(一)—— 初识微服务

一、微服务技术栈

2022-04-17 10:58:29 2170 11

原创 大数据-kafka学习(八)—— 生产调优、硬件配置选择

一、场景说明100万日活,每人每天100条日志,每天总共的日志条数上100万*100条=1亿条1亿/24小时/60分/60秒=1150条/每分钟每条日志大小:0.5K-2K(取1K)1150条/每分钟*1K≈ 1m/s高峰期每分钟:1150条*20倍 = 23000条。每秒多少数据量:20MB/s。二、服务器台数选择服务器台数 = 2*(生产者峰值生产速率*副本/100)+1= 2*(20m/s * 2/100)+1= 3 (台)三、磁盘选择...

2022-04-16 14:24:45 2169 18

原创 大数据-kafka学习(七)——集成SpringBoot

SpringBoot是一个在JavaEE开发中非常常用的组件。可以用于Kafka的生产者,也可以用于SpringBoot的消费者。一、SpringBoot项目搭建如果Spring Initializr产生如下错误解决方法Custom的URL改为https://start.aliyun.com/SpringBoot项目创建成功二、 生产者代码package com.myself.springboot.springbootkafka.controller;..

2022-04-15 22:35:38 2891 16

原创 大数据-kafka学习(六)——简单代码实现生产者消费者

maven依赖导入 <dependencies> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.12</artifactId> <version>2.2.0</version> </dependency> </dependencies>

2022-04-14 23:20:58 2556 17

原创 大数据-kafka学习(五)——消费者

一、KAfka消费方式1、pull(拉)模式:consumer 采用从broker中主动拉取数据,Kafka 采取这种方式2、push(推)模式:Kafka 没有采用这种方式,是因为由broker决定消费发生速率,很难适应所有消费者的消费速率。例如推送的速度是50m/sConsumer1、Consumer2就来不及处理消息。Pull模式不足之处是,如果kafka没有数据,消费者可能陷入循环中,一直返回空数据。二、消费者总体工作流程三、消费者组Consumer G.

2022-04-14 22:43:07 2626 3

原创 大数据-kafka学习(四)——文件存储

Kafka文件存储机制

2022-04-12 23:18:29 2055 9

原创 IntelliJ IDEA For Mac 快捷键

IntelliJ IDEA For Mac 快捷键IntelliJ Idea mac一款功能强大的Java IDE编辑器,支持java体系的web、客户端、安卓等开发。下载地址:https://www.macw.com/mac/1889.html​​​​建议将 Mac 系统中与 IntelliJ IDEA 冲突的快捷键取消或更改,不建议改 IntelliJ IDEA 的默认快捷键。Mac键盘符号和修饰键说明⌘ Command⇧ Shift⌥ Option⌃ Control↩︎ Re

2022-04-11 23:34:14 306 10

原创 大数据-kafka学习(三)——Kafka Broker

Kafka Broker工作流程Leader 和 Follower 故障处理细节

2022-04-10 21:18:04 761 8

原创 Zookeeper可视化神器 prettyzoo

PrettyZoo 是一个基于 Apache Curator 和 JavaFX 实现的 Zookeeper 图形化管理客户端。使用了 Java 的模块化(Jigsaw)技术,并基于 JPackage 打包了多平台的可运行文件(无需要额外安装 Java 运行时)。

2022-04-10 12:47:45 4643 7

原创 大数据-kafka学习(二)——生产者

生成经验-数据乱序1、kafka在1.x版本之前保证数据分区有序,条件如下:max.in.flight.requests.per.connection=1(不需要考虑是否开启幂等性)。2、kafka在1.x及以后版本保证数据分区有序,条件如下:(1)未开启幂等性max.in.flight.requests.per.connection需要设置为1(2)开启幂等性max.in.flight.reques...

2022-04-10 11:52:41 386 2

原创 剑指offer--网络编程(二)

1、 http响应码301 和 302 代表的是什么?有什么区别?答:301,302 都是HTTP状态的编码,都代表着某个URL发生了转移。区别:301 redirect:301 代表永久性转移(Permanently Moved)。 302 redirect:302 代表暂时性转移(Temporarily Moved )。2、forward 和 redirect 的区别?Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。直接转发方式(Forward

2022-04-08 23:53:13 123

原创 剑指offer-异常(一)

1、throw 和 throws 的区别?throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。2、final、finally、finalize 有什么区别?final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。 finally一般作用在try-catch代码块中,在处理异常的时候,通常我们

2022-04-08 23:45:27 104 1

原创 剑指offer-网络安全(一)

1、什么是XSS攻击,如何避免?XSS攻击又称CSS,全称Cross Site Script(跨站脚本攻击),其原理是攻击者向有XSS漏洞的网站中输入恶意的HTML代码,当用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。XSS攻击类似于 SQL注入攻击,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制,获取用户的一些信息。XSS是Web 程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式。X

2022-04-08 23:37:11 3343

原创 剑指offer-网络编程(一)

1、session 和 cookie 有什么区别?由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。这个Session是保存在服务端的,有一个唯一标识。在服务端保存Session的方法很多,内存、数据库、文件都有。集群的

2022-04-08 23:29:12 117

原创 剑指offer-锁(一)

1、 ThreadLocal 是什么?有哪些使用场景?线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。Java提供ThreadLocal类来支持线程局部变量,是一种实现线程安全的方式。但是在管理环境下(如 web服务器)使用线程局部变量的时候要特别小心,在这种情况下,工作线程的生命周期比任何应用变量的生命周期都要长。任何线程局部变量一旦在工作完成后没有释放,Java 应用就存在内存泄露的风险。2、说一下 synchronized 底层实现原理?synchroni.

2022-04-08 23:22:31 160

微服务快速入门,图解微服务

微服务快速入门,图解微服务

2022-05-11

图解kafka,快速学习kafka

图解kafka,快速学习kafka

2022-05-10

设计模式设计模式设计模式设计模式

设计模式设计模式设计模式设计模式

2022-04-23

markdown nice 最新插件 mdnice_1.0.7.zip

mdnice_1.0.7.zip

2022-04-13

JAVA后端架构师.pdf

JAVA后端架构师.pdf

2022-04-10

性能测试方案,性能测试方案

性能测试

2022-04-07

dubbo学习 dubbo-dubbo-3.0.5.tar.gz

dubbo学习dubbo-dubbo-3.0.5.tar.gz

2022-04-07

顶尖的Java多线程、锁、内存模型面试题!.docx

面试必备-多线程,锁

2022-04-07

空空如也

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

TA关注的人

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