Loading

随笔分类 -  SpringCloud

摘要:生产环境cpu飙高的原因 linux命令查看top -c 1.CAS修改值失败,没有控制自旋次数,导致一直自旋不断重试,非常消耗cpu资源 2.云服务器被黑客攻击,植入了挖矿程序:端口不能够被外网访问 3.程序死循环:控制循环次数 4.服务器被DDOS攻击:限流、ip黑名单、图形验证码 cpu飙高如 阅读全文
posted @ 2021-11-26 18:50 炒焖煎糖板栗 阅读(829) 评论(0) 推荐(0)
摘要:消息丢失 1、只要订单完成我们就会发送一条消息给MQ,这个途中突然MQ服务器网络中断,导致消息无法抵达 做好容错方法需要在消息发送前加上异常处理 try { rabbitTemplate.convertAndSend("order-event-exchange", "order.release.ot 阅读全文
posted @ 2021-10-23 22:31 炒焖煎糖板栗 阅读(1754) 评论(0) 推荐(0)
摘要:订单支付成功后,需要更改订单状态 支付宝有两种回调方式 同步回调:可以直接用request获取订单传回的数据,利用签名验证是否正确再去修改订单状态,但这种方式不推荐也不好,如果浏览器不小心关闭或者用户关闭,导致页面跳转不了也就无法修改订单数据 异步通知:只要支付成功以后就会给我们指定的地址发送一个请 阅读全文
posted @ 2021-10-23 22:29 炒焖煎糖板栗 阅读(1256) 评论(0) 推荐(0)
摘要:创建支付宝应用 进入“蚂蚁金服开放平台” https://open.alipay.com/platform/home.htm 创建支付应用 拿到APPID 支付加密 支付宝商户之间传输一些付款的金融数据,非常重要对数据的加密程度要求比较高,所有必须使用加密才能在网络间传输 对称加密 加密和解密用同一 阅读全文
posted @ 2021-10-23 22:29 炒焖煎糖板栗 阅读(290) 评论(0) 推荐(0)
摘要:应用场景 我们系统未付款的订单,超过一定时间后,需要系统自动取消订单并释放占有物品 常用的方案 就是利用Spring schedule定时任务,轮询检查数据库 但是会消耗系统内存,增加了数据库的压力、还存在较大的时间误差 解决:rabbitmq的消息TTL和死信Exchange结合 介绍 1.何为消 阅读全文
posted @ 2021-10-23 22:29 炒焖煎糖板栗 阅读(1081) 评论(0) 推荐(2)
摘要:一、定时任务 1、cron表达式 语法:秒 分 时 日 月 周 年(Spring 不支持) cron表达式是由6或7个由空格分隔的字段组成的字符串。字段可以包含任何允许的值,以及该字段允许的特殊字符的各种组合。字段如下所示 Cron Trigger Tutorial (quartz-schedule 阅读全文
posted @ 2021-10-23 22:28 炒焖煎糖板栗 阅读(140) 评论(0) 推荐(0)
摘要:RabbitMQ简介 RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现 核心概念 Message 消息,消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则由一系列的可选属性组成, 这些属性包括routin 阅读全文
posted @ 2021-10-18 19:46 炒焖煎糖板栗 阅读(257) 评论(0) 推荐(0)
摘要:OAuth2.0 OAuth: : OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。 OAuth2.0 :对于用户相关的 OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等 阅读全文
posted @ 2021-10-18 19:45 炒焖煎糖板栗 阅读(1590) 评论(1) 推荐(0)
摘要:什么是幂等性 接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用;比如说支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变 阅读全文
posted @ 2021-10-18 19:44 炒焖煎糖板栗 阅读(654) 评论(0) 推荐(1)
摘要:阿里云试过个人用户不通过 申请腾讯云短信验证码 利用公众号,申请签名再申请签名模板 找到腾讯云账户密钥对secretId,secretKey 应用ID 代码 引入腾讯云SDK <dependency> <groupId>com.tencentcloudapi</groupId> <artifactI 阅读全文
posted @ 2021-10-18 19:44 炒焖煎糖板栗 阅读(209) 评论(0) 推荐(0)
摘要:缓存的使用 为了系统性能的提升,我们一般都会将部分数据放入缓存中,加速访问。而 db 承担数据落盘工作。 哪些数据适合放入缓存? 即时性、数据一致性要求不高的 访问量大且更新频率不高的数据(读多,写少) 举例:电商类应用,商品分类,商品列表等适合缓存并加一个失效时间(根据数据更新频率来定),后台如果 阅读全文
posted @ 2021-10-12 16:58 炒焖煎糖板栗 阅读(109) 评论(0) 推荐(0)
摘要:微服务压力测试 压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测都 是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。 使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。有两种错误类型是: 内存泄漏,并发与同步。 有效的压力测试系统将应 阅读全文
posted @ 2021-10-12 16:57 炒焖煎糖板栗 阅读(376) 评论(0) 推荐(0)
摘要:jconsole 与 jvisualvm Jdk 的两个小工具 jconsole、jvisualvm(升级版的 jconsole);通过命令行启动,可监控本地和 远程应用。远程应用需要配置,推荐使用jvisualvm 启动JConsole 点击JDK/bin 目录下面的jconsole.exe 即可 阅读全文
posted @ 2021-10-12 16:57 炒焖煎糖板栗 阅读(61) 评论(0) 推荐(0)
摘要:分布式锁基本原理 redis 中有一个 SETNX 命令,该命令会向 redis 中保存一条数据,如果不存在则保存成功,存在则返回失败。 我们约定保存成功即为加锁成功,之后加锁成功的线程才能执行真正的业务操作 分布式锁演进一 核心代码: public Map<String, List<Catalog 阅读全文
posted @ 2021-10-12 16:55 炒焖煎糖板栗 阅读(150) 评论(0) 推荐(0)
摘要:正向代理与反向代理 Nginx配置文件 Windows修改host文件 192.168.195.100为虚拟机ip 192.168.195.100 gulimall.com 然后修改Nginx配置文件 server { listen 80; server_name gulimall.com; #ch 阅读全文
posted @ 2021-10-12 16:54 炒焖煎糖板栗 阅读(333) 评论(0) 推荐(0)
摘要:Redisson 作为分布式锁 官方文档:https://github.com/redisson/redisson/wiki 引入依赖 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <ve 阅读全文
posted @ 2021-10-12 16:52 炒焖煎糖板栗 阅读(889) 评论(0) 推荐(0)
摘要:在业务中要使用缓存就要考虑缓存的两种用法模式,一种是读模式:遵循先从缓存中读取数据,缓存中没有再读取数据库,一种是写模式:双写方式、失效方式。这样每一套代码都需要这样一套代码,比较麻烦,有一个简单的方式来整合使用缓存。 简介 Spring 从 3.1 开始定义了 org.springframewor 阅读全文
posted @ 2021-10-12 16:52 炒焖煎糖板栗 阅读(140) 评论(0) 推荐(0)
摘要:SpringCloud Bus消息总线 Bus消息总线是什么 一言以蔽之,分布式自动刷新配置功能。 Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新。 Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了 阅读全文
posted @ 2021-10-01 19:44 炒焖煎糖板栗 阅读(114) 评论(0) 推荐(0)
摘要:OpenFeign是什么 官方文档 Github地址 Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封 阅读全文
posted @ 2021-10-01 19:44 炒焖煎糖板栗 阅读(119) 评论(0) 推荐(0)
摘要:EureKa基础知识 什么是服务治理 Spring Cloud封装了Netflix 公司开发的Eureka模块来实现服务治理 在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现 阅读全文
posted @ 2021-10-01 19:23 炒焖煎糖板栗 阅读(88) 评论(0) 推荐(0)