【rabbitMQ】01 全面理解rabbitMQ

随着用户流量的快速增长,由于传统应用在系统接口和服务处理层面仍然沿用高耦合和同步的处理模式,导致接口由于线程阻塞而延长了整体响应时间,即所谓的高延迟,为解决这个问题使用了rabbitMQ。RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,用于在分布式系统中存储转发消息,有良好的易用性,RabbitMQ既可以单点部署也可以多节点部署,某正程度上可以满足目前互联网对高并发、高可用的要求知识网原理解析1.Brocker:消息队列服务器实体,Rabbitmq可以作为一个选择。2
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【设计模式】实战中理解工厂方法

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【rabbitMQ】02 如何保证消息不丢失(附消息为什么会丢失)

生产者:消息从生产者生产发送给Broker消息队列:消息在Broker存放,如果是镜像复制集群,消息将被复制到其他副本上消费者:消费者从Broker上拉取信息,经过网络传输发送到Consumer
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【rabbitMQ】03 死信队列与延迟队列

比较典型的消息模型包括基于TopicExchange的消息模型、基于DirectExchange的消息模型和基于FanoutExchange的消息模型,这些消息模型都有一个特点,那就是消息一旦进入队列,将立即被对应的消费者监听消费,然而在某些业务场景中,有些业务数据对应的消息进入队列后不希望立即被处理,而是要求该消息可以延迟一定的时间,再被消费者监听消费处理,这就是死信队列/延迟队列出现的原因。_死信队列是
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【集合】01HashMap原理深入解析

HashMap内部是基于哈希表实现的键值对存储,继承 AbstractMap 并且实现了 Map 接口。结构和底层原理_hashmap深入讲解内部原理,put过程等,头插法,尾插法优缺点
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【集合】02 ArrayList原理深入解析

ArrayList就是数组列表,主要用来装载数据,当我们装载的是基本类型的数据int,long,boolean,short,byte…的时候我们只能存储他们对应的包装类,它的主要底层实现是数组Object[] elementData。
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【rabbitMQ】04 如何实现高可用?

消息队列的应用场景十分广泛,其重要性也越来大,对于一个消息队列,高可用的实现至关重要,那么有几种实现rabbitMQ高可用的方式呢?_rabbitmq 如何实现高可用?
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【MyBatis】架构分析和缓存机制

创建 SqlSessionFactory 对象。通过 SqlSessionFactory 获取 SqlSession 对象。通过 SqlSession 获得 Mapper 代理对象。通过 Mapper 代理对象,执行数据库操作。执行成功,则使用 SqlSession 提交事务。执行失败,则使用 SqlSession 回滚事务。最终,关闭会话。
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【SpringCloud】如何理解分布式、微服务、集群

一提SpringCloud就会想起分布式、微服务、集群等名词,这几个名词之间有什么关系呢?SpringCloud又是如何实现微服务、分布式和集群的呢?什么是集群计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【JVM】内存模型全面解读

根据JVM规范,JVM 内存共分为虚拟机栈,堆,方法区,程序计数器,本地方法栈五个部分。为了方便培养大家的全局观,本文从java文件编译开始介绍
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【并发编程】深入解析CurrentHashmap

ConcurrentHashMap存储结构图 - 在JDK1.7中ConcurrentHashMap采用了数组+Segment+分段锁的方式实现。 - JDK1.8中是数组+链表,链表在数据过多时转为红黑树
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

详解InnoDB——综述

从 mysql-5.5.5 开始innodb作为默认的存储引擎了mysql分为客户端、Server层、存储引擎,
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

详解InnoDB(1)——事务

原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

详解InnoDB(2)——日志

MySQL整体来看,其实就有两块:一块是Server层,它主要做的是MySQL功能层面的事情;还有一块是引擎层,负责存储相关的具体事宜。binlog(归档日志)和redo log(重做日志),server 层对应的是binlog,InnoDB对应的是redo logredo logredo log利用了WAL技术,也就是Write-Ahead Logging(预习日志,也叫写之前先写日志),它的核心就是先写日志,等不忙的时候再写磁盘使用流程具体来说,当有一条记录需要更新时,InnoDB引擎会先
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【消息队列】如何做技术选型?

什么是消息队列消息队列是分布式系统中重要的组件主要拥有解决应用耦合、异步消息、流量削峰、日志处理、消息通讯可实现高性能、高可用、可伸缩、最终一致性架构目前主流的消息队列KafkaRabbitMQRocketMQ ,老版本是 MetaQ 。ActiveMQ ,目前用的人越来越少了。优缺点对比特性ActiveMQRabbitMQRocketMQKafka单击吞吐量万级万级十万级10 万级消息可靠性有较低的概率丢失数据经过参数优化配置,可以做到
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

【redis】布隆过滤器(Bloom Filter)原理解析与应用

布隆过滤器(Bloom Filter),是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。Bloom Filter原理当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。检索时,我们只要看看这些点是不是都是1就(大约)知道集合中有没有它了:如果这些点有任何一个0,则被检元素一定不在;如果都是1,则被检元素
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

Linux自动化运维——Python(3)(索引,切片,重复,连接,成员操作符的使用)

Linux自动化运维——Python(3)(索引,切片,重复,连接,成员操作符的使用)1.索引索引的用法>>> sskqnb>>> s[0] 索引是从0开始的 s>>> s[1] 正向索引k>>> s[0:3] 索引前3个字符 s[:num] 表示获取前num个字符skq>>> s[0:3:2]sq>>> s[-1] 反向索引
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

Linux自动化运维——Python(4)(Python中函数的调用及Python中形参,实参,必选参数,默认参数,可变参数,关键字参数的区别)

Linux自动化运维——Python(4)(函数 形参,实参,必选,默认,可变,关键字参数)1.定义函数 1).函数输入(参数):num1,num2 2) 函数的输出(返回值):num1,num2 3) 定义函数下面“”写的信息是函数的帮助文档4)num1:int 告诉读代码的用户,num1需要要传的值是int 如果不是也不会报错2.调用函数函数名(形参),调用函数时的参数,实参。一般实参要和形参一一对应 形参是形式参数,可以任意更改#定义函数def max..._python自动化函数的定义 以及函数的引用
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

Linux自动化运维——Python(5)(python中的文件读写)

Linux自动化运维——Python(5)(python中的文件读写)1.文件的只写w: 只写, 会清空文件原有的内容, 文件不存在,则创建文件在文件file.txt 中写入hello python1 hello westosfilename = file.txt# 1. 打开文件f = open(filename, w) # 2. 对文件操作f.write(hello python1 hello westos)# 3. 关闭文件f.close()在文件file._linux python 读取文件中的内容
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0

Linux自动化运维——Python(6)(itchat的运用 如何通过Python编程实现查看微信上的各种信息 统计字符个数)

1.pycharm的安装首先需要安装pycharm ,安装好之后安装itchat库在liunx系统中安装pycharm需要注意,首先解压安装包 解压后找到/.pycharm.sh 运行该文件 进行安装2运用itchat模块.查看微信上的好友和好友性别比例# Alt + Insert ==== Create New file# Ctrl + Alt + S ===== seetings# python package: itchatimport itchat# 1. Logi.
分类: 其他 发布时间: 08-09 10:53 阅读次数: 0