[RocketMQ]技术架构
[RocketMQ]技术架构
|
0 评论
RocketMQ架构上主要分为四部分:Producer:消息生产者,支持分布式集群方式部署。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费者,支持分布式集群方式部署。支持以push推,pull拉两种模式对
[RocketMQ]订单系统存在的问题以及如何解决
[RocketMQ]订单系统存在的问题以及如何解决
|
0 评论
一、订单系统存在的常见问题1、用户取消支付用户提交订单之后订单系统会锁定库存,然后创建订单,这是订单的状态为待支付,然后跳转到支付页面,如果用户取消支付,那么订单的状态会一直都是待支付状态,而且对应库存被锁定,那么订单系统会保存该状态一段时间,比如一天,如果这段时间内,用户还没支付该订单,那么系统会
[redis]运行模式
[redis]运行模式
|
0 评论
一、单机1、部署(1)安装$ wget https://download.redis.io/releases/redis-6.2.6.tar.gz$ tar xzf redis-6.2.6.tar.gz$ cd redis-6.2.6$ make PREFIX=/usr/local/redis-6.
[redis]原理
[redis]原理
|
0 评论
一、线程模型我们都是知道redis是单线程的,那么对于耗时的操作需要慎重,否则会造成redis卡顿,比如说keys * ,其时间复杂度是O(N),那么对于单线程的redis,如何支持高并发的呢?主要是因为多路复用。执行过程如下:(1)客户端socket01请求连接redis的socket serve
[redis]常见应用场景
[redis]常见应用场景
|
0 评论
一、分布式锁如果多个进程(模块)需要对同一份数据进行修改,这个时候就需要用到分布式锁,保证多个进程串行操作,否则并行修改的数据将出现不可预测的问题。分布式锁的解决方案有很多,其中常用的一种就是利用redis来实现分布式锁,主要用到以下两种命令:(1)setnx(2)set key value px
[redis]基础数据结构
[redis]基础数据结构
|
0 评论
Redis: Remote Dictionary Service , 远程字典服务,Redis是一个键值数据库,其中Key都是字符串的形式,Value分别支持string、list、set、hash以及zset。一、string string是redis最常用的数据结构,通常系统缓存在redis的
JVM发生OOM的区域
JVM发生OOM的区域
|
0 评论
一、JVM发生OOM的区域public class HelloWorld { public static void main(String[] args) { sayHello(); } private static void sayHello() {
频繁发生Full GC的几种常见原因
频繁发生Full GC的几种常见原因
|
0 评论
1、 系统并发量比较大,频繁发生Young GC,但是每次发生Young GC之后存活对象比较多,而Survivor内存配置不合理,放不下Young GC的存活对象,导致Young GC之后存活对象直接存放在老年代,从而导致老年代内存不足触发Full GC。解决方式:通过jstat观察GC情况,合理
JVM参数配置模板
JVM参数配置模板
|
0 评论
一、采用CMS(4核8G)-Xms4096M # 初始堆大小-Xmx4096M # 堆最大值-Xmn3072M # 堆年轻代大小-Xss1M # 设置线程栈大小-XX:Metaspa
JVM工具-jmap
JVM工具-jmap
|
0 评论
一、概况通过jmap可以查看JVM堆内存情况以及导出堆快照,用得比较的方式是导出堆快照,然后用其他工具进行分析,比如通过JVisualvm进行分析。通过jmap -help 可以查看用法:需要注意的时,执行jmap时,查看对应的pid,当前用户需要与启动对应pid的用户一直,否则可能会出现如下错误: