什么是权限控制 将指定用户绑定到指定资源上,只能对指定资源进行(CRUD)操作。 限框架核心知识 ACL 和 RBAC ACL: Access Control List 访问控制列表 以前盛行的一种权限设计,它的核心在于用户直接和权限挂钩。 例子:常见的文件系统权限设计(Linux 文件系统权限设计), 直接给用户加权限 优点:简单易用,开发便捷。 缺点:用户和权限直接挂钩,导致在授予时的复杂性,比较分散,不便于管理。 RBAC: Role Based Access Control 基于角色的访问控制系统。权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。 例子:基于 RBAC 模型的权限验证框架与应用 Apache Shiro、Spring Security。 优点:简化了用户与权限的管理,通过对用户进行分类,使得角色与权限关联起来 缺点:开发对比 ACL 相对复杂 总结:不能过于复杂,规则过多,维护性和性能会下降, 更多分类 ABAC、PBAC 等。 Apache Shiro VS Spring Security Spring Security ....
常用压力测试工具对比 loadrunner: 性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多 。 apache ab(单接口压测最方便): 模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载, 简单DDOS攻击等 。 webbench: webbench首先fork出多个子进程,每个子进程都循环做web访问测试。子进程把访问的结果通过pipe告诉父进程,父进程做最终的统计结果。 压测不同的协议和应用 Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …) SOAP / REST Webservices FTP Database via JDBC LDAP 轻量目录访问协议 Message-oriented middleware (MOM) via JMS Mail - SMTP(S), POP3(S) and IMAP(S) TCP 等等 使用场景及优点 功能测试 压力测试 分布式压力测试 纯 Java 开发 上手容易,高性能....
持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 JDK [root@localhost test]# tar -zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/ [root@localhost jdk1.8.0_91]# pwd [root@localhost jdk1.8.0_91]# vim /etc/profile /usr/local/jdk1.8.0_91 JAVA_HOME=/usr/local/jdk1.8.0_91 export JAVA_HOME CLASSPATH=.:$JAVA_HOME/lib export CLASSPATH PATH=$PATH:$JAVA_HOME/bin:$CLASSPATH export PATH [root@localhost jdk1.8.0_91]# source /etc/profile [root@loca....
简介 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。 基础功能免费,高级功能收费。 基础功能开源,可自行搭建 。 可以进行权限控制,使得代码对部分人可见 。 GitLab 使用方便,非常适合企业内部使用。 部署 必须双核,内存最好 3G,否则报 502. # 在防火墙里开放http跟ssh端口 [root@localhost ~]# yum install lokkit yum install curl policycoreutils openssh-server openssh-clients systemctl start postfix.service chkconfig postfix on lokkit -s http -s ssh # 添加gitlab仓库,并安装 curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo b....
简介 Git 是一个分布式版本控制软件,最初由(Linus Torvalds)创作。 同类型软件有 SVN、cvs,Git 相比于他们最大的优势就在于 Git 是分布式的 。 Git 允许多个远程仓库存在,使得这样一种工作流成为可能:每个开发者拥有自己仓库的写权限和其他所有人仓库的读权限。 这种情形下通常会有个代表“官方”项目的权威的仓库。 要为这个项目做贡献,你需要从该项目克隆出一个自己的公开仓库,然后将自己的修改推送上去。 接着你可以请求官方仓库的维护者拉取更新合并到主项目。 维护者可以将你的仓库作为远程仓库添加进来,在本地测试你的变更,将其合并入他们的分支并推送回官方仓库。 部署 git-2.9.5 [root@localhost test]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel [root@localhost test]# yum install gcc perl-ExtUtils-MakeMaker [root@localhost test]# yum re....
安装 Maven Maven下载 配置环境变量 重启 检测是否安装成功 C:\Users\soulboy>mvn --version Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00) Maven home: F:\Development\Maven\bin\.. Java version: 1.8.0_111, vendor: Oracle Corporation, runtime: F:\Development\JDK1.8\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows" Maven 仓库的分类 本地仓库 maven 本地仓库的默认位置:无论是 Windows 还是 Linux,在用户的目录下都有一个。m2/repository/的仓库目录,这就是 M....
布隆过滤器简介 布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 布隆过滤器可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判。但是布隆过滤器也不是特别不精确,只要参数设置的合理,它的精确度可以控制的相对足够精确,只会有小小的误判概率。当布隆过滤器说某个值存在时,这个值可能不存在;当它说不存在时,那就肯定不存在。 优点 相比于其它的数据结构,布隆过滤器在空间和时间方面都有巨大的优势。布隆过滤器存储空间和插入/查询时间都是常数(即复杂度为 O(k))。另外,散列函数相互之间没有关系,方便由硬件并行实现。布隆过滤器不需要存储元素本身,在某些对保密要求非常严格的场合有优势。 缺点 但是布隆过滤器的缺点和优点一样明显。误算率是其中之一。随着存入的元素数量增加,误算率随之增加。但是如果元素数量太少,则使用散列表足矣。 ....