Blog icon indicating copy to clipboard operation
Blog copied to clipboard

MyBlog

Results 62 Blog issues
Sort by recently updated
recently updated
newest added

最近在研究处理BMP的文件,顺带总结下相关知识点! ### BMP文件结构 ```java //byteBuffer 是图片的byte数据 //数据区的偏移量 byteBuffer.flip(); byte[] dataOffsetArr = new byte[4]; byteBuffer.position(10); byteBuffer.get(dataOffsetArr); int dataOffset = HexUtils.byteArrayToInt(dataOffsetArr, false); logger.info("size:" + dataOffset); //图像的宽度 byte[] widthArr = new byte[4]; byteBuffer.position(18);...

Java Web

### 一、I/O & NIO Java的IO流,根据类型不同划分为(具体继承这些IO类的子类非常多) - 基于字节操作的 I/O 接口:**InputStream** 和 **OutputStream** - 基于字符操作的 I/O 接口:**Writer** 和 **Reader** - 基于磁盘操作的 I/O 接口:**File** - 基于网络操作的 I/O 接口:**Socket** Java传统的IO类操作都是阻塞的,在高并发的场景下性能令人堪忧。 Java NIO(Non-blocking IO)是JDK1.4之后推出的一套新IO接口——非阻塞IO,与传统IO接口的主要区别在于: I/O|NIO...

Java Web

## Shiro基础概念 - [官网:Shiro-getstart](http://shiro.apache.org/get-started.html) - [跟我学Shiro](http://wiki.jikexueyuan.com/project/shiro/) - [过滤器:filter](https://shiro.apache.org/web.html#default-filters) 备注: 对于过滤器,`user` & `authc` 的区别如下: `user`: [参考链接](https://shiro.apache.org/static/1.3.2/apidocs/org/apache/shiro/web/filter/authc/UserFilter.html) ``` Filter that allows access to resources if the accessor is a known user, which...

Java Web

## 前言 之前写过关于搭建日志统一收集系统的方法,针对中小型系统,可以简单适用,参考这里:[日志服务—使用Flume-NG/Kafaka搭建日志搜集服务](https://github.com/johnnian/Blog/issues/34) 传统自建日志服务,有一些弊端: - 维护成本高 - 经济成本高 试用了阿里云的日志服务,发现有几个亮点: - 支持ECS/非ECS服务的日志搜集:意味着如果想要汇总公司局域网的后台日志,也是可以滴; - 日志采集客户端可以云端配置:这个就非常方便了; - 强大的日志分析与处理; - 经济实惠; ## 过程记录 下面就只是记录下安装Logtail过程中的一点问题,具体使用以及原理,官网文档足够详细。 操作系统: CentOS 7.4 ### 一、安装Logtail 在阿里云上创建日志服务的「项目」,需要注意的是,「项目」选择哪个区域,在官网的Logtail下载地址也需要选择对应链接,否则,Logtail客户端将无法和日志服务通信。 例如,创建 「华东2」区域的日志项目: #### 1、ECS下安装Logtail...

Tools

## 分布式日志收集系统(Flume-NG) ### 应用场景 在生产环境中,有若干台服务器,每台服务器都部署着一套生产版本系统,为了方便分析与查看日志,需要统一收集日志。 目前市面上,有不少开源的日志收集系统,如强大的ELK(ElasticSearch, Logstash, Kibana)、Flume-NG等。ELK提供日志检索的索引、强大的图形界面,而Flume-NG比较小巧,对于小项目用起来比较简单,所以这里选择用Flume-NG: - 日志采集客户端: Flume-NG - 消息传递: Kafka 网络拓扑图如下: 如图所示,服务器A、B 上的日志文件,被对应的Flume-NG客户端收集后,传递给 Kafka 消息队列,最终由Kafaka客户端消费(存储数据库,或者写入到本地文件中) ### 安装步骤 #### 1、Kafaka安装与配置 > 步骤1: 下载Kafka安装包 [点击下载Kafka](https://www.apache.org/dyn/closer.cgi?path=/kafka/0.11.0.1/kafka_2.11-0.11.0.1.tgz) ``` ➜ wget...

Tools

