进化的深山猿

不断进化,总能迎来美好生活

sql查询结果太大导致oom的问题解决

因为一般执行sql时,MySQL驱动内则会把符合条件的数据缓存到驱动内,等服务器返回了所有符合条件的数据后,在一下子把缓存里面的数据返回给调用sql的应用程序。 所以如果查询的数据量特别大,那么mysql驱动内缓存就可能把jvm内存撑爆造成OOM。下面是一些解决方案 1mysql的查询修改为流式...

2019-05-21 18:40:18

阅读数 1

评论数 0

spring aop切面的使用 前置 环绕和异常

什么是aop,为什么需要aop AOP:aspect oriented parogramming面向切面编程,是对所有对象或者是某类对象编程,核心:在不增加代码的基础上还增加新功能 1就是为了方便,看一个国外很有名的大师说,编程的人都是“懒人”,因为他把自己做的事情都让程序做了。用了aop能让你...

2019-05-17 11:47:24

阅读数 5

评论数 0

git分支合并并拉新分支

git分支合并并拉新分支 假设已经有两个并行分支branch1和branch2,两个分支均有更新,现在需要合并两者,并且拉出新的分支branch3 一般做法:直接将branch1合并到branch2,然后根据branch2创建新的分支branch3,这种方式其实不是特别好,因为可能处理冲突有问题...

2019-04-26 11:00:23

阅读数 30

评论数 0

redis一般锁和分布式锁的原理简析

redis分布式锁的实现方式 redis中存在一个指令,setnx,即set if not exist,如果此时key不存在则返回1,并对key赋值;如果key已经在redis中存在,则直接返回0,并且啥也不干。 一般锁原理 p1(线程1)setnx lock value返回1说明key不存...

2019-04-22 15:14:44

阅读数 30

评论数 0

git 忽略.DS_Store

vi ./gitignore 输入内容: .DS_Store */.DS_Store 保存 执行命令使得上面的配置生效 git config --global core.excludesfile ~/.gitignore

2019-04-22 10:16:38

阅读数 24

评论数 0

RabbitMQ集群原理介绍,元数据同步,必有磁盘节点;镜像队列原理,节点新增和宕机

一、RabbitMQ默认集群原理 RabbitMQ本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的erlang.cookie来实现)。因此,RabbitMQ天然支持集群。集群是保证可靠性的一种方式,同时可以通过水平扩展以达到增加消息吞吐量能力的目的...

2019-04-18 11:45:54

阅读数 174

评论数 0

redis5.0集群搭建实例

Redis Cluster的架构图 (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的节点检测失效时才生效. (3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,...

2019-04-12 22:57:58

阅读数 63

评论数 0

redies集群方案

为什么需要集群 Redis单线程特性,多请求顺序执行,单个耗时的操作会阻塞后续的操作 单机内存有限 某些特殊业务,带宽压力较大 单点问题,缺乏高可用性 不能动态扩容 Redis的集群方案 1.Redis服务端sharing Redis 3.0集群采用了P2P的模式,完全去中心化。Re...

2019-04-12 22:13:11

阅读数 50

评论数 0

redis中数据类型的使用,并发问题,list重复插入问题,redis使用实例-简单消息队列和排名统计

redis 5种数据类型的正确使用 redis支持5中数据类型,即string,list,hash,set,sortedset。但是什么时候应该用哪种数据类型呢?以string和list的为例来说明 其实并不是简单的java中的list对应redis中的list,java中的string对应r...

2019-04-11 10:39:54

阅读数 58

评论数 0

redis在springboot中的使用

创建spring-boot项目,创建的时候同时勾选web,如果不知道怎么创建springboot项目可以参考 https://blog.csdn.net/forezp/article/details/70341651。 1、pom引入,增加如下内容 <dep...

2019-04-10 14:03:37

阅读数 21

评论数 0

redies的单例安装

本篇文章以在mac上安装redis为例,别的系统也可以参考。 1下载 打开官网:https://redis.io/ Download---Stable---Download3.2.8,下载最新稳定版,这里是3.2.8 2.安装 下载完成后,打开命令行工具,执行解压命令 tar z...

2019-04-10 11:42:27

阅读数 57

评论数 0

redis与memcached的底层数据结构与存取算法

redis比memcatched更快的原因 Redis支持哪几种数据类型?每种数据类型的底层结构? 5中数据类型:String、List、Set、Sorted Set、hash;8种底层数据结构。 redis底层数据结构 Redis中的一个对象的结构体表示如下: /* * Redis 对象 ...

2019-04-09 21:25:16

阅读数 47

评论数 0

redis基础,优缺点、适合场景、数据淘汰策略、持久化三种方案、并发处理

什么是Redis?简述它的优缺点? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。 优点:纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是...

2019-04-09 18:37:26

阅读数 22

评论数 0

rabbitMq、rocketmq\kafaka对比

rabbitMq,rocketMq,kafaka适用场景对比 架构方面: Kafaka是正常的mq架构,包括provider broker consumer。,kafaka没有消息确认机制 rabbitMq 中的broker由exchange、binder queue三部分组成,其中exchan...

2019-04-04 20:27:26

阅读数 70

评论数 0

kafaka组件、配置、consumer和producer实例

一. Kafka组件介绍 如上图所示,一个典型的Kafka体系架构包括若干Producer(可以是服务器日志,业务数据,页面前端产生的page view等等),若干broker(Kafka支持水平扩展,一般broker数量越多,集群吞吐率越高),若干Consumer (Group),以及一个Z...

2019-04-04 20:17:12

阅读数 206

评论数 0

rabbitmq的性能测试与对比,高可用集群搭建

说明:这里提供了简单的压测与高可用集群思路,因为时间问题,笔者并没有详细测试并搭建高可用集群。 rabbitMq压测方案 rabbitmq压测性能代码 public class Send2 { //消息队列名称 private final static String QUE...

2019-04-04 18:27:48

阅读数 25

评论数 0

高可用rabbitMq集群搭建

消息中间件—RabbitMQ 一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。 对于Rabb...

2019-04-04 18:27:04

阅读数 39

评论数 0

rabbitmq安装、配置和收发消息实例代码、性能和高可用

rabbitMq的安装(mac上)与使用 brew install rabbitmq cd /usr/local/Cellar/rabbitmq/3.7.12 cd sbin ./rabbitmq-server 浏览器输入localhost:15672,账号密码全输入guest即可登录。 htt...

2019-04-04 17:56:11

阅读数 25

评论数 0

rabbitMq的组件与原理,exchange四种方式,重复消费、顺序错乱

rabbitMq系统架构 系统架构图如下: 几个概念说明: Producer:消息生产者,就是投递消息的程序. Consumer:消息消费者,就是接受消息的程序. message:消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输 Exchange:消...

2019-04-04 17:23:34

阅读数 31

评论数 0

使用mq的原因,组件,原型,协议

为什么要使用Mq?mq能解决什么问题? 1、异步通信 有些业务不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。可以加快处理速度 示例场景:用户注册后,需要发注册邮件和注册短信,传统...

2019-04-04 16:38:09

阅读数 29

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