java基础总结(八十七)--Ack机制

原文链接1、ack是什么ack 机制是storm整个技术体系中非常闪亮的一个创新点。通过Ack机制,spout发送出去的每一条消息,都可以确定是被成功处理或失败处理, 从而可以让开发者采取动作。比如在Meta中,成功被处理,即可更新偏移量,当失败时,重复发送数据。因此,通过Ack机制,很容易做到保证所有数据均被处理,一条都不漏。另外需要注意的,当spout触发fail动作时,不会自动重发失败的tuple,需要spout自己重新获取数据,手动重新再发送一次ack机制即, spout发送的每
分类: 其他 发布时间: 02-28 13:49 阅读次数: 0

java数据结构与算法总结(三十三)--Btree和B+tree的区别

原文链接B树B树是一种多路自平衡搜索树,它类似普通的二叉树,但是B书允许每个节点有更多的子节点。B树示意图如下:B树的特点:(1)所有键值分布在整个树中(2)任何关键字出现且只出现在一个节点中(3)搜索有可能在非叶子节点结束(4)在关键字全集内做一次查找,性能逼近二分查找算法3:所有叶子节点都出现在同一层,且叶子节点不包含任何关键字信息(可以看做是外部接点或查询失败的接点,实际上这些结点不存在,指向这些结点的指针都为null)4:每个非叶子节点包含有n个关键字信..
分类: 其他 发布时间: 02-28 13:49 阅读次数: 0

SpringMVC总结(十八)--多个拦截相同请求的Filter的执行顺序

原文链接一、当我们为一个资源设置了多个过滤器时,这些过滤器就组成一个Filter链的结构。  当执行到一个filter的doFilter方法,调用其中的chain.doFilter()。如果还有拦截器(filter),则继续执行下一个filter的doFIlter方法,  如果之后没有过滤器了,就放行请求。相当于调用了目标资源的service()方法。  doFilter()方法用于调用Filter链上的下一个过滤器,如果当前过滤器为最后一个过滤器则将请求发送到目标资源。二、当有多个Filt.
分类: 其他 发布时间: 02-28 13:49 阅读次数: 0

剑指offer之和为S的两个数字

