首页
精选文章布隆过滤器查看全文布隆过滤器是Bloom提出了过滤机制,主要用于判断数据是否存在,如果数据存在返回true,否则返回false,但是当返回true的时候布隆过滤器不保证数据一定准确,也就是可能一定的假存在的可能性,但返回false的时候数据一定是不存在的。布隆过滤器一般通过Bitmap和一组Hash函数构成,当值被写入持久化存储的同时写入布隆过滤器,写入逻辑如下: 将Hash函数组中的每个Hash函数对Key进行Hash操作。 Hash操作之后进行位置运算,例如对bitmap数组的长度取模。 将Hash结果对应的位置写入1 在查询的时候,也会运用这一组Hash函数分别对请求值进行Hash和位置运算,最后判断这一组的结果值是否全为1,如果不是全1,则数据一定不存在,反之如果为0,则判定数据存在,但是因为Hash冲突的原因,所以全为1也有一定的误差存在,尤其是bitmap的空间不足的时候。 和其他表示集合类的数据结构,例如平衡二叉搜索树、Trie 树、哈希表,数组或者链表,布隆过滤器的空间复杂度最低,因为布隆过滤器不存储数据本身,而仅仅存储数据的一组哈希值,而且位数组的存储结构也更加紧凑,避免了指针开销。 布隆过滤器的仅仅需要计算一组Hash值,时间复杂度也接近O(1)。LVS查看全文LVS是常用的四层负载均衡,目前已经被加入linux内核。四层负载均衡是指运行在传输层的负载均衡机制,而七层负载均衡一般是指运行在应用层的机制,比如nginx,haproxy等7层负载均衡组件都可以根据url进行路由,但是4层负载均衡没有对应的能力,同样,由于4级负载均衡不需要知道应用层协议,所以不需要解析请求,只是要将网络请求进行转发,所以一般拥有更高的性能。 LVS主要组成部分为: 负载调度器(load balancer/ Director),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。 服务器池(server pool/ Realserver),是一组真正执行客户请求的服务器,执行的服务一般有WEB、MAIL、FTP和DNS等。 共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。 LVS的负载均衡有三种策略,NAT,TUN,DR。 NAT VS/NAT是一种最简单的方式,所有的RealServer只需要将自己的网关指向Director即可。客户端可以是任意操作系统,但此方式下,一个Director能够带动的RealServer比较有限。在VS/NAT的方式下,Director也可以兼为一台RealServer。 TUN IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术(IP encapsulation…自动装配【SpringBoot】查看全文Ioc是Spring框架的核心机制之一,Ioc的设计理念是将系统中的Bean进行全生命周期统一的管理,Bean的声明周期包括Bean的定义,配置,创建,初始化,销毁等。为了实现Spring的Ioc机制,spring需要处理Bean之间的依赖关系,最初这些依赖关系依靠配置文件进行管理,但是这些配置信息非常冗长,难以维护。 为了减少配置信息,Spring框架提出了声明式的Bean定义,声明式的Bean定义会对Bean的依赖关系进行自动分析以及自动装配。 spring自动装配通过注解@Autoware实现,自动装配的方式分为如下几种: Spring解决了Bean的自动装配,SpringBoot中的自动装配机制更加专注于组件。 组件即实现了某种能力的一个模块。常见的sping组件有缓存模块,例如Cache组件,链接池组件等,组件通常使用三方jar包的方式提供,SpringBoot的自动装配机制可以将这些组件的Bean自动装配到Spring框架的Bean工厂中。 SpringBoot中的自动装配机制分为几个模块,装配入口,装配实现一机装配的时机。 装配入口 @EnableAutoConfiguration是SpringBoot框架中实现自动装配的核心注解,该注解是一个复合注解,该注解上的@Import(AutoConfigurationImportSelector.class)注解是自动装配核心的执行部分。 AutoConfigurationImportSelector类会扫描ClassPath下所有jar包的spring.factories。 spring.factories配置了可以被自动加载的组件,这些组件一般是以… |
热门分类开源Golang消息队列JavaJavascriptLinuxMysqlNLPPHP事务内存管理分布式理论分类存储常用存储开源软件操作系统画图网络编程数据库算法虚拟化前端存储理论常用算法微服务数据结构算法应用计算机原理中间件共识算法分布式分治动态规划容器并发排序架构组件绘图工具网络协议编程语言理论算法思想树缓存架构C++字符串算法工程思想搜索
算法题库精选内容 |