*Storm版本:1.1.0* 在搭建Storm集群前,先看下下面的拓扑图,在1.1.0版本中,支持 Nimbus的HA模式,Nimbus、Supervisor,需要使用Zookeeper作为协同。 ### 一、相关依赖 - Zookeeper(可以使用 3.4.10 版本) - JDK7+ - Python 2.6.6+ 注意,如果是在MacOS系统下,则还需要安装 ZeroMQ,否则启动Storm UI的时候,会报错: 可以使用 HomeBrew快速安装: ``` ➜ ~ brew install zeromq ``` ### 二、安装包下载 进入[下载页面](http://storm.apache.org/downloads.html)下载, 或者[直接点击这里](http://apache.claz.org/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz)...

大数据
Storm

操作系统环境:CentOS 6.8 RabbitMQ版本:3.7.2 ### 安装步骤: #### 1、安装 erlang 环境: ```Bash [root@a6a766e6204a ~]# wget https://github.com/rabbitmq/erlang-rpm/releases/download/v19.3.6.5/erlang-19.3.6.5-1.el6.x86_64.rpm [root@a6a766e6204a ~]# rpm -ivh erlang-19.3.6.5-1.el6.x86_64.rpm ``` 备注:如果下载失败,可以: - [点击进入Github](https://github.com/rabbitmq/erlang-rpm/releases) - [点击下载](https://github.com/rabbitmq/erlang-rpm/releases/download/v19.3.6.5/erlang-19.3.6.5-1.el6.x86_64.rpm) #### 2、导入Rabbit签名文件: ```Bash [root@a6a766e6204a ~]#...

RabbitMQ

## Ruby 安装方法——RVM 操作系统: CentOS 6.5 说明:在CentOS上,直接用 yum 安装 Ruby的话,安装的版本比较低,所以,就直接用 RVM 进行安装。 ### 步骤1: 安装依赖包 ``` # yum install gcc-c++ patch readline readline-devel zlib zlib-devel -y # yum install libyaml-devel...

Tools
Linux

### 问题复盘 在公司的一个项目中,有几个子系统用SpringBoot运行,期间出现了一个问题: 由于我们的服务器用的是自建的MongoDB副本集,而MongoDB是出了名的 **吃内存**,由于系统内存被耗尽,导致一些基础设施的无法正常运行。 然后我们的几个子系统就狂打错误日志,就直接吧磁盘给占满了。真是无语了~ ![3640765df92c24b526a47e5aec9c4ba8](https://user-images.githubusercontent.com/2493670/32978996-e3360260-cc87-11e7-967d-20c56198688b.jpg) ### 解决方法 目前SpringBoot的日志,使用Logback,原先的配置如下: ``` INFO /Users/Johnnian/info.log /Users/Johnnian/info.%d{yyyy-MM-dd}.log 7 [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5p] [%t] [%c:%L] - %m%n ``` 现在的处理: 1. 日志设定当天最大存储大小; 2. 设置所有日志总大小 Logback的rollingPolicy,除了`ch.qos.logback.core.rolling.TimeBasedRollingPolicy `之外,还可以配置成`ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy`(大小限制+时间滚动处理)...

Java Web
SpringBoot

### 前言 SpringBoot除了可以开发后台服务(Service),Web页面端也是可以的。在之前接触的项目中,主要使用JSP来开发Java Web应用,不过在SpringBoot中,默认推荐是使用 Thymeleaf 模版引擎。 本文主要是小结下SpringBoot的Web开发,初步搭建其开发环境(JSP & Thymeleaf),也对原理进行一些小结。 ### 一、SpringBoot静态资源目录 > SpringBoot使用标准的Maven目录结构: > 在编译打包成Jar包之后,Jar包内的目录结构是: > 编译后,源码工程与编译后的目录对照如下: /src/main/java ----------BOOT-INF/classes/具体包名下 /src/main/resource -----BOOT-INF/classes/根目录下 pom.xml中的依赖包-----BOOT-INF/lib/ pom.xml----------------META-INF/maven/ SpringBoot工程启动依赖----------org/ > SpringBoot默认的静态资源路径: 当我们在浏览器访问SpringBoot项目: `http://127.0.0.1:8080/` 的时候,SpringBoot默认从下面的文件夹中加载静态资源: -...

Java Web
SpringBoot