
springCloud
文章平均质量分 93
springCloud项目实战
Leoon123
这个作者很懒,什么都没留下…
展开
-
01-MybatisPlus
也就是说我们在扣减用户余额时,需要对用户剩余余额做出判断,如果发现剩余余额为0,则应该将status修改为2,这就是说update语句的set部分是动态的。可以让我们的开发更加的简单,高效。原创 2024-10-01 14:17:52 · 1504 阅读 · 0 评论 -
02-Docker01
Linux环境搭建。原创 2024-10-01 14:50:58 · 960 阅读 · 0 评论 -
02-Docker02
要想让Docker帮我们安装和部署软件,肯定要保证你的机器上有Docker. 由于大家的操作系统各不相同,安装方式也不同。为了便于大家学习,我们统一在CentOS的虚拟机中安装Docker,统一学习环境。注意:使用MacBook的同学也请利用 VMwareFusion来安装虚拟机,并在虚拟机中学习Docker使用。安装方式参考文档:《安装Docker》首先,我们利用Docker来安装一个MySQL软件,大家可以对比一下之前传统的安装方式,看看哪个效率更高一些。如果是利用传统方式部署MySQL,大概的步骤有:原创 2024-10-01 15:05:11 · 1308 阅读 · 0 评论 -
03-微服务01
什么时候需要拆分微服务?如果是创业型公司,最好先用单体架构快速迭代开发,验证市场运作模型,快速试错。当业务跑通以后,随着业务规模扩大、人员规模增加,再考虑拆分微服务。如果是大型企业,有充足的资源,可以在项目开始之初就搭建微服务架构。如何拆分?首先要做到高内聚、低耦合从拆分方式来说,有横向拆分和纵向拆分两种。纵向就是按照业务功能模块,横向则是拆分通用性业务,提高复用性服务拆分之后,不可避免的会出现跨微服务的业务,此时微服务之间就需要进行远程调用。微服务之间的远程调用被称为RPC,即远程过程调用。原创 2024-10-01 16:14:45 · 1474 阅读 · 0 评论 -
03-微服务01-作业拆分参考
微服务拆分作业参考作业尽量自己完成,实在觉得有困难的,再来查看本篇内容大家学习中如果碰到困难,可以加入寻求帮助。原创 2024-10-01 16:22:23 · 809 阅读 · 0 评论 -
04-微服务02
无论是还是都支持自定义,只不过编码方式、使用方式略有差别。自定义不是直接实现,而是实现。@Component@Override@Override// 获取请求// 编写过滤器逻辑System.out.println("过滤器执行了");// 放行注意:该类的名称一定要以为后缀!然后在yaml配置中这样使用:spring:cloud:gateway:- PrintAny # 此处直接以自定义的GatewayFilterFactory类名称前缀类声明过滤器。原创 2024-10-01 16:49:15 · 1073 阅读 · 0 评论 -
05-服务保护和分布式事务
Sentinel是阿里巴巴开源的一款服务保护框架,目前已经加入SpringCloudAlibaba中。官方网站:核心库(Jar包):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。在项目中引入依赖即可实现服务限流、隔离、熔断等功能。控制台(Dashboard):Dashboard 主要负责管理推送规则、监控、管理机器信息等。为了方便监控微服务,我们先把Sentinel的控制台搭建出来。1)下载jar包。原创 2024-10-05 18:45:34 · 1087 阅读 · 0 评论 -
06-MQ基础
Work模型的使用:多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息将消息按照规则路由到与之绑定的队列不能缓存消息,路由失败,消息丢失FanoutExchange的会将消息路由到每个绑定的队列描述下Direct交换机与Fanout交换机的差异?Fanout交换机将消息路由给每一个与之绑定的队列Direct交换机根据RoutingKey判断路由给哪个队列。原创 2024-10-01 17:58:10 · 1051 阅读 · 0 评论 -
07-MQ高级
每个只能配置一个,因此我们可以在配置类中统一设置。我们在publisher模块定义一个配置类:内容如下:@Slf4j@Overridelog.error("触发return callback,");});由于每个消息发送时的处理逻辑不一定相同,因此ConfirmCallback需要在每次发消息时定义。具体来说,是在调用RabbitTemplate中的convertAndSend方法时,多传递一个参数:id。原创 2024-10-01 18:08:49 · 1042 阅读 · 0 评论 -
07-MQ高级-抽取MQ工具的作业参考
MQ在企业开发中的常见应用我们就学习完毕了,除了收发消息以外,消息可靠性的处理、生产者确认、消费者确认、延迟消息等等编码还是相对比较复杂的。因此,我们需要将这些常用的操作封装为工具,方便在项目中使用。原创 2024-10-01 18:11:44 · 369 阅读 · 0 评论 -
08-Elasticsearch
分词器的作用是什么?创建倒排索引时,对文档分词用户搜索时,对输入的内容分词IK分词器有几种模式?ik_smart:智能切分,粗粒度:最细切分,细粒度IK分词器如何拓展词条?如何停用词条?利用config目录的文件添加拓展词典和停用词典在词典中添加拓展词条或者停用词条索引库操作有哪些?创建索引库:PUT /索引库名查询索引库:GET /索引库名删除索引库:DELETE /索引库名修改索引库,添加字段:PUT /索引库名/_mapping。原创 2024-10-03 14:37:57 · 1271 阅读 · 0 评论 -
09-Elasticsearch02
query:查询条件from和size:分页条件sort:排序条件highlight:高亮条件文档搜索的基本步骤是:创建对象准备,也就是DSL。来构建查询条件传入的query()方法发送请求,得到结果解析结果(参考JSON结果,从外到内,逐层解析)完整代码如下:@Test// 1.创建Request// 2.组织请求参数// 3.发送请求// 4.解析响应// 1.获取总条数System.out.println("共搜索到" + total + "条数据");原创 2024-10-03 14:47:35 · 1434 阅读 · 0 评论 -
10-Redis面试篇
Sentinel的三个作用是什么?集群监控故障恢复状态通知Sentinel如何判断一个redis实例是否健康?每隔1秒发送一次ping命令,如果超过一定时间没有相向则认为是主观下线(sdown如果大多数sentinel都认为实例主观下线,则判定服务客观下线(odown故障转移步骤有哪些?首先要在sentinel中选出一个leader,由leader执行failover选定一个slave作为新的master,执行,切换到master模式然后让所有节点都执行slaveof新master。原创 2024-10-03 15:02:13 · 1684 阅读 · 0 评论 -
11-微服务面试篇
TCC模式的每个阶段是做什么的?Try:资源检查和预留Confirm:业务执行和提交Cancel:预留资源的释放TCC的优点是什么?一阶段完成直接提交事务,释放数据库资源,性能好相比AT模型,无需生成快照,无需使用全局锁,性能最强不依赖数据库事务,而是依赖补偿操作,可以用于非事务型数据库TCC的缺点是什么?有代码侵入,需要人为编写try、Confirm和Cancel接口,太麻烦软状态,事务是最终一致需要考虑Confirm和Cancel的失败情况,做好幂等处理、事务悬挂和空回滚处理。原创 2024-10-03 15:27:32 · 1314 阅读 · 0 评论