谷粒尚城
文章平均质量分 78
一个风轻云淡
先搞钱,去养老,当保安,过日子(本人菜鸡一个,又菜又爱敲,希望能和您共同进步,当然如果您有问题,我会的,会尽量及时解答)
展开
-
谷粒商城:Feign+Sentinel 测试熔断降级
除了流量控制以外,降低调用链路中的不稳定资源也是 Sentinel 的使命之一。由于调用关 系的复杂性,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生堆积。Sentinel 和 Hystrix 的原则是一致的: 当检测到调用链路中某个资源出现不稳定的表现,例如请求响应时间长或异常比例升高的时候,则对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联故障。原创 2023-02-25 18:32:52 · 835 阅读 · 0 评论 -
一文打通Sleuth+Zipkin 服务链路追踪
微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能需要调用很多个服务,而内部服务的调用复杂性,决定了问题难以定位。所以微服务架构中,必须实现分布式链路追踪,去跟进一个请求到底有哪些服务参与, 参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见,出了问题,很快定位。链路追踪组件有 Google 的 Dapper,Twitter 的 Zipkin,原创 2023-03-11 07:59:58 · 949 阅读 · 0 评论 -
SpringBoot 整合定时任务
@EnableScheduling 在配置类上使用,开启计划任务的支持(类上)@Scheduled 来申明这是一个任务,包括cron,fixDelay,fixRate等类型(方法上,需先开启计划任务的支持)原创 2023-02-22 10:04:40 · 928 阅读 · 1 评论 -
支付宝支付流程解读
非必填,禁用渠道,用户不可用指定渠道支付 ,当有多个渠道时用 “,” 分隔。非必填,商户自定义参数,需要UrlEncode处理之后传入。在 iOS 系统中,唤起支付宝客户端支付完成后,不会自动回到浏览器或商家 App。支付成功后点击完成会自动跳转回商家页面地址, 同时在 URL 地址上附带支付结果参数,回跳参数可查看本文 附录 >非必填,可用渠道,用户只能在指定渠道范围内支付。非必填,过期时间,用户多长时间不支付订单关闭,如果不传默认是和签约协议保持一致。非必填 ,业务信息,具体值要和支付宝约定。原创 2023-03-01 07:40:13 · 2296 阅读 · 0 评论 -
cron 表达式解读
cron 是一个已经存在了很长时间的 UNIX 工具,因此它的调度能力很强大 并得到证明。CronTrigger 类基于 cron 的调度功能。CronTrigger 使用“cron 表达式”,它能够创建触发时间表,例如:“在上午 8:00 每个 周一至周五“或”每月最后一个星期五凌晨 1:30”。cron 表达式很强大,但可能会非常令人困惑。本教程旨在揭开一些谜团 创建一个 cron 表达式,为用户提供一个资源,他们可以在论坛或邮件中询问之前访问该资源 列表。语法:秒 分 时 日 月 周 年(Spring原创 2023-02-21 20:44:08 · 486 阅读 · 0 评论 -
支付宝支付功能使用
公钥私钥公钥和私钥是一个相对概念 它们的公私性是相对于生成者来说的。一对密钥生成后,保存在生成者手里的就是私钥, 生成者发布出去大家用的就是公钥。原创 2023-02-21 11:02:17 · 3846 阅读 · 0 评论 -
分布式事务几种方案
数据库支持的 2PC【2 phase commit 二阶提交】,又叫做 XA Transactions。MySQL 从 5.5 版本开始支持,SQL Server 2005 开始支持,Oracle 7 开始支持。 其中,XA 是一个两阶段提交协议,该协议分为以下两个阶段: 第一阶段:事务协调器要求每个涉及到事务的数据库预提交(precommit)此操作,并反映是 否可以提交.第二阶段:事务协调器要求每个数据库提交数据。 其中,如果有任何一个数据库否决此次提交,那么所有数据库都会被要求回滚它们在此事务 中的那原创 2023-02-20 12:54:33 · 603 阅读 · 0 评论 -
一文了解分布式事务
分区容错的意思是,区间通信可能失败。比如,一台服务器放在中国,另一台服务 器放在美国,这就是两个区,它们之间可能无法通信。在分布式系统中的所有数据备份,在同一时刻是否同样的值。在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。同时,Raft算法使用了更强的假设来减少了需要考虑的状态,使之变的易于理解和实现。收到了Leader的消息,表示有其它服务器已经抢先当选了Leader;没有服务器赢得多数的选票,Leader选举失败,等待选举时间。当服务器启动时,初始化为Follower。原创 2023-02-19 10:36:42 · 332 阅读 · 0 评论 -
springboot本地事务
原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily)比如买东西业务,扣库存,下订单,账户扣款,是一个整体;必须同时成功或者失败 一个事务开始,代表以下的所有操作都在同一个连接里面;在同一个类里面,编写两个方法,内部调用的时候,会导致事务设置失效。原因是没有用到代理对象的缘故。转 200 事务成功;0)、导入 spring-boot-starter-aop。原创 2023-02-18 12:14:47 · 499 阅读 · 0 评论 -
接口幂等性
接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用;比如说支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条...,这就没有保证接口的幂等性。原创 2023-02-17 11:40:49 · 564 阅读 · 0 评论 -
订单服务:订单流程
订单流程是指从订单产生到完成整个流转的过程,从而行程了一套标准流程规则。而不同的产品类型或业务类型在系统中的流程会千差万别,比如上面提到的线上实物订单和虚拟订单的流程,线上实物订单与 O2O 订单等,所以需要根据不同的类型进行构建订单流程。不管类型如何订单都包括正向流程和逆向流程,对应的场景就是购买商品和退换货流程,正向流程就是一个正常的网购步骤:原创 2023-02-16 16:16:59 · 1955 阅读 · 0 评论 -
谷粒商城:订单中心概念解析
电商系统涉及到 3 流,分别时信息流,资金流,物流,而订单系统作为中枢将三者有机的集 合起来。 订单模块是电商系统的枢纽,在订单这个环节上需求获取多个模块的数据和信息,同时对这 些信息进行加工处理后流向下个环节,这一系列就构成了订单的信息流通。用户信息包括用户账号、用户等级、用户的收货地址、收货人、收货人电话等组成,用户账 户需要绑定手机号码,但是用户绑定的手机号码不一定是收货信息上的电话。用户可以添加 多个收货信息,用户等级信息可以用来和促销系统进行匹配,获取商品折扣,同时用户等级 还可以获取积分的奖励等原创 2023-02-15 17:46:39 · 1203 阅读 · 1 评论 -
RabbitMQ运行机制
• 对队列设置就是队列没有消费者连着的保留时间,也可以对每一个单独的消息做单独的 设置。超过了这个时间,我们认为这个消息就死了,称之为死信。• 如果队列设置了,消息也设置了,那么会取小的。所以一个消息如果被路由到不同的队 列中,这个消息死亡的时间有可能不一样(不同的队列设置)。这里单讲单个消息的TTL,因为它才是实现延迟任务的关键。可以通过设置消息的expiration字段或者x- message-ttl属性来设置时间,两者是一样的效果。原创 2023-02-14 20:27:27 · 410 阅读 · 1 评论 -
MQ中间件概念一览
1. 大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力2. 消息服务中两个重要概念:消息代理(message broker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。原创 2023-02-14 02:15:00 · 613 阅读 · 0 评论 -
SSO(单点登陆)
早期单一服务器,用户认证。缺点:单点性能压力,无法扩展 分布式,SSO(single sign on)模式解决 :用户身份信息独立管理,更好的分布式管理。可以自己扩展安全策略跨域不是问题缺点:认证服务器访问压力较大。域名通过“.”号切分后,从右往左看,不包含“.”的是顶级域名,包含一个“.”的是一级域名, 包含两个“.”的是二级域名,以此类推。例如对网址 http://www.cnblogs.com/baibaomen,域名部分是 www.cnblogs.com。原创 2023-02-12 10:05:26 · 1367 阅读 · 1 评论 -
社交登陆OAuth2.0
QQ、微博、github 等网站的用户量非常大,别的网站为了简化自我网站的登陆与注册逻辑,引入社交登陆功能;步骤:1)、用户点击 QQ 按钮2)、引导跳转到 QQ 授权页3)、用户主动点击授权,跳回之前网页。原创 2023-02-11 10:29:53 · 707 阅读 · 0 评论 -
认证服务:注册和登录
USER_EXIST_EXCEPTION(15001,"用户存在异常"),PHONE_EXIST_EXCEPTION(15002,"手机号存在异常"),LOGINACCT_PASSWORD_INVAILD_EXCEPTION(15003,"账号或密码错误")原创 2023-02-10 16:17:59 · 718 阅读 · 0 评论 -
认证服务:验证码保存和注册
/验证码校验redis 存key-phone value-code sms:code:13104928451->5379。//用户注册->/regist[post]--->转发/reg.html(路径映射默认都是get方式进行访问的.)* //todo 重定向携带数据,利用session原理,将数据放在session中。//rdis缓存验证码,防止同一个phone在60s内再次发送验证码。* //todo 分布式下的session问题。//校验出错,转到注册页。调用第三方服务发送信息。原创 2023-02-09 18:08:45 · 729 阅读 · 0 评论 -
认证服务:整合短信验证码
【2】测试签名限流规则,同一个号码,1分钟1次,1小时5次,24小时10次,不支持大量商用;(字符串格式:**key**:value,**key**:value。例如:**code**:12345,**minute**:5。—— 测试ID请用:908e94ccf08b4476ba6c876d13f084ad,对应短信正文为 {验证码:**code**,**minute**分钟内有效,请勿泄漏于他人!(同一手机号码,同一签名验证码,一分钟一次,频率过快可能会导致运营商系统屏蔽,用户无法正常接收。原创 2023-02-07 22:15:36 · 2928 阅读 · 0 评论 -
谷粒商城:认证服务准备+60s短信验证
谷粒商城:认证服务准备+60s短信验证。原创 2023-02-06 21:48:32 · 598 阅读 · 2 评论 -
商城业务:商品详情
商城业务:商品详情,进行异步的优化及前端界面的显示原创 2023-02-05 18:04:40 · 692 阅读 · 0 评论 -
java线程池
池中一直保持的线程的数量,即使线程空闲也不会释放。除非设置了 allowCoreThreadTimeOut *池中允许的最大的线程数当线程数大于核心线程数的时候,线程在最大多长时间没有接到新任务就会终止释放, 最终线程池维持在 corePoolSize 大小时间单位阻塞队列,用来存储等待执行的任务,如果当前对线程的需求超过了 corePoolSize大小,就会放在这里等待空闲线程执行。创建线程的工厂,比如指定线程名等。原创 2023-02-03 17:33:53 · 1439 阅读 · 0 评论 -
检索业务:排序和价格区间及库存
排序和价格区间及库存的前端界面展示原创 2023-02-02 16:25:09 · 451 阅读 · 0 评论 -
分页数据渲染
th:attr="pn=${result.pageNum - 1}":将当前页码-1给pn赋值th:if="${result.pageNum>1}":如果当前页面大于1才显示上一页原创 2023-02-01 09:54:09 · 1829 阅读 · 0 评论 -
Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed]
"type":"query_shard_exception","reason":"failed to create query:原创 2023-01-31 11:51:13 · 3015 阅读 · 0 评论 -
检索业务:基本数据渲染和排错
检索业务:基本数据渲染和排错检索业务:基本数据渲染和排错原创 2023-01-30 18:09:29 · 352 阅读 · 0 评论 -
检索业务:构建结果数据与分析
/3.得到品牌的图片。// 得到属性的名字。//得到属性的所有值。//2.得到品牌的名。//5.分页信息-总记录数。//5.分页信息-总页码。//5.分页信息-页码。请求带来的参数是SearchParam传给es的参数是SearchRequestes返回结果是SearchResponse把结果封装为SearchResult原创 2023-01-29 22:37:13 · 525 阅读 · 0 评论 -
商城业务检索请求分析封装
/3.分析响应数据封装成我们需要的格式。//1.动态构建出查询需要的dsl语句。* @param param 检索的参数。//2.执行检索请求。//1.准备检索请求。原创 2023-01-28 22:45:59 · 499 阅读 · 0 评论 -
Spring Cache
Spring 从 3.1 开始定义了 org.springframework.cache.Cache和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术;并支持使用 JCache(JSR-107)注解简化我们开发; Cache 接口为缓存的组件规范定义,包含缓存的各种操作集合;Cache 接 口 下 Spring 提 供 了 各 种 xxxCache 的 实 现;原创 2023-01-27 00:08:43 · 1318 阅读 · 0 评论 -
Redisson 完成分布式锁
Redisson 是架设在 Redis 基础上的一个 Java 驻内存数据网格(In-Memory Data Grid)。充分 的利用了 Redis 键值数据库提供的一系列优势,基于 Java 实用工具包中常用接口,为使用者 提供了一系列具有分布式特性的常用工具类。使得原本作为协调单机多线程并发程序的工 具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式 系统的难度。同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间 的协作。原创 2023-01-26 18:53:26 · 1048 阅读 · 2 评论 -
缓存失效问题和分布式锁引进
【代码】缓存失效问题和分布式锁引进。原创 2023-01-25 10:42:15 · 1305 阅读 · 1 评论 -
redis缓存问题引进
注意:在开发中,凡是放入缓存中的数据我们都应该指定过期时间,使其可以在系统即使没有主动更新数据也能自动触发数据加载进缓存的流程。避免业务崩溃导致的数据永久不一致 问题。原创 2023-01-23 21:56:24 · 973 阅读 · 1 评论 -
Bean named ‘redisTemplate‘ is expected to be of type ‘org.springframework.data.redis.core.StringRedi
Bean named 'redisTemplate' is expected to be of type 'org.springframework.data.redis.core.StringRedisTemplate' but was actually of type 'org.springframework.data.redis.core.RedisTemplate'原创 2023-01-23 18:07:38 · 3102 阅读 · 2 评论 -
性能监控和工具使用
描述的是 JAVA 方法执行的内存模型,每个方法在执行的时候都会创建一个栈帧, 用于存储局部变量表,操作数栈,动态链接,方法接口等信息 局部变量表存储了编译期可知的各种基本数据类型、对象引用 线程请求的栈深度不够会报 StackOverflowError 异常 栈动态扩展的容量不够会报 OutOfMemoryError 异常 虚拟机栈是线程隔离的,即每个线程都有自己独立的虚拟机栈原创 2023-01-20 22:25:36 · 1791 阅读 · 1 评论 -
压力测试和JMeter使用分析
压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测都 是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。原创 2023-01-19 21:07:41 · 1793 阅读 · 0 评论 -
谷粒商城Nginx代理网关
本机浏览器请求gulimall.com,通过配置hosts文件之后,那么当你在浏览器中输入gulimall.com的时候,相当于域名解析DNS服务解析得到ip 192.168.56.10,也就是并不是访问java服务,而是先去找nginx。浏览器搜索先在该文件下查找是否有匹配的玩意再进行跳转的。原创 2023-01-14 23:07:14 · 905 阅读 · 0 评论 -
商城业务-首页-渲染
/** * 模板引擎 * 1)thymeleaf-starter 关闭缓存 * 2)静态资源放static按照路径直接访问 * 3)页面放在template下。直接访问 * springboot,项目访问自动访问index.html * 4)不重启服务器的情况下更新资源 * 1)引入dev-tools * 2)修改完页面,ctrl shift f9 重新自动编译下页面,代码配重启 */pom文件添加依赖 index.html使用thymeleaf内带的标签原创 2023-01-10 23:29:43 · 365 阅读 · 0 评论 -
ES中的api调用测试
ES中的api调用测试。原创 2023-01-09 15:39:33 · 837 阅读 · 0 评论 -
谷粒商城Es商品上架(1)
谷粒商城Es商品上架原创 2023-01-05 21:42:54 · 779 阅读 · 2 评论 -
谷粒商城product模块实现类Attr和Brand实现类
谷粒商城product模块实现类AttrAttrgroupRelationServiceImpl类谷粒商城product模块实现类AttrGroupServiceImpl类谷粒商城product模块实现类AttrServiceImpl类谷粒商城product模块实现类BrandServiceImpl类原创 2023-01-04 21:45:39 · 723 阅读 · 0 评论