![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务学习
文章平均质量分 76
qing_ti_xx
千里之行始于足下
展开
-
四十七、Redis分片集群
主从和哨兵可以解决高可用、高并发读的问题。客户端请求可以访问集群任意节点,最终都会被转发到正确节点。:直接执行第5步,忽略数据一致性、忽略master。2、如何将同一类数据固定的保存在同一个。余数作为插槽,寻找插槽所在实例即可。这一类数据使用相同的有效部分,例如。)上,查看集群信息时就能看到:(不是与节点绑定,而是与插槽绑定。首先是该实例与其它实例失去连接。最后是确定下线,自动提升一个。的有效部分计算哈希值,对。每个节点分配一部分插槽。个插槽分配到不同的实例。缺省:默认的流程,如图。”中的部分是有效部分。原创 2023-12-16 06:00:00 · 243 阅读 · 0 评论 -
四十六、Redis哨兵
客户端的服务发现来源,当集群发生故障转移时,会将最新信息推送给。REPLICA _PREFERRED:优先从slave。命令,如果超过一定时间没有相向则认为是主观下线。节点发现某实例未在规定时间响应,则认为该实例。)机制来实现主从集群的自动故障恢复。节点断开时间长短,如果超过指定值(都认为实例主观下线,则判定服务下线。值,越大说明数据越新,优先级越高。,当故障节点恢复后会自动成为新的。基于心跳机制监测服务状态,每隔。都认为该实例主观下线,则该实例。当故障实例恢复后也以新的。值,越小优先级越高,如果是。原创 2023-12-15 21:48:18 · 126 阅读 · 0 评论 -
四十五、Redis主从
如果slave的offset小于master的offset,说明slave数据落后于master,需要更新。如果slave断开时间过久,导致尚未备份的数据被覆盖,则无法基于log做增量同步,只能再次全量同步。•增量同步:slave提交自己的offset到master,master获取repl_baklog中从offset之后的命令给slave。•限制一个master上的slave节点数量,如果实在是太多slave,则可以采用主-从-从链式结构,减少master压力。原创 2023-12-15 14:10:12 · 198 阅读 · 0 评论 -
Redis集群安装
我们需要执行命令来创建集群,在Redis5.0之前创建集群比较麻烦,5.0之后集群管理命令都集成到了redis-cli中。修改redis-6.2.4/redis.conf文件,将其中的持久化模式改为默认的RDB模式,AOF保持关闭状态。要在同一台虚拟机开启3个实例,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。要在同一台虚拟机开启3个实例,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。这里我们搭建一个三节点形成的Sentinel集群,来监管之前的Redis主从集群。原创 2023-12-11 17:02:42 · 70 阅读 · 0 评论 -
四十四、Redis的数据持久化(RDB、AOF)
RDB全称Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件在称为RDB文件,默认是保存在当前运行目录。Redis停机时会执行一次RDB。AOF全称为(追加文件)。Redis处理的每一个写命令都会记录在AOF文件,可以看做是命令日志文件。原创 2023-12-11 16:39:27 · 433 阅读 · 0 评论 -
四十三、Redis基础
NoSQL是指非关系型数据库,在这种数据库中,数据没有被组织成关系表,而是以一种更灵活的方式存储。NoSQL数据库通常不需要预定义模式以及支持水平扩展能力,这使得它们能够处理大规模和分布式数据。NoSQL数据库可分为4类:键值存储、文档存储、列存储和图形数据库。键值存储:通过在每个键上存储对应的值,实现简单的数据将数据以键值对的形式保存,例如Redis、Memcached等。文档存储:文档数据存储在类似JSON的无模式格式中。文档存储在MongoDB、Couchbase等数据库中。列存储。原创 2023-12-10 17:55:15 · 97 阅读 · 0 评论 -
Redis的安装
大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis.此处选择的Linux版本为CentOS 7.Redis的官方网站地址:https://redis.io/原创 2023-12-09 15:04:25 · 878 阅读 · 0 评论 -
四十一、高可用
TC(Tencent Cloud)的异地多机房容灾架构是指,在不同的地理位置上配置多个数据中心,以确保系统的高可用性和容灾能力。当某个数据中心发生故障或者不可用时,可以自动切换到其他数据中心来提供服务,保证业务的持续稳定运行。数据同步:通过数据同步机制将数据实时、异步地复制到其他数据中心,确保数据的一致性和可用性。负载均衡:通过负载均衡器将流量分发到不同的数据中心,减少单个数据中心的负载压力,并提高系统的稳定性。原创 2023-12-08 14:32:35 · 175 阅读 · 0 评论 -
四十、Saga模式
Saga模式是一种用于处理复杂异步操作流的模式,通常用于React/Redux的应用程序中。在这种模式中,业务逻辑被分成多个离散步骤,每个步骤都是一个Generator函数,它们可以被以顺序、并发或条件分支方式执行。在Saga模式中,流程被控制在一个中心位置,称为Saga。Saga是一个长期运行的进程,它进行异步操作,监视动作并根据其触发器来执行某些操作。它们是纯粹的JavaScript函数,可以派发动作、调用异步API并处理响应。原创 2023-12-08 14:02:20 · 106 阅读 · 0 评论 -
三十八、AT模式
AT模式是指使用AT命令进行串口通信的工作模式。AT命令是由两个字符组成的命令,用于控制设备,例如控制调制解调器或移动电话。AT命令可以通过串口发送到设备,设备会根据命令执行相应操作并回复结果。AT模式在嵌入式系统开发中广泛使用,特别是在GSM、GPRS、GPS和WiFi等无线通信模块的控制中。AT模式是通过串口通信发送AT命令来控制设备的一种工作模式,具有操作简单、可靠性高、兼容性强等特点。设备进入AT模式。在开发阶段,可以通过特殊的启动方式或者设置相关寄存器来将设备进入AT模式。原创 2023-12-06 16:37:33 · 759 阅读 · 0 评论 -
三十七、XA模式
在准备阶段,事务管理器将事务状态记录到事务日志,通知各个资源管理器准备执行相关操作。在XA模式中,一个事务被视为由一个或多个资源管理器(例如数据库)控制的一系列操作。在提交阶段,事务管理器将事务提交或回滚,并通知各个资源管理器进行相应操作。XA模式是一种分布式事务处理模式,常用于多个数据库之间的事务处理。这些资源管理器必须支持XA协议,以确保事务的一致性和可靠性。因为一阶段需要锁定数据库资源,等待二阶段结束才释放,性能较差。XA模式保证了多个数据库之间的事务操作的一致性和可靠性。事务的强一致性,满足。原创 2023-12-03 15:24:23 · 418 阅读 · 0 评论 -
三十五、Seata的基本架构、部署TC服务、微服务集成Seata
致力于提供高性能和简单易用的分布式事务服务,为用户打造一站式的分布式解决方案。交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入。定义全局事务的范围、开始全局事务、提交或回滚全局事务。,其中的文档、播客中提供了大量的使用说明、源码分析。AT模式:最终一致的分阶段事务模式,无业务侵入,也是。维护全局和分支事务的状态,协调全局事务提交或回滚。TCC模式:最终一致的分阶段事务模式,有业务侵入。SAGA模式:长事务模式,有业务侵入。原创 2023-12-03 14:12:12 · 412 阅读 · 1 评论 -
三十六、seata的部署和集成
首先我们要下载seata-server包,地址在。原创 2023-12-02 15:35:55 · 255 阅读 · 0 评论 -
三十四、分布式事务
•分布式系统节点通过网络连接,一定会出现分区问题(P•当分区出现时,系统的一致性(C)和可用性(A)就无法同时满足。原创 2023-12-02 14:14:59 · 51 阅读 · 0 评论 -
三十二、微服务保护
设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待Sentinel是阿里巴巴开源的一款微服务流量控制组件。统计与当前资源相关的另一个资源,触发阈值时,对当前资源限流。原创 2023-12-01 15:14:47 · 769 阅读 · 0 评论 -
三十三、实现规则持久化
修改OrderService,让其监听Nacos中的sentinel规则配置。原创 2023-12-01 15:14:20 · 188 阅读 · 0 评论 -
三十、elasticsearch集群
Elasticsearch是一个开源的分布式搜索引擎,能够快速地进行全文检索、结构化搜索、分析等操作。为了增加其可靠性和容错性,Elasticsearch支持多节点之间的集群,并采用了Shard(分片)和Replica(副本)机制来分摊负载、提高可用性。下面我们来详细讲解一下Elasticsearch集群的概念、架构和部署方式。原创 2023-11-28 15:11:44 · 1949 阅读 · 0 评论 -
二十九、微服务案例完善(数据聚合、自动补全、数据同步)
聚合( aggregations)可以实现对文档数据的统计、分析、运算。在分类的同时,进行了分数的计算,并且按照平均分做降序"size": 0,"aggs": {"terms": {"order": {},"aggs": {"stats": {中分词器(analyzerl:在tokenizer之前对文本进行处理。例如删除字符、替换字符ltokenizer:将文本按照一定的规则切割成词条(term例如keyword,就是不分词;还有ik_smartl:将tokenizer。原创 2023-11-27 22:21:47 · 870 阅读 · 2 评论 -
二十八、微服务案例
【代码】二十七、微服务案例。原创 2023-11-27 05:00:00 · 370 阅读 · 0 评论 -
二十七、RestClient查询文档
所有搜索DSL的构建,记住一个API : SearchRequest的source()方法。高亮结果解析是参考JSON结果,逐层解析。原创 2023-11-26 17:18:54 · 246 阅读 · 0 评论 -
二十六、搜索结果处理(排序、分页、高亮)
深度分页问题,默认查询上限(from + size)是10000。而如果要查询更多数据就需要修改分页参数了。没有查询上限(单次查询的size不超过10000)没有查询上限(单次查询的size不超过10000)在搜索值与高亮值不同时,可以加如上配置使其生效。没有随机翻页需求的搜索,例如手机向下滚动翻页。类型、数值类型、地理坐标类型、日期类型等。百度、京东、谷歌、淘宝这样的随机翻页搜索。会有额外内存消耗,并且搜索结果是非实时的。将搜索结果中的关键字用标签标记出来。只能向后逐页查询,不支持随机翻页。原创 2023-11-26 15:13:29 · 95 阅读 · 0 评论 -
二十五、DSL查询文档(全文检索查询、精确查询、地理查询、复合查询)
Function Score Query原创 2023-11-25 16:43:34 · 2238 阅读 · 1 评论 -
二十四、RestClient操作文档
【代码】二十四、RestClient操作文档。原创 2023-11-24 05:00:00 · 282 阅读 · 0 评论 -
二十三、RestClient操作索引库
利用JavaRestClient实现创建、删除索引库,判断索引库是否存在。1、编写mapping映射。原创 2023-11-23 21:15:05 · 391 阅读 · 0 评论 -
二十二、文档和索引库的区别
文档是一个独立的信息单元,可以包含文本、图像、音频、视频等多种形式的数据;索引库则是一种数据结构,用于存储和管理文档的索引信息。原创 2023-11-23 19:45:49 · 72 阅读 · 0 评论 -
二十一、文档操作
【代码】二十一、文档操作。原创 2023-11-23 19:29:33 · 65 阅读 · 0 评论 -
二十、索引库
但是可以添加新的字段。原创 2023-11-23 17:42:26 · 58 阅读 · 0 评论 -
十八、初识elasticsearsh (索引)
Elasticsearch是一个全文搜索引擎,建立在Lucene搜索库之上。Elasticsearch是一个分布式系统,可以处理大量数据、高并发和高可扩展性。Elasticsearch可以对不同类型的数据进行搜索和分析,包括文本、数字和坐标数据等。Elasticsearch支持近实时搜索,可以将数据在几秒钟内索引到搜索引擎中。Elasticsearch可以通过简单的REST API进行搜索和查询,可以使用各种编程语言进行开发和集成。Elasticsearch提供了强大的搜索和过滤功能。原创 2023-11-23 14:38:32 · 151 阅读 · 0 评论 -
十七、SpringAMQP
AMQP是一种高级消息队列协议。SpringAMQP是基于Spring Framework的AMQP扩展,提供了一个抽象层,使得使用AMQP进行消息传递变得更加简单。SpringAMQP支持多种消息传递模式,包括点对点、发布/订阅和请求/响应等。SpringAMQP提供了许多高级功能,例如队列管理、消息确认、事务和消息过滤等。SpringAMQP提供了集成测试工具和基于Spring Boot的自动配置,使得集成AMQP变得更加容易。原创 2023-11-21 20:13:38 · 491 阅读 · 0 评论 -
十六、RabbitMQ快速入门
都有创建队列的原因是因为避免队列不存在;原创 2023-11-21 14:07:41 · 1068 阅读 · 1 评论 -
十五、MQ简介
时效性较强,可以立即得到结果。原创 2023-11-21 10:54:18 · 59 阅读 · 0 评论 -
十四、Docker的基本操作
此命令会创建一个宿主机80端口和容器80端口的映射,当访问宿主机80端口时,请求会映射到容器的80端口,从而实现容器的访问。暂停时,操作系统会将容器挂起;停止时,操作系统会将容器删除;所以不使用unstop;原创 2023-11-20 23:37:25 · 1076 阅读 · 0 评论 -
十三、Docker的安装
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。Docker CE 分为stabletest和nightly三个更新频道。官方网站上有各种环境下的,这里主要介绍 Docker CE 在 CentOS上的安装。原创 2023-11-18 22:35:32 · 499 阅读 · 0 评论 -
十二、Docker的简介
Docker 是一种开源的应用容器平台,可以在容器内部运行应用程序。Docker 可以自动化部署、打包和运行应用程序,使得应用程序可以在不同的环境中快速、可靠地运行,提高了应用程序的可移植性,并降低了管理和维护的成本。Docker 使用容器技术实现应用程序的封装和运行。容器是一种轻量级的虚拟化技术,可以将应用程序和所有依赖项打包在一起,形成一个独立的运行环境,同时也提供了隔离和安全性保障。与传统的虚拟机技术相比,容器具有更小的体积和更高的性能,可以在任何支持 Docker 的平台上运行。Docker Eng原创 2023-11-18 22:22:22 · 1071 阅读 · 0 评论 -
十一、统一网关GateWay(搭建网关、过滤器、跨越解决)
而SpringCloudGateway则是基于Spring5中提供的WebFlux,属于响应式编程的实现,具备更好的性能。predicates:路由断言,判断请求是否符合要求,符合则转发到路由目的地。这只是配置单个路由的过滤器,若要添加所有路由过滤器,进行以下步骤。Zuul是基于Servlet的实现,属于阻塞式编程。当路由规则不符合时,会出现404的错误!发现请求头添加成功,也就是过滤器添加成功。在gateway的yml文件中加上,路由过滤器工厂同样有30多个,说明请求头添加成功了。原创 2023-11-18 21:55:51 · 1411 阅读 · 1 评论 -
十、http客户端Feign
配置Feign日志有两种方式。原创 2023-11-16 20:17:14 · 307 阅读 · 0 评论 -
九、Nacos集群搭建
官方给出的Nacos集群图:其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。原创 2023-11-16 17:10:50 · 422 阅读 · 0 评论 -
八、Nacos配置管理(统一配置管理、配置热更新、配置共享)
可以看到未带区域属性的配置被共享使用了。原创 2023-11-16 16:50:49 · 210 阅读 · 0 评论 -
七、Nacos和Eureka的区别
一、nacos注册中心二、临时实例与非临时实例三、区别Nacos支持服务端主动检测提供者状态: 临时实例采用心跳模式,非临时实例采用主动检测模式 临时实例心跳不正常会被剔除,非临时实例则不会被剔除 Nacos支持服务列表变更的消息推送模式,服务列表更新更及时 Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式; Eureka采用AP方式四、相同点都支持服务注册和服务拉取 都支持服务提供者心跳方式做健康检测原创 2023-11-16 11:48:19 · 738 阅读 · 0 评论 -
六、Nacos快速入门
每个namespace都有唯一id服务设置namespace时要写id而不是名称不同namespace下的服务互相不可见。原创 2023-11-16 11:36:13 · 751 阅读 · 0 评论