03 2020 档案
摘要:Windows 系统中的安装启动: 1.下载安装包(采用绿色版 .zip) https://www.mongodb.com/download-center#community 版本的选择: MongoDB的版本命名规范如:x.y.z; y为奇数时表示当前版本为开发版,如:1.5.2、4.1.13;
阅读全文
摘要:docker官方和个人发布的镜像由于版本等各种原因,漏洞较多,已统计Docker Hub超过30%的官方镜像包含高危漏洞。此外,由于网络等原因也会造成docker pull下载镜像的速度很慢。基于这种情况,我们可以手动定制docker系统镜像。构建镜像的方式有两种: 1.使用 docker comm
阅读全文
摘要:1.如果之前已经安装过了,执行删除: sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-lo
阅读全文
摘要:简介: 部署安装: 检查jdk环境,要求jdk1.8+ java -version 解压安装包 tar -zxvf logstash-6.5.4.tar.gz 第一个logstash示例,进入解压目录执行: bin/logstash -e 'input { stdin { } } output {
阅读全文
摘要:Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。
阅读全文
摘要:定期收集操作系统或应用服务的指标数据 存储到Elasticsearch中,进行实时分析 Metricbeat组成:Metricbeat有2部分组成,一部分是Module,另一部分为Metricset。 Module 收集的对象,如:mysql、redis、nginx、操作系统等; Metricset
阅读全文
摘要:Beats系列产品: Filebeat: 架构: 用于监控、收集服务器日志文件 部署与运行: 下载地址:https://www.elastic.co/downloads/beats mkdir /usr/local/beats tar -zxvf filebeat-6.5.4-linux-x86_6
阅读全文
摘要:1.删改 修改: // 修改 @Test public void testUpdate() { // 判断数据库中是否有指定id的数据,如果没有则进行保存,如果有就进行更新 Article article = new Article(); article.setId(1L); article.set
阅读全文
摘要:1.创建工程,引入坐标: <dependencies> <!-- springData整合elasticsearch --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-elasti
阅读全文
摘要:在Elasticsearch中,为java提供了2种客户端,一种是REST风格的客户端,另一种是Java API的客户端。 REST客户端: Elasticsearch提供了2种REST客户端,一种是低级客户端,一种是高级客户端。 Java Low Level REST Client:官方提供的低级
阅读全文
摘要:1.集群节点 ELasticsearch的集群是由多个节点组成的,通过cluster.name设置集群名称,并且用于区分其它的集群,每个节点通过node.name指定节点的名称。 在Elasticsearch中,节点的类型主要有4种: master节点 配置文件中node.master属性为true
阅读全文
摘要:全文搜索两个最重要的方面是: 相关性(Relevance): 它是评价查询与其结果间的相关程度,并根据这种相关程度对结果进行排名,这种计算方式可以是 TF/IDF 方法、地理位置邻近、模糊相似,或其他的某些算法。 分词(Analysis):它是将文本块转换为有区别的、规范化的 token 的一个过程
阅读全文
摘要:分词api: 指定分词器进行分词 POST /_analyze { "analyzer": "standard", "text": "hello world" } 指定索引分词 POST /fan/_analyze { "analyzer": "standard", "field": "hobby"
阅读全文
摘要:1.文档 在Elasticsearch中,文档以JSON格式进行存储,可以是复杂的结构,如: { "_index": "haoke", "_type": "user", "_id": "1005", "_version": 1, "_score": 1, "_source": { "id": 100
阅读全文
摘要:基本概念: 索引 索引(index)是Elasticsearch对逻辑数据的逻辑存储,所以它可以分为更小的部分。 可以把索引看成关系型数据库的表,索引的结构是为快速有效的全文索引准备的,特别是它不存储原始值。 Elasticsearch可以把索引存放在一台机器或者分散在多台服务器上,每个索引有一或多
阅读全文
摘要:简介: 安装: 下载:https://www.elastic.co/cn/downloads/elasticsearch 单机版安装: 1.创建一个用户,因为Elasticsearch不支持root用户运行 useradd elsearch passwd elsearch 2.创建安装Elastic
阅读全文
摘要:lucene详细存储结构: 索引 (Index) : 一个目录一个索引,在 Lucene 中一个索引是放在一个文件夹中的。 段(Segment) : 一个索引 (逻辑索引)由多个段组成, 多个段可以合并, 以减少读取内容时候的磁盘IO. Lucene 中的数据写入会先写在内存的一个Buffer,当B
阅读全文
摘要:1.引入依赖(在入门环境搭建中已全部引入) 2.加入页面和资源 3.编写配置文件application.yml spring: thymeleaf: cache: false #关闭缓存 4.pojo包下加入ResultModel实体类(做分页用) /** * 自定义分页实体类 */ public
阅读全文
摘要:1.文本搜索 QueryParser支持默认搜索域, 第一个参数为默认搜索域. 如果在执行parse方法的时候, 查询语法中包含域名则从指定的这个域名中搜索, 如果只有查询的关键字,则从默认搜索域中搜索结果. 需求描述 : 查询名称中包含华为手机关键字的结果. // Query query = qu
阅读全文
摘要:1.分词理解 在对Document中的内容进行索引之前,需要使用分词器进行分词 ,分词的目的是为了搜索。分词的主要过程就是先分词后过滤。 过滤:包括去除标点符号过滤、去除停用词过滤(的、是、 a、an、the等)、大写转小写、词的形还原(复数形式转成单数形参、过去式转成现在式。。。)等。 什么是停用
阅读全文
摘要:1.修改索引 更新索引是先删除再添加,建议对更新需求采用此方法,并且要保证对已存在的索引执行更新,可以先查询出来,确定更新记录存在执行更新操作。 如果更新索引的目标文档对象不存在,则执行添加。 /** * 修改索引库 */ @Test public void testUpdateIndex() th
阅读全文
摘要:Field 属性: Field是文档中的域,包括Field名和Field值两部分,一个文档可以包括多个Field,Document只是Field的一个承载体,Field值即为要索引的内容,也是要搜索的内容。 是否分词 (tokenized) 是:作分词处理,即将Field值进行分词,分词的目的是为了
阅读全文
摘要:Lucene快速入门: 搭建环境 1.创建工程,引入坐标(springboot工程) <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.
阅读全文
摘要:什么是全文检索? 计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式什么是Lucene? Lucene 是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会
阅读全文
摘要:1.顺序扫描法 算法描述: 所谓顺序扫描,例如要找内容包含一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾,如果此文档包含此字符串,则此文档为我们要找的文件,接着看下一个文件,直到扫描完所有的文件。 优点: 查询准确率高 缺点: 查询速度会随着查询数据量的增大, 越来越慢 使用
阅读全文
摘要:高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。我们都知道,单点是系统高可用的大敌,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余
阅读全文
摘要:Zuul网关存在的问题: 性能问题 Zuul1x 版本本质上就是一个同步Servlet,采用多线程阻塞模型进行请求转发。简单讲,每来一个请求,Servlet容器要为该请求分配一个线程专门负责处理这个请求,直到响应返回客户端这个线程才会被释放返回容器线程池。如果后台服务调用比较耗时,那么这个线程就会被
阅读全文
摘要:服务网关的概念: API网关是一个服务器,是系统对外的唯一入口。API网关封装了系统内部架构,为每个客户端提供一个定制的API。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API
阅读全文
摘要:18年底Netflix官方宣布Hystrix 已经足够稳定,不再积极开发 Hystrix,该项目将处于维护模式。就目前来看Hystrix是比较稳定的,并且Hystrix只是停止开发新的版本,并不是完全停止维护,Bug什么的依然会维护的。因此短期内,Hystrix依然是继续使用的。但从长远来看,Hys
阅读全文
摘要:服务容错的核心知识: 雪崩效应 在微服务架构中,一个请求需要调用多个服务是非常常见的。如客户端访问A服务,而A服务需要调用B服务,B服务需要调用C服务,由于网络原因或者自身的原因,如果B服务或者C服务不能及时响应,A服务将处于阻塞状态,直到B服务C服务响应。此时若有大量的请求涌入,容器的线程资源会被
阅读全文
摘要:服务调用Feign入门: 在学习ribbon时,使用的RestTemplate实现REST API调用,代码大致如下: /** * 通过订单系统,调用商品服务根据id查询商品信息 * @param id * @return */ @GetMapping("/buy/{id}") public Pro
阅读全文
摘要:在Eureka的GitHub上,宣布Eureka 2.x闭源。这意味着如果开发者继续使用作为 2.x 分支上现有工作 repo 一部分发布的代码库和工件,则将自负风险。Eureka的替换方案:Zookeeper、Consul、Nacos(服务治理 + 配置中心 | Nacos = Eureka +
阅读全文
摘要:Ribbon概述: Ribbon是 Netflixfa 发布的一个负载均衡器,有助于控制 HTTP 和 TCP客户端行为。在 SpringCloud 中,Eureka一般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Eureka中读取到的服务信息,在调用服务节点
阅读全文
摘要:Eureka Server 高可用集群: Eureka Client会定时连接Eureka Server,获取注册表中的信息并缓存到本地。微服务在消费远程API时总是使用本地缓存中的数据。因此一般来说,即使Eureka Server发生宕机,也不会影响到服务之间的调用。但如果EurekaServer
阅读全文
摘要:微服务的注册中心: 注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就在这里找到服务的地址,进行调用。 注册中心的主要作用: 服务注册中心(下称注册中心)是微服务架构非常重要的一个组件,在微服务架构里主要起到了协
阅读全文
摘要:Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只
阅读全文
摘要:1.创建工程并引入坐标 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version>
阅读全文
摘要:顶部引入标签库: <%@taglib prefix="security" uri="http://www.springframework.org/security/tags" %> 在需要面对不同权限的用户展示不同数据处添加: <security:authorize access="hasAnyRo
阅读全文
摘要:当用户勾选了自动登录,在有效时间内,即使用户关闭了浏览器,下次打开也会处于登录状态(前提是没有清空浏览器cookie) 使用Spring Security实现步骤: 1.在登录页面提供一个选框供用户选择,name的值必须为:remember-me,否则得在remember me过滤器中指定和它对应的
阅读全文
摘要:用户认证业务里,我们封装User对象时,选择了三个构造参数的构造方法,其实还有另一个构造方法,源码如下: public User(String username, String password, boolean enabled, boolean accountNonExpired, boolean
阅读全文
摘要:1.让我们自己的UserService接口继承UserDetailsService;也可以在用户的实体类中实现UserDetails接口,重写对应的方法,角色实体类也要实现GrantedAuthority接口,重写对应的方法,这样User的业务层操作就会变得非常简单,因为用户和角色实体类已经满足了s
阅读全文
摘要:1.在SpringSecurity主配置文件中指定认证页面配置信息 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://
阅读全文
摘要:权限管理概念: 权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。权限管理几乎出现在任何系统里面,前提是需要有用户和密码认证的系统。 在权限管理的概念中,有两个非常重要的名词: 认证:通过用户名和密码成功登陆系统后,让系统得到当前用户的角色身份。 授权:系
阅读全文
摘要:首先在使用之前先安装lombok插件,因为了使用注解让它自动生成例如 get/set 方法,在编码阶段如果没有插件,不能显式调用方法,这里基于idea安装: 步骤:File ——》Settings——》Plugins. 搜索lombok,点击安装install 在平时的开发中创建JAVA对象(POJ
阅读全文
摘要:String类型:ValueOperations @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext-redis.xml") public class RedisStr
阅读全文
摘要:SpringData Redis 简介: Redis是一个基于内存的数据结构存储系统,它可以用作数据库或者缓存。它支持多种类型的数据结构, 这些数据结构类型分别为 String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。 SpringData Redis的
阅读全文
摘要:哨兵简介: 主机“宕机”: 哨兵: 哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。 哨兵的作用: 监控 不断的检查master和slave是否正常运行。 master存活检测、m
阅读全文
摘要:主从复制简介: 互联网“三高”架构: 高并发 高性能 高可用 单机redis的风险与问题: 问题1.机器故障 现象:硬盘故障、系统崩溃 本质:数据丢失,很可能对业务造成灾难性打击 结论:基本上会放弃使用redis. 问题2.容量瓶颈 现象:内存不足,从16G升级到64G,从64G升级到128G,无限
阅读全文
摘要:Bitmaps Bitmaps类型的基础操作 获取指定key对应偏移量上的bit值 getbit key offset 设置指定key对应偏移量上的bit值,value只能是1或0 setbit key offset value Bitmaps类型的扩展操作 业务场景:(redis 应用于信息状态统
阅读全文
摘要:Redis中的数据特征: Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态 XX :具有时效性的数据 -1 :永久有效的数据 -2 :已经过期的数据 或 被删除的数据 或 未定义的数据 数据删除策略: 1. 定时删除 2. 惰性删除 3. 定期删除 时效
阅读全文
摘要:redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列)。当执行时,一次性按照添加顺序依次执行,中间不会被打断或者干扰。事务的基本操作: 开启事务:multi 作用:设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中 执行事务:exec 作用:设定事务的结束位置
阅读全文
摘要:1. redis是一个内存数据库,当redis服务器重启,或者电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。2. redis持久化机制: 将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据 将数据的操作过程进行保存,日志形式,存储操作过程,存
阅读全文
摘要:反向代理 反向代理(Reverse Proxy)方式是指以代理来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 理解正向代理: 正向代理是针对你的客户端,而反向代理
阅读全文
摘要:Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊戈尔·西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支撑 5 万并发链接,并且 cpu、内存等资源消耗常稳定。 Nginx 应用场景: 1、http 服务
阅读全文
摘要:1.安装gcc-c++ redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境。 输入命令:yum install gcc-c++ 2.安装redis wget http://download.redis.io/releases/redis-5.0.7.tar.gz
阅读全文
摘要:1.Tomcat上传到linux上 2.通常将软件安装到/usr/local 解压压缩包:tar -zxvf apache-tomcat.tar.gz -C 目标路径 或者直接解压到当前路径 tar -zxvf apache-tomcat.tar.gz 3.在tomcat/bin目录下执行 star
阅读全文
摘要:安装JDK: 1.先执行 getconf LONG_BIT 看看Linux系统是多少位的,上传对应位数的JDK到Linux服务器 # 查看jdk版本,确保当前不存在jdk环境 java –version 2.通常将软件安装到/usr/local 解压压缩包:tar -zxvf jdk.tar.gz
阅读全文
摘要:key通用指令 key 特征 key是一个字符串,通过key获取redis中保存的数据 key应该设计哪些操作? 对于key自身状态的相关操作,例如:删除,判定存在,获取类型等 对于key有效性控制相关操作,例如:有效期设定,判定是否有效,有效状态的切换等 对于key快速查询操作,例如:按指定策略查
阅读全文
摘要:添加jsp文件依赖包 <!-- jsp页面使用jstl标签 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!-- 用于编译jsp --> <dependen
阅读全文
摘要:有序集合类型 sortedset: 存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式 需要的存储结构:新的存储模型,可以保存可排序的数据 sorted_set类型:在set的存储结构基础上添加可排序字段,每个元素都会关联一个double类型的分数字段。 redis正
阅读全文
摘要:set类型: 存储需求:存储大量的数据,在查询方面提供更高的效率 需要的存储结构:能够保存大量的数据,高效的内部存储机制,便于查询 set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且是不允许重复的,存和取的顺序不一样 1. 存储:sadd key value sadd mys
阅读全文
摘要:list类型: 数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分 需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序 list类型:保存多个数据,底层使用双向链表存储结构实现 1. 添加: lpush key value: 将元素加入列表左表 rpush key va
阅读全文
摘要:哈希类型 hash 存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息 需要的存储结构:一个存储空间保存多个键值对数据 hash类型:底层使用哈希表结构实现数据存储 hash存储结构优化 如果field数量较少,存储结构优化为类数组结构 如果field数量较多,存储结构使用Hash
阅读全文
摘要:开发系统时,有时候在实现功能时,删除操作需要实现逻辑删除,所谓逻辑删除就是将数据标记为删除,而并非真正的物理删除(非DELETE操作),查询时需要携带状态条件,确保被标记的数据不被查询到。这样做的目的就是避免数据被真正的删除。 给表增加deleted字段,用于表示数据是否被删除,可以定义:1代表删除
阅读全文
摘要:ActiveRecord(简称AR)一直广受动态语言( PHP 、 Ruby 等)的喜爱,而 Java 作为准静态语言,对于ActiveRecord 往往只能感叹其优雅,但也进行了一定的支持。什么是ActiveRecord? ActiveRecord也属于ORM(对象关系映射)层,由Rails最早提
阅读全文
摘要:基于springboot环境开发 1.引入Oracle坐标 2.修改application.properties 对于application.properties的修改,需要修改2个位置,分别是: # 数据库连接配置 spring.datasource.driver-class-name=oracl
阅读全文
摘要:创建工程并引入坐标 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> </
阅读全文
摘要:通过继承BaseMapper就可以获取到各种各样的单表操作 插入操作: @Test public void testInsert(){ User user = new User(); user.setAge(20); user.setEmail("test@fff.cn"); user.setNam
阅读全文
摘要:MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。官网: https://mybatis.plus/ 或 https://mp.baomidou.com/ 对于 Mybatis 整合MP有常常有三种用法,
阅读全文
摘要:分布式SOA架构: 什么是SOA SOA 全称为 Service-Oriented Architecture,即面向服务的架构。它可以根据需求通过网络对松散耦合的粗粒度应用组件(服务)进行分布式部署、组合和使用。 一个服务通常以独立的形式存在于操作系统进程中。 站在功能的角度,把业务逻辑抽象成可复用
阅读全文
摘要:现在,我们的项目是一个jar工程,那么就没有webapp,我们的静态资源该放哪里呢? 默认的静态资源路径为: - classpath:/META-INF/resources/ - classpath:/resources/ - classpath:/static/ - classpath:/publ
阅读全文

浙公网安备 33010602011771号