随笔分类 -  微服务

摘要:1 下单业务时序图 调用下单服务:远程RPC调用订单服务 预订单:用户不可见 扣减库存:远程RPC调用库存服务 扣减优惠券:远程RPC调用优惠券服务 扣减用户预测:远程RPC调用用户服务 确认订单:将预订单状态改为用户可见 确认订单成功-->生成订单成功-->返回下单结果 确认订单成功-->MQ监听 阅读全文
posted @ 2022-12-08 12:05 yub4by 阅读(80) 评论(0) 推荐(0) 编辑
摘要:1 数据库 1)优惠券表 | Field | Type | Comment | | | | | | coupon_id | bigint(50) NOT NULL | 优惠券ID | | coupon_price | decimal(10,2) NULL | 优惠券金额 | | user_id | 阅读全文
posted @ 2022-11-24 14:17 yub4by 阅读(11) 评论(0) 推荐(0) 编辑
摘要:1 前置条件 安装依赖包 下载dubbo-spring-boot-starter依赖包 将dubbo-spring-boot-starter安装到本地仓库 mvn install -Dmaven.skip.test=true ~~==注意==~~ ~~springboot整合dubbo、spring 阅读全文
posted @ 2022-11-21 16:35 yub4by 阅读(66) 评论(0) 推荐(0) 编辑
摘要:1 前置条件 相关依赖包:下载rocketmq-spring项目 将rocketmq-spring安装到本地仓库 mvn install -Dmaven.skip.test=true 2 消息生产者 创建空项目shop-project 在空项目shop-project下创建空的maven模块spri 阅读全文
posted @ 2022-11-08 16:47 yub4by 阅读(24) 评论(0) 推荐(0) 编辑
摘要:1 案例介绍 1.1 业务分析 模拟电商网站购物场景中的【下单】和【支付】业务 1.1.1 下单 用户请求订单系统下单 订单系统通过RPC调用订单服务下单 订单服务调用优惠券服务,扣减优惠券 订单服务调用调用库存服务,校验并扣减库存 订单服务调用用户服务,扣减用户余额 订单服务完成确认订单 1.1. 阅读全文
posted @ 2022-11-08 16:45 yub4by 阅读(20) 评论(0) 推荐(0) 编辑
摘要:0 初始项目 <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.4.0</version> </dependency> 消息发送者步骤分析: 阅读全文
posted @ 2022-11-07 17:12 yub4by 阅读(15) 评论(0) 推荐(0) 编辑
摘要:1 集群中各角色介绍 Producer:消息的发送者;举例:发信者 Consumer:消息接收者;举例:收信者 Broker:暂存和传输消息;举例:邮局 一个Broker主节点可以配备多个Broker从节点 主节点负责写操作,面向生产者 从节点负责读操作(查询),面向消费者 主从区分:Broker的 阅读全文
posted @ 2022-11-02 14:15 yub4by 阅读(30) 评论(0) 推荐(0) 编辑
摘要:1 准备工作 RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发,在阿里内部,RocketMQ承接了例如“双11”等高并发场景的消息流转,能够处理万亿级别的消息。 下载地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4. 阅读全文
posted @ 2022-10-29 16:38 yub4by 阅读(44) 评论(0) 推荐(0) 编辑
摘要:1 为什么要用MQ ? 消息队列是一种“先进先出”的数据结构 其应用场景主要包含以下3个方面 应用解耦 系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验 阅读全文
posted @ 2022-10-29 14:19 yub4by 阅读(31) 评论(0) 推荐(0) 编辑
摘要:1 what is Fegin ? Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。 Nacos很好的兼容了Feign, Feign默认集成了 Ribbon, 所以在Nacos下使用Fegi 阅读全文
posted @ 2022-10-18 11:20 yub4by 阅读(18) 评论(0) 推荐(0) 编辑
摘要:1 负载均衡介绍 通俗的讲, 负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上进行执行。 根据负载均衡发生位置的不同,一般分为服务端负载均衡和客户端负载均衡。 服务端负载均衡指的是发生在服务提供者一方,比如常见的nginx负载均衡 而客户端负载均衡指的是发生在服务请求 阅读全文
posted @ 2022-10-18 10:34 yub4by 阅读(16) 评论(0) 推荐(0) 编辑
摘要:1 服务治理介绍 先来思考一个问题 通过上一章的操作,我们已经可以实现微服务之间的调用。但是我们把服务提供者的网络地址(ip,端口)等硬编码到了代码中,这种做法存在许多问题: 一旦服务提供者地址变化,就需要手工修改代码 一旦是多个服务提供者,无法实现负载均衡功能 一旦服务变得越来越多,人工维护调用关 阅读全文
posted @ 2022-10-18 09:07 yub4by 阅读(21) 评论(0) 推荐(0) 编辑
摘要:1 微服务调用 订单微服务是服务消费者;商品微服务是服务提供者 1.1 完善商品查询相关代码 package com.yppah.dao; import com.yppah.domain.Product; import org.springframework.data.jpa.repository. 阅读全文
posted @ 2022-10-17 17:26 yub4by 阅读(17) 评论(0) 推荐(0) 编辑
摘要:1. 案例准备 以电商项目中的商品、订单、用户为案例进行学习 1.1 技术选型 maven:3.3.9 数据库:MySQL 5.7 持久层: SpingData Jpa 其他: SpringCloud Alibaba 技术栈 1.2 模块设计 springcloud-alibaba 父工程 shop 阅读全文
posted @ 2022-10-15 16:59 yub4by 阅读(10) 评论(0) 推荐(0) 编辑
摘要:1 课程介绍 https://www.bilibili.com/video/BV1R7411774f 2 系统架构演变 3 微服务架构介绍 3.1 微服务架构的常见问题 这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除]) 这么多小服务,他们之间如何通讯?(restful rp 阅读全文
posted @ 2022-10-15 15:04 yub4by 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1. 集群分类 RabbitMQ的是基于Erlang语言编写,而Erlang又是一个面向并发的语言,天然支持集群模式。RabbitMQ的集群有两种模式: 普通集群:是一种分布式集群,将队列分散到集群的各个节点,从而提高整个集群的并发能力。 普通模式集群不进行数据同步,每个MQ都有自己的队列、数据信息 阅读全文
posted @ 2022-05-10 20:30 yub4by 阅读(66) 评论(0) 推荐(0) 编辑
摘要:1. 消息堆积问题 当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储消息达到上限。之后发送的消息就会成为死信,可能会被丢弃,这就是消息堆积问题。 解决消息堆积有3种思路: 从消费者角度 增加更多消费者,提高消费速度。也就是我们之前说的work queue模式 阅读全文
posted @ 2022-05-10 13:34 yub4by 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1. 初识死信交换机 1.1 什么是死信交换机 当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter): 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false 消息是一个过期消息,超时无人消费 要投递的队列消息满了 阅读全文
posted @ 2022-05-09 22:37 yub4by 阅读(91) 评论(0) 推荐(0) 编辑
摘要:HM-SpringCloud微服务系列12:服务异步通信RabbitMQ-高级篇 回顾一下MQ的消息发送流程:消息msg从生产者publisher发送到交换机exchange,再到队列queue,最后到消费者consumer 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生产者 阅读全文
posted @ 2022-05-09 20:07 yub4by 阅读(52) 评论(0) 推荐(0) 编辑
摘要:大多数情况下,浏览器查询到的都是缓存数据,如果缓存数据与数据库数据存在较大差异,可能会产生比较严重的后果。 所以我们必须保证数据库数据、缓存数据的一致性,这就是缓存与数据库的同步。 1. 数据同步策略 1.1 缓存数据同步常见方式 缓存数据同步的常见方式有三种: 设置有效期:给缓存设置有效期,到期后 阅读全文
posted @ 2022-05-06 17:36 yub4by 阅读(58) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示