- 博客(27)
- 收藏
- 关注
原创 Java高并发系统的常用限流策略
Java高并发系统的常用限流策略 在高并发访问时,常会出现服务或接口面对暴涨的请求而不可用的情况,更甚至导致整个系统崩溃.而使用的技术手段之一就是限流,当请求达到一定的并发数或速率,就进行等待,排队,降级,拒绝服务等. 在开发高并发系统时有三把利器用来保护系统:缓存,降级和限流. 限流常见算法 计数器/时间窗口法 最简单也最容易实现的一种,通过在单位时间内设置最大访问数就可以达到限流的目...
2020-04-27 12:18:28
504
转载 布隆过滤器(Bloom Filter)
布隆过滤器(Bloom Filter) 一句话了解布隆过滤器 布隆过滤器(Bloom Filter):本质上是一种概率型数据结构(probabilistic data structure),优点是高效地插入和查询,根据查询结果快速判断某样东西一定不存在或者可能存在,缺点是只能插入不能删除. 布隆过滤器相比于传统的 List,Set,Map 等数据结构,它更高效,占用空间更少,但是缺点是其返回...
2020-04-22 16:49:21
453
原创 2.从Hadoop框架讨论大数据生态
从Hadoop框架讨论大数据生态 1.1 Hadoop是什么 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 主要解决,海量数据的存储和海量数据的分析计算问题. 广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈. 1.2 Hadoop发展史 1)Lucene框架是Doug Cutting开创的开源软件,用Java书写代码,实现与Google类似...
2019-08-31 18:45:33
251
原创 1.大数据概述
大数据概论 1.1 大数据概念 大数据(Big Data):指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察发现力和流程优化能力的海量,高增长率和多样化的信息资产. 主要解决:海量数据的存储和海量数据的分析计算问题. 按顺序给出数据存储单位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。 ...
2019-08-31 17:16:26
160
原创 Shell入门
Shell基础 1. Shell概述 1.1 shell是什么 Shell是一个命令行解释器,它为用户提供了以向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动,挂起,停止甚至是编写一些程序. 1.2 shell的分类 Bourne家族,主要包括:sh,ksh,Bash,psh,zsh. C家族,主要包括:csh,tcsh 2. 脚本的执行方式 2.1 前提 ...
2019-08-31 16:36:36
205
原创 Docker镜像
Docker镜像 1.简介 Docker是一个开源的应用容器引擎,完全使用沙箱机制,相互之间不会有任何接口,性能开销极低. Docker支持将软件编译成一个镜像;然后在镜像中各种软件配置,发布镜像,让其他人直接使用. 2.Docker核心概念 docker镜像(images):docker镜像是用于创建Docker容器的模板. docker容器(container):容器是独立运行的一个或一组应用...
2019-01-10 14:26:02
254
原创 7.rabbitmq的消息确认机制
消息确认机制 在rabbitmq中,我们可以通过持久化数据,解决rabbitmq服务器异常的数据丢失问题. 问题:生产者将消息发送出去之后,消息到底有没有到底rabbitmq服务器,默认情况下是不知道的 两种方式: AMQP实现事务机制. Confirm模式. 事务机制 txSelect:用于将当前channel设置成transation模式 txCommit:用与提交事务 txRollbac...
2019-01-10 14:21:09
183
原创 6.主题模式
Topic主题模式 将路由键和某模式匹配 #匹配一个或者多个 *匹配一个 Goods.# 商品:发布,删除,修改,查询 package com.mmr.rabbit.topic; import com.mmr.rabbit.util.ConnectionUtils; import com.rabbitmq.client.Channel; import com.rabbitmq.client...
2019-01-10 14:21:05
355
原创 5.Exchange(交换机 转发器)
对比 一方面是接收生产者的消息,另一方面是向队列推送消息. //匿名转发:"" //fanout(不处理路由键) //声明交换机 channel.exchangeDeclare(EXCHANGE_NAME,"fanout");//分发 //发送消息 String msg="hello ps"; channel.basicPublish(EXCHANGE_NAME,"&
2019-01-10 14:21:00
231
原创 4.订阅模式
publish_subcribe订阅模式 解读: 一个生产者,多个消费者. 每一个消费者都有自己的队列. 生产者没有直接把消息发送到队列,而是发送到了交换机,转发器exchange. 每个队列都要绑定到交换机上. 生产者发送的消息,经过交换机,到达队列,就能实现一个消息被多个消费者消费. 注册—>邮件 注册—>短信 环境搭建 package com.mmr.rabbit.ps; ...
2019-01-10 14:20:54
165
原创 3.消息应答与消息分发
消息应答 boolean autoAck=false; channel.basicConsume(QUEUE_NAME,autoAck,consumer); boolean autoAck=true; //自动确认模式,一旦rabbitmq将消息分发给消费者,就会从内存中删除,这种情况下,如果杀死了正在执行的消费者,就会丢失正在处理的消息. boolean autoAck=false; /...
2019-01-10 14:20:48
160
原创 2.工作队列
work queues 为什么会出现工作队列? Simple队列是一一对应的,而且我们实际开发,生产者发送消息是毫无费力的,而消费者一般是要跟业务相结合的,消费者接收到消息之后就需要处理,可能需要花费时间,这时候队列就会挤压了很多消息. 1.轮询分发 消费者1和消费者2处理的消息是一样多的. 消费者1:偶数,消费者2:奇数 这种方式叫做轮询分发(round-robin),任务总是均分....
2019-01-10 14:20:43
126
原创 0.RabbitMq消息队列
rabbitmq环境搭建 下载Elang语言环境包以及rabbitmq环境包. 安装语言环境包,rabbitmq环境包,并在rabbit命令窗口执行-rabbitmq-plugins enable rabbitmq_management 打开http://localhost:15672 默认用户名/密码:guest 相关概念解释 rabbitmq概念 Queue:队列是RabbitMQ的内部...
2019-01-10 14:20:35
155
原创 1. 简单队列
简单队列 耦合性高,生产者一一对应消费者(不允许多个消费队列中的消息). 项目搭建 新建maven项目 添加依赖 <dependencies> <dependency> <groupId>com.rabbitmq</groupId> <artifactId&a
2019-01-10 14:12:38
157
原创 Redis基础
Redis基础 redis的五大数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sort set:有序集合). list k-v格式中的v的数据类型是list. LPUSH key value [value...] RPUSH key value [value...] LPOP key ...
2019-01-10 12:33:48
135
原创 PLSQL程序设计
PLSQL程序设计 sqlplus scott/123456@127.0.0.1:1521/orcl declare --说明部分 begin --程序 dbms_output.put_line('Hello World'); end; 什么是PL/SQL? PL/SQL(Procedure Language/SQL)是oracle对sql语言的过程化扩展. 指在SQ...
2019-01-10 12:31:14
430
原创 Oracle的管理操作
oracle的用户权限操作 --查询当前用户角色(角色不用,对应的权限不同) select * from role_sys_privs; --dba是oracle数据库中最高权限的角色. --切换到system用户下,创建表空间 create tablespace 表空间名称 datafile '文件地址/文件名.dbf' size 100m --默认大小 autoextend on ne...
2019-01-10 12:29:59
137
原创 Oracle的数据处理
SQL的类型 SQL的类型: 1.DML(data manipulation language 数据操作语言):insert update delete select 2.DDL(data definition language 数据定义语言):create table,alter table,drop table,truncate table,create/drop view,sequence...
2019-01-10 12:29:28
372
原创 Oracle基础知识
oracle基本概念 一个oracle服务器:由一个oracle数据库和多个oracle实例组成. 是一个数据管理系统(RDBMS),它提供开放的,全面的,近乎完整的信息管理. 数据库:物理概念,/opt/oracle/oradata/ORCL中的数据文件 ORCL实例名 oracle实例:数据库在内存文件中的镜像. oracle实例=内存(SGA系统全局区)+后台进程(主要5个:SMON/P...
2019-01-10 12:29:01
195
原创 MySQL事件调度器
mysql事件调度器 事件调度器(event_scheduler):可以定时执行某些特定任务,可以看做基于时间的触发器. 事件开关设置 SHOW VARIABLES LIKE 'event_scheduler'; SELECT @@event_scheduler; SET GLOBAL event_scheduler=1; SHOW CREATE EVENT insert_tdemo; SHO...
2019-01-10 12:27:44
406
原创 MySQL存储过程和函数
事务安全 事务:transaction,一系列要发生的连续的操作. 事务安全:一种保护连续操作同时满足(实现)的一种机制. 事务安全的意义:保证数据操作的完整性. 需求: 有一张银行账户表,有A用户给B用户转账:A账户减少,B账户增加.但是A操作完成之后断电了. 解决方案:A减少钱,但是不要立即修改数据表,B收到钱之后,同时修改数据表. 事务操作 事务操作分为两种:自动事务(默认),手...
2019-01-10 12:27:09
500
原创 MySQL数据备份以及视图
外键 外键:foreign key,外面的键(键不在自己表中):如果一张表中有一个字段(非主键)指向另外一张表的主键,那么该字段称之为外键. 增加外键 外键可以在创建表的时候或者创建表之后增加(但是要考虑数据的问题). 一张表可以有多个外键. 创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段) references 外部表(主键字段) -- 主表 CREATE...
2019-01-10 12:26:02
2309
原创 MySQL连接查询
连接查询 连接查询:将多张表(可以大于2张)进行记录的连接(按照某个指定的条件进行数据拼接); 最终结果是:记录数有可能变化,字段数一定会增加(至少两张表的合并) 连接查询的意义:在用户查看数据的时候,需要显式的数据来自多张表. 连接查询join,使用方式:左边 join 右表 左表:在join关键字左边的表 右表:在join关键字右边的表 连接查询的分类 SQL中将连接查询分成四类:...
2019-01-10 12:25:11
1022
原创 MySQL主外键以及基本查询
主键 主键:primary key,主要的键.一张表中只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复:这种称之为主键. 一张表中只能有最多一个主键. 增加主键 SQL操作中有多种方式可以给表增加主键:大体分为三种. 1.在创建表的时候,直接在字段之后,跟primary key 关键字(主键本身不为空) 优点:非常直接.缺点:只能使用一个字段作为主键. -- 增...
2019-01-10 12:09:01
3931
原创 MySQL数据类型
数据类型 数据类型: 对数据进行统一的分类, 从系统的角度出发为了能够使用统一的方式进行管理: 更好的利用有限的空间. SQL中将数据类型分成了三大类: 数值类型, 字符串类型和时间日期类型. 数值型 数值型数据:都是数值 数值型分类: 1.整数型. 2.小数型 整数型 存放整型数据:在SQL中因为更多要考虑如何节省磁盘空间,所以又细分为五大类. tinyint:迷你整型,使用一个字...
2019-01-10 12:07:50
107
原创 MySQL基础
数据库基础 SQL: Structured Query Language, 结构化查询语言(数据以查询为主: 99%是在进行查询操作) SQL分为三个部分 DDL: Data Definition Language, 数据定义语言, 用来维护存储数据的结构(数据库,表), 代表指令: create, drop, alter等. DML: Data Manipulation Language, 数...
2019-01-10 12:06:42
82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人