待开发模板创建、待开发应用创建、通讯录授权
服务商代开发 创建待开发应用模板 网址: 创建待开发模板 步骤 创建 填写资料 如果是通讯录应用,分类需要选择人力资源 配置开发信息 企业授权 企业管理员用企业微信扫码授权 开始待开发 点击应用模板进入详情 选择授权企业开始待开发,点击开始待开发应用进入配置界面 配置开发信息 填写完成后审核通过后点击进入待开发应用详情进行权限设置 编辑权限后需要企业通过
开始学习
开始学习 使用完整的构建管道快速构建 Electron 项目 概述 Electron Forge 是一款用于打包和分发 Electron 应用程序的一体化工具。它结合了许多单一用途的包来创建一个开箱即用的完整构建管道,包括代码签名、安装程序和工件发布。对于高级工作流程,可以通过其Plugin API在 Forge 生命周期中添加自定义构建逻辑。自定义构建和存储目标可以通过创建您自己的Makers和
分布式事务简介
分布式事务简介 基础概念 基本概念:事务ACID 事务:要么全部执行全部成功,要么全部失败 分布式事务的概念 分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,且属于不同的应用,分布式事务需要保证这些操作要么全部成功,要么全部失败,本质上说,分布式事务就是为了保证不同数据库的数据一致性。 分布式解决方案 2PC即两阶段提交协议,是将整个事务流程分为两个阶段,P是指准备阶段,C是指提交阶段 准备阶段:老板要求男方付款,男方付款,老板要求女方付款,女方付款 提交阶段:老板出餐,两人纷纷落座。 seata是什么 seata是一款开源分布式事务解决方案,致力于提高性能和简单易用的分布式事务服务,seata将为用户提供AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。
ElasticSearch面试题
为什么要使用Elasticsearch 系统中的数据,随着业务的发展,时间的推移,将会非常多,而业务中往往采用模糊查询进行数据的搜索,而模糊查询会导致查询引擎放弃索引,导致系统查询数据时都是全表扫描,在百万级别的数据库中,查询效率是非常低下的,而我们使用 ES 做一个全文索引,将经常查询的系统功能的某些字段,比如说电商系统的商品表中商品名,描述、价格还有 id 这些字段我们放入 ES 索引库里,可以提高查询速度。 Elasticsearch的master选举流程 Elasticsearch 的选主是 ZenDiscovery 模块负责的,主要包含 Ping(节点之间通过这个 RPC 来发现彼此)和 Unicast(单播模块包含一个主机列表以控制哪些节点需要 ping 通)这两部分 对所有可以成为 master 的节点(node.master: true、node.roles: [master,data])根据 nodeId 字典排序,每次选举每个节点都把自己所知道节点排一次序,然后选出第一个(第 0位)节点,暂且认为它是 master 节点 如果对某个节点的投票数达到一定的值(可以成
ElasticSearch进阶
索引(Index) 一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母),并且当我们要对这个索引中的文档进行检索、搜索、更新和删除的时候,都要使用到这个名字。在一个集群中,可以定义任意多的索引。 能搜索的数据必须有索引,这样的好处是可以提高查询速度,比如:新华字典前面的目录就是索引的意思,目录可以提高查询速度。 Elasticsearch 索引的精髓:一切设计都是为了提高搜索的性能 类型(Type) 在一个索引中,你可以定义一种或多种类型。 一个类型是你的索引的一个逻辑上的分类/分区,其语义完全由你来定。通常,会为具有一组共同字段的文档定义一个类型。不同的版本,类型发生了不同的变化 7.x之后:默认不再支持自定义索引类型(默认类型为:_doc) 文档(Document) 一个文档是一个可被检索的基础信息单元,也就是一条数据。 比如:你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个订单的一个文档。文档以 JSON(Javascript Obj
ElasticSearch备份工具
ElasticSearch备份工具介绍 一个是由elasticsearch-dump (opens new window)实现 另一个是由logstash (opens new window)实现,logstash操作相对而言比较简单。 安装elasticsearch-dump [root@elasticsearch ~/soft]# git clone https://github.com/taskrabbit/elasticsearch-dump # 2.安装elasticsearch-dump [root@elasticsearch]# mv elasticsearch-dump/ /data/ [root@elasticsearch]# cd /data/elasticsearch-dump [root@elasticsearch /data/elasticsearch-dump]# npm install elasticdump -g # 3.查看版本 [root@elasticsearch /data/elasticsearch-dump]# elasticdump
ElasticSearch集群搭建
概述 单机 & 集群 单台 Elasticsearch 服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集群中。 除了负载能力,单点服务器也存在其他问题: 单台机器存储容量有限 单服务器容易出现单点故障,无法实现高可用 单服务的并发处理能力有限 配置服务器集群时,集群中节点数量没有限制,大于等于 2 个节点就可以看做是集群了。一般出于高性能及高可用方面来考虑集群中节点数量都是 3 个以上。 集群Cluster 一个集群就是由一个或多个服务器节点组织在一起,共同持有整个的数据,并一起提供索引和搜索功能。一个 Elasticsearch 集群有一个唯一的名字标识,这个名字默认就是 elasticsearch。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群。 节点Node 集群中包含很多服务器,一个节点就是其中的一个服务器。作为集群的一部分,它存储数据,参与集群的索引和搜索功能。 一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在
Elasticsearch SQL
介绍 官方操作文档 (opens new window) 一般使用 Elasticsearch 的时候,会使用 Query DSL 来查询数据,从 Elasticsearch6.3 版本以后,Elasticsearch 已经支持SQL查询了。 Elasticsearch SQL 是一个 X-Pack 组件,它允许针对 Elasticsearch 实时执行类似SQL的 查询。无论使用REST接口,命令行还是JDBC,任何客户端都可以使用SQL对 Elasticsearch中的数据进行原生搜索和聚合数据。可以将 Elasticsearch SQL 看作是一种翻译器,它可以将 SQL翻译成 Query DSL。 Elasticsearch_SQL具有如下特性 原生集成 Elasticsearch SQL 是为 Elasticsearch 从头开始构建的。每个查询都根据底层存储有效地针对相关节点执行。 没有外部零件 无需额外的硬件、进程、运行时或库来查询 Elasticsearch;Elasticsearch SQL 通过在Elasticsearch 内部运行消除了额外的移动部件。 轻
ElasticSearch之EQL操作
前述 EQL 的全名是 Event Query Language (EQL)。事件查询语言(EQL)是一种用于基于事件的时间序列数据(例如日志,指标和跟踪)的查询语言。在 Elastic Security 平台上,当输入有效的 EQL 时,查询会在数据节点上编译,执行查询并返回结果。这一切都快速、并行地发生,让用户立即看到结果。 EQL优点 EQL 使你可以表达事件之间的关系:许多查询语言允许您匹配单个事件。EQL 使你可以匹配不同事件类别和时间跨度的一系列事件 EQL 的学习曲线很低:EQL 语法看起来像其他常见查询语言,例如 SQL。 EQL 使你可以直观地编写和读取查 询,从而可以进行快速,迭代的搜索。 EQL 设计用于安全用例:尽管你可以将其用于任何基于事件的数据,但我们创建了 EQL 来进行威胁搜寻。 EQL 不仅支持危害指标(IOC)搜索,而且可以描述超出 IOC 范围的活动 基础语法 数据准备 要运行 EQL 搜索,搜索到的数据流或索引必须包含时间戳和事件类别字段。默认情况下,EQL 使用 Elastic 通用模式(ECS)中的 @timestamp 和 eve
ElasticSearch-8.X的JAVA-API
前述 在8.x版本中,ES出了一个新的Elasticsearch Java API Client,点击查看 (opens new window),如果你要在Springboot高版本中使用,可以直接使用该API。 ES7.X版本的JAVA-API请查看🔎 以下示例,首先需要将elasticsearch.yml中的有关ssl的配置全部改为false,本地测试就不搞HTTPS那么麻烦了 示例代码已经上传到gitee (opens new window) 项目配置 依赖引入 <dependency> <groupId>co.elastic.clients</groupId> <artifactId>elasticsearch-java</artifactId> <version>8.3.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core<
ElasticSearch-7.X的JAVA-API
前述 虽然现在ES已经到了8.x版本,但是目前实际运用中,7.X版本的还是比较多的,所以关于ES在Java中的使用,会区分7.x版本 和 8.x版本 7版本以7.8.0为例,8版本以8.3.3为例 当前章节为7.8.0版本在Java中的使用 8.3.3版本请查看🔎 项目配置 依赖引入 <dependencies> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.8.0</version> </dependency> <!-- elasticsearch 的客户端 --> <dependency> <groupId>org.elasticsearch.client</groupId>
ElasticSearch集成IK分词器
前述 为了能够更好地对中文进行搜索和查询,就需要在Elasticsearch中集成好的分词器插件, 而 IK 分词器就是用于对中文提供支持得插件。 集成IK分词器 下载 IK分词器下载 (opens new window) 注意版本需要对应,目前IK分词器还没有8.3.3版本,所以就先重新下一个8.2.3版本的ES 安装 将下载的IK压缩包直接解压到 elasticsearch-8.2.3 的 plugins目录下,重启ES 使用 IK 分词器 IK 分词器提供了两个分词算法: ▶️ ik_smart: 会做最粗粒度的拆分,适合 Phrase 查询 ▶️ Ik_max_word:会将文本做最细粒度的拆分,会穷尽各种可能的组合,适合 Term Query 为索引指定默认IK分词器 这样我们在索引中就不用创建每一个字段,可以通过动态字段映射,将String类型的字段映射为text类型,同时分词器指定为ik_max_word PUT ik_index { "settings": { "analysis": { &qu