尚硅谷谷粒商城-分布式高级篇
尚硅谷谷粒商城-分布式高级篇
coder-N
无限进步
展开
-
102.全文检索-ElasticSearch-简介
什么是Elasticsearch是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。1.应用程序搜索2.网站搜索3.企业搜索4.日志处理和分析5.基础设施指标和容器检测6.应用程序性能检测7.地理空间数据分析和可视化8.安全分析9.业务分析基本概念1.index(索引)动词,相当于MySql中的insert名字,相当于MySql中的Database2.Type(类型)在Index(索引)中,可以定义一个或多个类型。类似原创 2020-10-21 14:08:27 · 118 阅读 · 0 评论 -
103.全文检索-ElasticSearch-Docker安装ES
全文检索-ElasticSearch-Docker安装ES一.Docker安装ElasticSearchsudo docker pull elasticsearch:7.4.2检查下载的镜像:sudo docker images下载EL可视化工具:sudo docker pull kibana:7.4.2EL相关配置(目的:修改此文件即可改变Docker内部EL的配置文件)sudo mkdir -p /mydata/elasticsearch/configsudo mkdir -p原创 2020-08-12 10:45:30 · 195 阅读 · 0 评论 -
104.全文检索-ElasticSearch-Docker安装Kibana
全文检索-ElasticSearch-Docker安装Kibana安装Kibanadocker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.0.102:9200 -p 5601:5601 \-d kibana:7.4.2一定将http://192.168.0.102:9200替换成你自己的真实的地址注意:它不是立马启动的,需要稍微等几秒中.此为安装成功了...原创 2020-08-12 13:50:39 · 134 阅读 · 0 评论 -
105.全文检索-ElasticSearch-入门_cat
全文检索-ElasticSearch-入门_cat/_cat/nodes:查看所有节点/_cat/health 查看健康状况/_cat/master/_cat/indices查看所有的索引原创 2020-08-12 14:14:52 · 113 阅读 · 0 评论 -
106.全文检索-ElasticSearch-入门-put&post新增数据
全文检索-ElasticSearch-入门-put&post新增数据索引一个文档(保存)保存一个数据,保存在哪个类型下,指定用哪个唯一标识PUT customer/external/1;在customer索引下的external类型下保存1号数据第一次为created.第二次为updatedPOST 说明:带有id 第一次为新增,第二次为更新操作不带id 每次都是新增操作...原创 2020-08-12 14:36:23 · 156 阅读 · 0 评论 -
107.全文检索-ElasticSearch-入门-get查询数据&乐观锁字段
全文检索-ElasticSearch-入门-get查询数据&乐观锁字段查询原创 2020-08-12 14:57:56 · 120 阅读 · 0 评论 -
108.全文检索-ElasticSearch-入门-put&post修改数据
第一次点击更新"_version": 5,"result": "updated",第二次点击更新对比原来数据,与原来一样就什么都不做,version、seq_no都不变不带updateput/post不带_update,每次都是新增数据,不做校验原创 2020-10-22 10:11:32 · 118 阅读 · 0 评论 -
109.全文检索-ElasticSearch-入门-删除数据&bulk批量操作导入样本测试数据
1.删除2.查询1号数据3.删除整个索引目前没有删除整个类型,只能删除整个索引再次查询4.bulk批量API新增测试数据自行百度查询测试数据,直接导入即可原创 2020-10-22 10:29:22 · 174 阅读 · 0 评论 -
110.全文检索-ElasticSearch-进阶-两种查询方式
1.SearchAPIES支持两种基本方式检索1.一个是通过使用REST request URI 发送搜索参数(uri+检索参数)2.另一个是通过使用 REST request body 来发送他们(uri+请求体)2.启动elasticsearch和kibana1.sudo docker ps -a2.sudo docker start xx xx3.sudo docker update xx --restart=always3.执行查询第二种:Query DSLElasticS原创 2020-10-22 10:51:38 · 181 阅读 · 0 评论 -
111.全文检索-ElasticSearch-进阶-QueryDSL基本使用&match_all
1.查询全部,按照金额倒叙排列2.查询全部,从0开始,查询5条数据3.返回部分字段原创 2020-10-22 11:02:38 · 197 阅读 · 0 评论 -
112.全文检索-ElasticSearch-进阶-match全文检索
1.match匹配查询当macth后面匹配一个非字符串,就是一个精确匹配2.match匹配字符串,为一个模糊查询全文检索最终会按照评分进行排序,会对检索跳进进行分词匹配原创 2020-10-22 11:15:16 · 128 阅读 · 0 评论 -
113.全文检索-ElasticSearch-进阶-match_phrase短语匹配
1.match_phrase(短语匹配)将需要匹配对值当成一个整体单词(不分词)进行检索原创 2020-10-22 11:20:00 · 217 阅读 · 1 评论 -
114.全文检索-ElasticSearch-进阶-multi_match多字段匹配
1.multi_match多字段匹配原创 2020-10-22 14:25:49 · 283 阅读 · 0 评论 -
115.全文检索-ElasticSearch-进阶-bool复合查询
1.bool复合查询复合语句可以合并,任何其他查询语句,包括复合语句,了解这一点是很重要的。这就意味着,复合语句之间可以互相嵌套,可以表达非常复杂的逻辑must是必须的意思;必须包含gender是F,address包含mill的条件;2.mast_not:必须不匹配3.should:应该满足,如果不满足也是可以查询出来的,只是获得的得分比较低...原创 2020-10-22 14:39:00 · 148 阅读 · 0 评论 -
116.全文检索-ElasticSearch-进阶-filter过滤
1.filter结果过滤并不是所有的查询都需要产生分数,特别是哪些仅用于‘filtering’【过滤】的文档。为了不计算分数ElasticSearch会自动检查场景并且优化查询的执行。2.年龄区间18到30之间3.改用filtermust和filter的区别:must体现了得分,filter没有...原创 2020-10-22 14:50:54 · 178 阅读 · 0 评论 -
117.全文检索-ElasticSearch-进阶-term查询
1.term和match的用法区别:我们如果查询精确字段的,我们就用term。如果你用term来查询address,会查询不出来任何结果,它是不会分词的。2.match下的address与address.keywordaddress是key值,默认value值中包含某一个,就可以匹配查询成功;而addres.keyword,则需要精确匹配上value值3.match_phrase(短语匹配)与address.keyword其实得到的结果是一样的。都是精确匹配4.另类情况删除add原创 2020-10-22 15:05:53 · 107 阅读 · 0 评论 -
118.全文检索-ElasticSearch-进阶-aggregations聚合分析
1.aggregations执行聚合聚合提供了从数据中分组和提取数据的能力。最简单的聚合方法大致等于SQL GROUP BY和SQL聚合函数。在ElasticSearch中,您有执行搜索返回 hits (命中结果),并且同时返回聚合结果,把一个响应中的所有hits分隔开的能力。这是非常强大且有效的。您可以执行查询和多个聚合,并且在一次使用中得到各自的返回结果,使用一次简介和简化的API来避免网络往返。2.搜索address中包含mill的所有人的年龄分布以及平均年龄,但不显示这些人的详情。2.原创 2020-10-23 09:14:21 · 147 阅读 · 0 评论 -
122.全文检索-ElasticSearch-分词-分词&安装ik分词
1.下载分词器1.1.下载地址:https://github.com/medcl/elasticsearch-analysis-ik/1.2.下载7.4.2版本2.安装分词器1.进入:/mydata/elasticsearch/plugins2.将下载好的ik分词器,放入上面目录中3.修改权限:chmod -R 777 ik/4.重启es:docker restart elasticsearch...原创 2022-02-15 22:50:20 · 782 阅读 · 0 评论 -
123.修改Linux网路设置
1.修改网络1.进入该目录:cd /etc/sysconfig/network-scripts2.修改:vi ifcfg-eth13.写入 IPADDR=192.168.56.10 NETMASK=255.255.255.0 DEVICE=eth1 PEERDNS=no4.service network restart2.安装1.替换新的yum源2.生成缓存:yum makecache3.yum install wget4.yum install -y unzip...原创 2022-02-16 09:58:31 · 349 阅读 · 0 评论 -
124.自定义扩展词库
1.查询虚拟机大小1.free -m2.关闭电源-设置-系统-30752.替换新的es1.停止es服务:docker stop 92fe82.移除es服务:docker rm 92fe83.安装新的es:docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \-e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \-v /mydata/elas原创 2022-02-16 10:00:10 · 82 阅读 · 0 评论 -
141.性能压测-压力测试-基本介绍
性能压测-压力测试-基本介绍压力测试压力测试考察当前软件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在.压测都是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误.有两种错误类型是:内存泄露,并发同步有效的压力测试系统将应用一想这些关键条件:重复、并发、量级、随机变量.1.性能指标1.响应时间:响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回端响应结束,整个过程所耗费端时间.2.HPS:原创 2020-09-24 09:45:42 · 149 阅读 · 0 评论 -
142.性能压测-压力测试-Apache JMeter安装使用
性能压测-压力测试-Apache JMeter安装使用1.JMeter安装网址https://jmeter.apache.org/download_jmeter.cgi进入到bin目录,点击jmeter.bat启动;Mac系统启动JMeter1.cd apache-jmeter-5.32.cd bin3.sh jmeter2.切换语言Options-Choose Language - Chinese(Simp...)3.模拟测试第一步:添加线程组线程数:200个,相当于原创 2020-09-24 14:42:16 · 91 阅读 · 0 评论 -
144.性能压测-性能监控-堆内存与垃圾回收
性能压测-性能监控-堆内存与垃圾回收影响性能1.数据库、应用程序、中间件(tomcat,Nginx)、网络和操作系统等方面2.首先考虑自己的应用属于cpu密集型还是io密集型 性能监控1.jvm内存模型1.我们真正优化的是堆内存,堆是所有数组、对象的创建;堆1.所有堆对象实例以及数组都要在堆上分配.堆是垃圾收集器管理堆主要区域,也称为“GC堆”;也就是我们优化最多考虑堆地方.2.新生代 Eden空间 From Survivor空间 s0 To Survivor空间 s13.原创 2020-09-24 15:09:54 · 110 阅读 · 0 评论 -
148.性能压测-优化-nginx动静分离
性能压测-优化-nginx动静分离1.以后将所有项目的静态资源都应该放在nginx里面2.指定规则:/static/下所有请求都由nginx直接返回1.配置静态资源访问路径1.cd /mydata/nginx/html2.mkdir static3.cd static4.将项目中index整个拖拽到static下面5.将index.html里面的路径都加上/static/路径前缀2.配置nginx静态资源访问路径1.cd /mydata/nginx/conf/conf.d2.v原创 2020-09-13 16:05:47 · 141 阅读 · 0 评论 -
159.缓存-分布式锁-Redisson简介&整合
缓存-分布式锁-Redisson简介&整合概述Redisson是一个在Redis的基础上实现的Java驻内存数据网络(in-Memory Data Grid).它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务,其中包括(BitSet、Set、Multimap、Map、List、Queue、…)Redisson提供了使用Redis的最简单和最便捷的方法,Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上.1.导入Redi原创 2020-09-14 10:31:05 · 116 阅读 · 0 评论 -
160.缓存-分布式锁-Redisson-lock锁测试
缓存-分布式锁-Redisson-lock锁测试1.加锁测试package com.atguigu.gulimall.product.web;import com.atguigu.gulimall.product.entity.CategoryEntity;import com.atguigu.gulimall.product.service.CategoryService;import com.atguigu.gulimall.product.vo.Catelog2Vo;import org原创 2020-09-14 11:22:45 · 103 阅读 · 0 评论 -
161.缓存-分布式锁-Redisson-lock看门狗原理-redisson如何解决死锁
缓存-分布式锁-Redisson-lock看门狗原理-redisson如何解决死锁1.测试lock第二种用法@ResponseBody @GetMapping("/hello") public String hello(){ //1.获取一把锁,只要锁的名字一样,就是同一把锁 RLock lock = redisson.getLock("my-lock"); //2.加锁 //lock.lock();//阻塞式等待原创 2020-09-14 15:05:51 · 701 阅读 · 0 评论 -
162.缓存-分布式锁-Redisson-读写锁测试
缓存-分布式锁-Redisson-读写锁测试读写锁(ReadWriteLock)package com.atguigu.gulimall.product.web;import com.atguigu.gulimall.product.entity.CategoryEntity;import com.atguigu.gulimall.product.service.CategoryService;import com.atguigu.gulimall.product.vo.Catelog2Vo;原创 2020-09-14 15:46:49 · 157 阅读 · 0 评论 -
163.缓存-分布式锁-Redisson-读写锁补充
缓存-分布式锁-Redisson-读写锁补充1.补充1.写+读:如果是先写后读,就的等待写锁释放;2.写+写:阻塞方式,下一个写必须等上一个写释放;3.读+写:有读锁,写也需要等待;4.读+读:相当于无锁;只要有写读存在,都必须等待...原创 2020-09-14 15:55:06 · 106 阅读 · 0 评论 -
164.缓存-分布式锁-Redisson-信号量测试
缓存-分布式锁-Redisson-信号量测试信号量(Semaphore) /** * 车库停车 * 3个车位 */ @GetMapping("/park") @ResponseBody public String park() throws InterruptedException{ RSemaphore park = redisson.getSemaphore("park"); park.acquire();/原创 2020-09-14 16:10:47 · 228 阅读 · 0 评论 -
165.缓存-分布式锁-Redisson-闭锁测试
缓存-分布式锁-Redisson-闭锁测试闭锁分布式闭锁 /** * 放假、锁门 * 5个班全部走完,可以锁大门;可以使用分布式闭锁 */ @GetMapping("/lockDoor") @ResponseBody public String lockDoor() throws InterruptedException{ RCountDownLatch door = redisson.getCountDownLatch("d原创 2020-09-14 16:34:55 · 114 阅读 · 0 评论 -
166.缓存-分布式锁-缓存一致性解决
缓存-分布式锁-缓存一致性解决原创 2020-09-16 15:44:27 · 148 阅读 · 0 评论 -
167.缓存-SpringCache-简介
缓存-SpringCache-简介1.简介1.Spring从3.1开始定义了org.springframwork.Cache和org.springframewok.cache.Cachemanager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发;原创 2020-09-16 16:21:00 · 102 阅读 · 0 评论 -
168.缓存-SpringCache-整合&体验@Cacheable
缓存-SpringCache-整合&体验@Cacheable一.整合SpringCache1.引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency><dependency> <group原创 2020-09-16 16:51:13 · 96 阅读 · 0 评论 -
169.缓存-SpringCache-@Cacheable细节设置
缓存-SpringCache-@Cacheable细节设置默认行为1.如果缓存中有,方法不用调用2.key默认自动生成,缓存的名字::SimpleKey [](自主生成的key值)3.缓存的value的值,默认使用jdk序列化机制,将序列化后的数据存到redis4.默认ttl时间 -1自定义1.指定生成的缓存使用的key2.指定缓存的数据的存活时间3.将数据保存为json数据格式...原创 2020-09-18 10:18:08 · 147 阅读 · 0 评论