SpringCloud
文章平均质量分 88
逐步讲解SpringCloud常用组件作用及其用法
芃仔
永远年轻,永远热泪盈眶
展开
-
【SpringCloud——Seata分布式事务管理框架】
分布式事务和传统形式的事务区别有什么?众所周知,我们采用微服务框架开发项目时,不同服务之间通过相互调用的方式完成业务处理,用以下案例来描述分布式业务存在的问题:假设我们此时现在有一个商城系统,其中包括下单系统、用户系统、仓库系统。当我们进行下单时,就需要创建订单信息,同时需要对用户的余额进行扣减,还需要对仓储系统的商品数量进行减少,由于每个系统分别负责一部分的业务,且其拥有独立的数据库信息,因此我们就会有三个事务,订单创建、余额扣减、商品剩余量扣减。原创 2023-06-12 18:16:52 · 996 阅读 · 0 评论 -
【SpringCloud——Sentinel】
-引入sentinel依赖-->之前的限流是统计访问某个资源的所有请求,判断是否超过QPS阈值。而热点参数限流是分别统计参数值相同的请求,判断是否超过QPS阈值。热点参数限流即限制对热点参数的访问,限制其控制在一个特定值范围内,防止大量相同请求访问同一资源。@Slf4j@[email protected]("查询用户异常",throwable);默认情况下,发生限流、降级、授权拦截时,都会抛出异常到调用方。原创 2023-06-06 17:04:52 · 1139 阅读 · 0 评论 -
【SpringCloud——Elasticsearch(下)】
①、创建docker-compose.yml文件services:es01:volumes:ports:networks:- elastices02:volumes:ports:networks:- elastices03:volumes:networks:- elasticports:volumes:data01:data02:data03:networks:elastic:②、es运行需要修改一些linux系统权限,修改/etc/sysctl.conf文件。原创 2023-06-05 18:45:42 · 1716 阅读 · 0 评论 -
【SpringCloud——Elasticsearch(中)】
使用第三方工具获取当前地理位置,发送至后端,后端根据传递的地理位置对酒店距离进行排序后返回。精确查询一般是查找keyword、数值、日期、boolean等类型字段。查询所有酒店并按照酒店评分降序排列,评分一致时按照酒店价格升序排列。类型、数值类型、地理坐标类型、日期类型等。下文操作均使用此方法对响应进行解析。,默认是根据相关度算分(原创 2023-06-03 19:46:34 · 584 阅读 · 0 评论 -
【SpringCloud——Elasticsearch(上)】
elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 以下操作均根据以上数据库表进行: ①、创建索引库②、查看索引库③、修改索引库索引库和mapping一旦创建则无法修改,但是可以添加新的字段。④、删除索引库2、基于RestClient(代码) 以下操作均根据以上数据库表进行:①、编写mapping映射 ②、创建索引库②、删除索引库③、查看索引库是否存在五、操作文档1、基于Kibana(WE原创 2023-05-31 00:43:09 · 494 阅读 · 0 评论 -
【SpringCloud组件——GateWay】
用户发送的请求,首先会抵达网关,网关并不会直接将请求路由到对应的微服务当中去执行,而是将请求传递给过滤器,由过滤器对请求做出一系列处理之后才转发到微服务当中,同理,微服务处理完请求后也不会直接将响应传递到路由上,也是经过一系列过滤器之后才抵达路由,由路由对用户的访问进行响应。原创 2023-05-29 00:10:53 · 2284 阅读 · 0 评论 -
【Redis——主从复制、哨兵机制、分片集群_底层原理】
在上图过程当中,我们比如添加Node-5节点,此时Node-5节点假设需要2000个槽位,此时其余四个节点就会拼凑出2000个槽位给Node-5节点,同时槽位当中的值也会转移给Node-5节点,这样一来,Node-5节点就算添加进了集群。如果是16385个节点,那槽位不就没得分了?并且,我们我们为了保证集群的高可用性,建议每个主节点都至少持有一个从节点,当主节点宕机的时候,从节点可以顶替上来~主节点持有的槽位会转移给从节点,因为从节点上面的数据和主节点的一致,只需要将数据分配进槽位即可。原创 2022-12-02 10:15:48 · 540 阅读 · 0 评论 -
【SpringCloud——Docker】
镜像结构:镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。DockerFile文件内容:# 指定基础镜像# 暴露端口# 入口,java项目的启动命令镜像创建命令:进入创建好的docker-demo目录docker build -t 镜像名称(名字:版本-》例如:javaweb:1.0) .原创 2023-05-30 02:54:56 · 434 阅读 · 0 评论 -
【SpringCloud组件——Feign(远程调用)】
我们配置Logger来看看:方式1:基于配置文件的方式①全局生效②局部生效方式2:基于java代码的方式先声明一个Bean@Bean声明完成后定义该Bean的作用域,即全局生效还是局部生效。在SpringBoot的启动类注解@EnableFeignClients添加如下参数,表明不论远程调用哪个微服务,都将采取配置类当中的配置。在Feign客户端的类注解上添加如下参数,表明谁远程调用我这个微服务,将采用这个配置文件的信息。原创 2023-05-23 22:44:28 · 784 阅读 · 0 评论 -
【SpringCloud组件——Nacos】
分别提供订单系统(OrderService)和用户系统(UserService)。订单系统主要负责订单相关信息的处理,用户系统主要负责用户相关信息的处理。原创 2023-05-20 23:40:27 · 1326 阅读 · 0 评论 -
【SpringCloud组件——RabbitMQ(下)】
先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer将消息投递到broker或者直接到queue里了,consumer从queue取出消息 进行消费,但某些时候由于特定的,这样的消息如果没有 后续的处理,就变成了死信,有死信自然就有了死信队列。原创 2023-05-16 20:02:04 · 412 阅读 · 0 评论 -
【SpringCloud组件——RabbitMQ(上)】
预取值是对不公平分发的进一步优化,所谓预取值,举个例子,此时队列当中有1\2\3\4\5\6\7\8,共8条消息,设置消费者1的预取值为5,消费者2的预取值为2,表示将这8条消息当中的5条发送给消费者1的信道当中,将2条发送给消费者2的信道当中,消费者1每应答一条消息,队列才会将下一条消息发往消费者1的信道,类似的,消费者2也是如此。这就的由交换机的类型来决定。参考三当中的线程沉睡,我们类比成消费者1的处理能力高效,消费者2的处理能力低下,此处采用不公平分发,即能者多劳,让闲着的线程处理更多的消息。原创 2023-05-15 21:20:47 · 640 阅读 · 0 评论 -
【SpringCloud组件——Ribbon(负载均衡)】
案例依然采用Eureka章节提供的案例,orderService根据服务名称发起请求,请求传达至Ribbon,此时Ribbon从Eureka中心拉取userService服务列表,Ribbon根据负载均衡算法对服务列表进行选择,最后决定将请求发送至哪个userService服务实例。原创 2023-05-20 16:53:19 · 645 阅读 · 0 评论 -
【SpringCloud组件——Eureka】
分别提供订单系统(OrderService)和用户系统(UserService)。订单系统主要负责订单相关信息的处理,用户系统主要负责用户相关信息的处理。服务提供者:一次业务中,被其它微服务调用的服务。(提供接口给其他微服务)服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)访问订单系统,查询订单编号为XXX的订单,并返回订单当中的用户信息。我们知道每张订单都会记录该订单支付者的信息,一般是支付者账号信息。根据该信息调用用户系统当中的根据账户查询用户的接口即可。①、订单查询接口原创 2023-05-20 16:11:10 · 661 阅读 · 0 评论