springMVC整合shiro实现
什么是shiro
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
三个核心组件:Subject, SecurityManager 和 Realms.
Subject:即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是Shiro的“用户”概念。
Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。
SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
Realm: Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权 ...
高可用MQ服务I
工程结构
此处利用RocketMQ先构建一个消息生产者体系,因此,如下结构图,不涉及消费者体系。完整的工程结构不应该如此结构图这般。
1234567891011121314151617181920212223242526272829303132.├── build.gradle├── mq-lib.iml└── src └── main └── java └── cn └── diudiu └── mq ├── config │ ├── DiuDiuMqConfig.java │ └── DiuDiuMqProducerConfig.java ├── message │ ├── IMessageHandler.java ...
Hadoop系列:独立模式standalone(一)
Hadoop概要
Hadoop是一个分布式的软件框架。拥有云计算的PasS层的所有的特点,是云计算的重要组成部分。Hadoop的两大核心组成部分为:分布式文件系统HDFS和分布式计算框架MapReduce。
1.海量数据的摇篮–HDFS
作为Hadoop分布式文件系统,HDFS处于Hadoop生态圈的最下层,存储着所有的数据,支持者Hadoop的所有服务。它的理论基础源于Google的The Google File System这篇论文,是GFS的开源实现。
HDFS的设计理念是以流失数据访问模式,存储超大文件,运行于廉价的硬件集群之上。
2.处理海量数据的利器–MapReduce
MapReduce是一种编程模型,Hadoop根据Google的MapReduce论文将其实现,作为Hadoop的分布式计算模型,是Hadoop的核心。
Hadoop安装
下载解压
从Hadoop官网选择合适的版本,下载解压。
123wget http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.t ...
关于dubbo配置引起的线上事故报告
Hi,All:
很抱歉,昨天(3.28)晚上8点多clan以及相关业务上线,上线测试回归,一切正常。晚上10点过几分,用户反馈系统出错,排查之后发现线上两台clan均挂掉。10:10:34重启暂时恢复线上业务。
查询日志发现,在2017-03-28 21:59:54.793的时候,dubbo provider不能注册服务。此时,tomcat的进程已经down掉了。后续的日志都是一些不能注册或者不能订阅的错误,甚至是调用方法时service没有实例化的错误,应该属于tomcat down掉后,dubbo的进程还没有shutdown(从时间上可以看出,具体看后面的两段日志[1])。
后续从日志中,早于服务挂掉的时间,发现有dubbo线程池耗尽的警告。
12345678910111213141516171819202122232425262728[2017-03-23 17:09:35.432] clan WARN [DUBBO] An exception was thrown by a user handler while handling an exception event ([ ...
Mac安装Percona-Toolkit
percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和
麻烦的mysql和系统任务,这些任务包括:
ü 检查master和slave数据的一致性
ü 有效地对记录进行归档
ü 查找重复的索引
ü 对服务器信息进行汇总
ü 分析来自日志和tcpdump的查询
ü 当系统出问题的时候收集重要的系统信息
percona-toolkit源自Maatkit和Aspersa工具,这两个工具是管理mysql的最有名的工具,现在Maatkit工具已经不维护了,请大家还是使用percona-toolkit吧!这些工具主要包括开发、性能、配置、监控、复制、系统、实用六大类,作为一个优秀的DBA,里面有的工具非常有用,如果能掌握并加以灵活应用,将能极大的提高工作效率。
安装mysql
如果没有安装,请看传送门。
如果安装了,服务器启动有问题,请检查配置文件,查看日志。最好的解决方法就是log-error指定的错误日志中记录的信息,或者使用mysqld status命令来查看。
问题解决后,启动的时候可以选择mysqld_safe &,也可以使用mysq ...
mybatis使用spring-druid数据源连接池配置log4j打印sql语句以及开启监控平台
引言
作为程序员,开发工程中,一套利于测试或者监控的工具很重要,mybatis默认没有提供log4j的打印sql语句的配置。
这对于开发rest服务,提供接口的开发者而言,是在很不好做,再加上mybatis很灵活,使用脚本动态生成sql语句,因此,有时候真不知道运行的sql是不是我们所期望的,过滤的条件是否起作用。
所幸,德鲁伊监控平台是个不错的选择,在性能方面druid连接池也比spring原生的要好,因此也是很多企业开发的首选数据源配置。
在引言阶段,我们先看看目前我配置的结果是否是你想要的,如果不是你所期望的,就别浪费时间往下面看,毕竟大家都时间有限,没必要花费时间看一些对自己没用的东西。
控制台打印的日志,慎重的告诉你,这种大量打印信息不能用于生产坏境,生产环境中这些信息写到tomcat的日志文件中了{tomcat的目录}/logs/catalina.out,如果访问量很大的时候,一天产生几GB的日志不是问题–慎用。
12345678910111213141516171819202122232425262728[03/06/16 11:56:03:003 ...
dubbox_dubbo+spring+mybatis+gradle构建REST服务
关于Dubbox
什么是dubbox?看看别人怎么说的:
Dubbox是Dubbo的一个扩展,假如你知道java, javax 和 dubbo,那你就会明白dubbox是什么了。
Dubbox增加的功能如RESTful remoting, Kyro/FST 系列化等。它已经应用在当当网内部的多个项目中。
dubbox的功能
支持REST风格远程调用(HTTP + JSON/XML):基于非常成熟的JBoss RestEasy框架,在dubbo中实现了REST风格(HTTP + JSON/XML)的远程调用,以显著简化企业内部的跨语言交互,同时显著简化企业对外的Open API、无线API甚至AJAX服务端等等的开发。事实上,这个REST调用也使得Dubbo可以对当今特别流行的“微服务”架构提供基础性支持。 另外,REST调用也达到了比较高的性能,在基准测试下,HTTP + JSON与Dubbo 2.x默认的RPC协议(即TCP + Hessian2二进制序列化)之间只有1.5倍左右的差距,详见文档中的基准测试报告。
支持基于Kryo和FST的Java高效序列化实现:基 ...
Mac 下 Nginx、PHP、MySQL 和 PHP-fpm 的安装和配置
杂七杂八的杂
Mac下搭建MNPM环境是每个使用者mac的phper必备的技能。一般都是找到新工作入职的第一天做的事情--配置环境。
如上,今天入职的,配置开发环境。公司配备的硬件设备很屌,15年产macbook pro笔记本一台(13寸),配置了8GB DDR3内存,2.7GHz core i5处理器,120GB的闪存。当然了,没我自己买的配置高,哈哈~~
安装 Mac 的包管理器 - homebrew
home-brew是什么?先这样说吧,home-brew与OS X就像nodes与npm,java与maven(或者gradle),php与composer,apt-get与Ubutun,yum与centos,还有其他等等吧,都是宿主的开发工具或包的依赖管理。
安装Homebrew之前,先安装xcode命令行工具,安装成功后,打开xcode的应用,查看Xcode是否为最新,如果不是最新的请在App Store中升级Xcode。
安装xcode命令行工具的命令:
1xcode-select --install
安装完后,请使用brew doctor命令检查当前环境是否最新符合brew ...