首先我们必须知道,在最外层的两个数乘积就是最小的,所以我们可以用双指针,一个从0开始,一个从数组最后一个元素开始,向中间寻找,那么第一个找到的满足条件的结果就是最终结果。 public ArrayList<Integer> FindNumbersWithSum(int [] array, int sum) { int i = 0; int j = array.length-1; ArrayList<Integer> list = ne.
分类: 其他 发布时间: 02-28 13:48 阅读次数: 0

剑指offer之把字符串转换成整数

public int StrToInt(String str) { //字符串为空 if (str == null||str.length() == 0) { return 0; } //字符串只包含+或者- if ("+".equals(str)||"-".equals(str)) { return 0; } //判断如果字符串开头是+或者...
分类: 其他 发布时间: 02-28 13:47 阅读次数: 0

走进springboot~

什么是springboot就是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置you can “just run”,能迅速的开发web应用,几行代码开发一个http接口。Spring Boot基于Spring 开发,Spirng Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于
分类: 其他 发布时间: 02-28 13:47 阅读次数: 0

InnoDB存储引擎下的事务

概述数据库系统引入事务的主要目的:事务会把数据库从一种一致状态转换为另一种一致状态。在数据库提交工作时,可以确保要么所有修改都已经保存了,要么所有修改都不保存。认识事务事务可由一条非常简单的SQL语句组成,也可以由一组复杂的SQL语句组成。事务是访问并更新数据库中各种数据项的一个程序执行单元。在事务中的操作,要么都做修改,要么都不做,这就是事务的目的,也是事务模型区别与文件系统的重要特征之一。对于InnoDB存储引擎而言,其默认的事务隔离级别为READREPEATABLE,InnoDB存储引擎中的
分类: 其他 发布时间: 02-28 13:47 阅读次数: 0

InnoDB存储引擎的备份与性能调优

备份分类可以根据不同的类型来划分备份的方法。根据备份的方法不同可以将备份分为:Hot Backup(热备)Hot Backup是指数据库运行中直接备份,对正在运行的数据库操作没有任何的影响。这种方式在MySQL官方手册中称为Online Backup(在线备份)。Cold Backup(冷备)Cold Backup是指备份操作是在数据库停止的情况下,这种备份最为简单,–般只需要复制相关的数据库物理文件即可。这种方式在MySQL官方手册中称为Offine Backup(离线备份)。
分类: 其他 发布时间: 02-28 13:46 阅读次数: 0

认识yaml语法~

今天来学习springboot这个配置文件到底可以配置哪些东西配置文件SpringBoot使用一个全局的配置文件,配置文件名称是固定的application.properties语法结构: key=vaiueapplication.yaml语法结构: key:空格value配置文件的作用∶修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;可以看到application.yaml所支持的语法是更强大的,但是对空格的格式要求是很高的。用yam.
分类: 其他 发布时间: 02-28 13:46 阅读次数: 0

剑指offer之数组中重复的数

方法一: public boolean duplicate(int numbers[],int length,int [] duplication) { ArrayList<Integer> list = new ArrayList<>(); for (int i = 0;i<length;i++) { if (list.contains(numbers[i])) { duplic.
分类: 其他 发布时间: 02-28 13:45 阅读次数: 0

剑指offer之链表中环的入口节点

如图,链表起点为a,环的入口点为b,设两个快慢指针从a开始,一个一次走两个节点,一个一次走一个,那么最终他们肯定会相遇的,假设相遇点为c,那么根据推算,有c到b的距离即图中红线部分,长度等于a到b,所以我们再设一个指针指向a,让之前设置的慢指针接着c开始,两个一人走一步,那么最终相遇的点就是环的入口即b。 public ListNode EntryNodeOfLoop(ListNode pHead) { if (pHead == null||pHead.next == null..
分类: 其他 发布时间: 02-28 13:45 阅读次数: 0

剑指offer之删除链表中重复节点

public ListNode deleteDuplication(ListNode pHead) { if (pHead == null||pHead.next == null) { return pHead; } ListNode newHead = new ListNode(-1); newHead.next = pHead; ListNode pre = newHead; ...
分类: 其他 发布时间: 02-28 13:45 阅读次数: 0

剑指offer之序列化二叉树

int index = -1; String Serialize(TreeNode root) { if (root == null) { return "#"; } return root.val+","+Serialize(root.left)+","+Serialize(root.right); } TreeNode Deserialize(String str) { String[].
分类: 其他 发布时间: 02-28 13:44 阅读次数: 0

剑指offer之矩阵中的路径

public class Main { //矩阵中的路径 public int[][] visit; public boolean hasPath(char[] matrix, int rows, int cols, char[] str){ visit = new int[rows][cols]; char[][] array = new char[rows][cols]; //将字符串中的每个字符放入二维数组中 f.
分类: 其他 发布时间: 02-28 13:43 阅读次数: 0

Redis安装~~

什么是RedisRedis ( Remote Dictionary Server ),即远程字典服务!是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API.redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。免费和开源!是当下最热门的NoSQL技术之一!也被人们称之为结构化数据库!Redis能干嘛1、内存存储、持久化,内存中是断电即失、所以说
分类: 其他 发布时间: 02-28 13:42 阅读次数: 0

Redis三种特殊数据类型

geospatial地理位置添加地理位置,参数(纬度,经度,名称)获取指定城市的经度和纬度获取两个地方之间的距离指定经纬度为中心,找出给定半径内的城市指定城市为中心查找指定半径内存在的城市geo底层是zsetHyperloglog无重复元素测试使用bitmaps位存储统计用户信息,活跃,不活跃!登录、未登录!打卡,365打卡!两个状态的,都可以使用Bitmaps !Bitmaps位图,数据结构!都是操作二进制位来进行记录,就只有0和1两个状态!
分类: 其他 发布时间: 02-28 13:41 阅读次数: 0

Java并发机制底层实现原理

上下文切换即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒(ms)。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。当并发执行累加操作不超过百万次时,
分类: 其他 发布时间: 02-28 13:41 阅读次数: 0

关于Jedis

概述我们要使用Java来操作Redis什么是jedis是Redis官方推荐的java连接开发工具!使用Java 操作Redis 中间件!如果你要使用java操作redis,那么一定要对Jedis十分的熟悉!测试导入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId>
分类: 其他 发布时间: 02-28 13:41 阅读次数: 0

Redis持久化之rdb,aof

概述Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能!RDB ( Redis DataBase )redis默认是rdb在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建 ( fork )一个子进程来进行持久化,会先将数据写入到一个临时文件(dump.rdb)中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文
分类: 其他 发布时间: 02-28 13:40 阅读次数: 0

Redis发布订阅,主从复制,哨兵模式,缓存穿透,缓存击穿和雪崩

发布订阅Redis发布订阅(pub/sub)是一种消息通信模式∶发送者(pub)发送消息,订阅者(sub)接收消息。微信、微博、关注系统!Redis客户端可以订阅任意数量的频道。主从复制主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(masterleader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。主从复制,读写分离!80%的情况下都是在进行读操作!减缓服务器的压
分类: 其他 发布时间: 02-28 13:40 阅读次数: 0