2019-09-09 16:44
ubuntu 16.04 自带gcc 5.4 支持c++11ubuntu 18.04 自带gcc 7.3 支持c++14...
2019-09-09 16:20
前言
在实际系统应用中,普遍存在这样的一种业务场景,需要实现用户对要访问的资源进行动态权限校验。
譬如,在某平台的商家系统中,存在商家、品牌、商品等业务资源。它们之间的关系为:一个商家可以拥有多个品牌,一个品牌下可以拥有多个商品。
一个商家用户可以拥有多个账户,每个账户拥有不同级别的权限。
例如,小王负责商家A下的所有资源的运营工作,小张负责品牌A和品牌A下所有商品的运营工作。而小李负责品牌B
Shiro本身提供了RequiresAuthentication、RequiresPermissions和RequiresRoles等注解用于实现静态权限认证,
...
2019-09-09 15:19
之前三节都没涉及到机房,只是一些零零散散的知识点,这一节我们就开始正式画外墙。
首先我了明显理解以下啥是墙?其实说白了就是一个长方体,长不确定,宽一般也就是40cm,高也就是两米,这就是一个简单的墙,当然很多墙上都有窗户、门啥的,其实也就是在长方体的固定的位置掏个洞,然后放上我们需要方的东西,比如门,窗户。
在画墙之前我们需要对一个机房的俯视图进行分析,就比如下面这张机房的图片
(图片来自网络)
就像图片中显示的一样,这个机房非常标准,是个很标准的长方形机房,长900cm, 宽600cm,左侧的墙体是玻璃隔断,还有一扇门,
...
2019-09-09 15:30
动态数据集合中求top k大元素
第1大,第2大 ...第k大
k是这群体里最小的
所以要建立个小顶堆
只需要维护一个大小为k的小顶堆 即可
当来的元素(newCome)> 堆顶元素(smallTop),说明进来的元素有和堆顶竞争的资格,此时的堆顶被踢出 这时把进来的元素放到堆顶
newCome>smallTop,smallTop的左右孩子>smallTop,所以无法确认 newCome和smallTop的左右孩子的大小关系,
在newCome和smallTop的左右子节点找到最小的元素和newCome交换,然后继续比较newCome与被交换的左右孩子的大小关系
...
2019-09-09 15:33
背景
Read the fucking source code! --By 鲁迅
A picture is worth a thousand words. --By 高尔基
说明:
Kernel版本:4.14
ARM64处理器,Contex-A53,双核
使用工具:Source Insight 3.5, Visio
1. 介绍
从(二)Linux物理内存初始化中,可知在paging_init调用之前,存放Kernel Image和DTB的两段物理内存区域可以访问了(相应的页表已经建立好)。尽管物理内存已经通过memblock_add添加进系统,但是这部分的物理内存到虚拟内存的映射还没有建立,可以通过memblock_alloc分配一段物理内存,但是还不能访问,一切还需要等待paging_init的执行。最终页表建立好后,可以通过虚拟地址去访问最终的物理地址了。
...
2019-09-09 15:50
下载中间件简介
在Scrapy中,引擎和下载器之间有一个组件,叫下载中间件(Downloader Middlewares)。因它是介于Scrapy的request/response处理的钩子,所以有2方面作用:
(1)引擎将请求传递给下载器过程中,下载中间件可以对Requests进行一系列处理。比如设置请求的 User-Agent,设置代理ip等
(2)在下载器完成将Response传递给引擎中,下载中间件可以对Responses进行一系列处理。比如进行gzip解压等。
爬虫中,主要使用下载中间件处理请求,一般会对请求设置随机的User-Agent ,设置随机的代理ip。目的在于防止爬取网站的反爬虫策略。
...
2019-09-09 15:56
什么是Reactor模式
Reactor模式是一种设计模式,它是基于事件驱动的,可以并发的处理多个服务请求,当请求抵达后,依据多路复用策略,同步的派发这些请求至相关的请求处理程序。
Reactor模式角色构成
在早先的论文An Object Behavioral Pattern for
Demultiplexing and Dispatching Handles for Synchronous Events中Reactor模式主要有五大角色组成,分别如下:
Handle:操作系统提供的一种资源,用于表示一个个的事件,在网络编程中可以是一个连接事件,一个读取事件,一个写入事件,Handle是事件产生的发源地
...
2019-09-09 15:26
2005年,sun公司推出了jdk1.5,同时推出的注解功能吸引了很多人的目光,使用注解编写代码,能够减轻java程序员繁琐配置的痛苦。...
2019-09-09 15:51
4、探秘黑客踪
4.1 寓言公寓楼
城市一角有一栋单身公寓楼,公寓有门有窗。到了晚上,主人下班回来,拿钥匙打开门进屋,关门熄灯休息, 平时窗户半开着,通风透气,保持空气清新。
一台云服务器好比作一间单身公寓。黑客好比作不速之客,不请自来,黑客进屋有两条路可走,一条路是开门大摇大摆进来,另一条路是翻窗进屋,多少需要一些飞檐走壁的功夫。
公寓门比较先进,使用了电子密码锁,需要输入正确密码才能开门进屋。黑客是不知道密码的,不能进屋。
单身公寓的1605室在16楼,小明在这间公寓里住了小一年了,最近新交了一位朋友小芳,这段时间留宿在公寓。小明和新朋友上下班有早有晚,所以小明给她开了一个新账号,设了新密码。小明有点懒,把账号和密码设成一样的了,心想16楼很少有人来,楼道有24小时监控,谅他也没人敢私闯民宅。
...
2019-09-09 15:41
摘要:
若你是一个有经验的程序员,那你在开发中必然碰到过这种现象:事务不生效。或许刚说到这,有的小伙伴就会大惊失色了。Spring不是解决了循环依赖问题吗,它是怎么又会发生循环依赖的呢?,接下来就让我们一起揭秘Spring循环依赖的最本质原因。
Spring循环依赖流程图
file
Spring循环依赖发生原因
使用了具有代理特性的BeanPostProcessor
典型的有 事务注解@Transactional,异步注解@Async等
file
file
file
源码分析揭秘
protected Object doCreateBean( ... ){
...
2019-09-09 15:08
本文接着上一篇写的《Java微服务(一):dubbo-admin控制台的使用》,上篇文章介绍了docker,zookeeper环境的安装,并参考dubbo官网演示了dubbo-admin控制台的使用。上篇文章已经搭建好zookeeper服务注册中心,本片文章主要搭建服务消费者和服务提供者。按照微服务的原则,本文将demo分为3部分:服务接口、服务消费者、服务消费者。...