Blog

Centos7 firewalld设置

Jan 23, 2017 | | Say something

centos7默认的防火墙是firewall而不是iptables,新的firewall更容易操作,由博主javacoder.cn整理,转载注明出处。 持久化的配置信息存放在如下两个目录 /usr/lib/firewalld/ #默认, /etc/firewalld/ #系统级,管理员可以定制,改动的时候可以目录/usr/lib/firewalld下的模板拷一份到/etc/firewalld/目录 #开启,停用,禁用,查看firewall的状态如下 systemctl start firewalld systemctl stop firewalld systemctl disable firewalld systemctl status firewalld firewall将防火墙的信任基本抽象为zone,如下: drop,block,public,external,dmz,work,home,internal,trusted 从左到右越来越信任。 默认为public,只信任指定的连接。 firewall提供图形化firewall-config和命令行firewall-cmd操作工具,本文以命令行工具为例介绍 firewall-cmd的很多操作即可以针对当前运行有效,也可以添加–permanent选项持久化,对于持久化的设置,不会立即生效,可以对同一个命令不带–permanent选项执行一次,或者firewall-cmd –reload 端口操作 #开启端口 firewall-cmd –permanent –zone=public –add-port=8080/tcp #禁用端口 firewall-cmd –permanent –zone=public –remove-port=8080/tcp #查看开启的端口 firewall-cmd –zone=public –list-ports masquerade(对应iptables的NAT)配置 #查询masquerade是否对某个zone启用 firewall-cmd –zone=public –query-masquerade #启用masquerade或者停止 firewall-cmd [–permanent] –zone=public –add-masquerade firewall-cmd [–permanent] –zone=public –remove-masquerade […more]

FastDFS 防盗图开启

Jan 18, 2017 | | Say something

在上一讲中介绍了FastDFS和nginx的集成。本将介绍FastDFS 防盗图开启 修改/etc/fdfs/http.conf #开启token校验 http.anti_steal.check_token=true #设置校验失败后显示的警告图片 http.anti_steal.token_check_fail=/etc/fdfs/anti-steal.jpg java客户端带有一个工具方法来产生token. 用法如下:

//输出为:ts:1484735390, token:ada4c7f1a65e125e3a55a837d0bff1eb 那么请求的url为 192.168.14.153/M00/01/74/wKgOmVh_dH6AE-f3AAA2_mDXnps704.jpg?ts=1484735390&token=ada4c7f1a65e125e3a55a837d0bff1eb 注意:由于是时间戳比较,确保nginx服务器的时区和时间配置正确。

FastDFS NGINX集成

Jan 18, 2017 | | Say something

FastDFS 提供了fastdfs-nginx-module模块来支持通过NGINX访问FastDFS中存储的数据,据我所知,fastdfs-nginx-module模块只能通过源码安装到nginx,而不能将其编译成动态模块加载到已经安装好的nginx中 步骤如下: 源码编译 下载 https://github.com/happyfish100/fastdfs-nginx-module-master.zip 解压 unzip fastdfs-nginx-module-master wget http://nginx.org/download/nginx-1.10.2.tar.gz tar -xvf nginx-1.10.2.tar.gz cd nginx-1.10.2 ./configure –add-module=/root/fastdfs-nginx-module-master/src –without-http_rewrite_module –without-http_gzip_module –conf-path=/etc/nginx/nginx.conf –pid-path=/etc/nginx/nginx.pid –lock-path=/etc/nginx/nginx.lock make make install 配置修改: /etc/nginx/nginx.conf中添加如下映射 location /M00 { # root /var/fastdfs/data; ngx_fastdfs_module; } 将fastdfs-nginx-module-master/src/mod_fastdfs.conf以及 fastdfs-5.08/conf/http.conf和 fastdfs-5.08/conf/mime.types 拷贝到/etc/fdfs 目录 修改mod_fastdfs.conf文 主要改如下项: base_path:数据的默认存放路径 log_filename日志的存放路径,注意log_filename配置的路径要对nginx用户可读写,而不是当前用户 重启nginx /usr/local/nginx/sbin/nginx -s reload 测试: 在浏览器中请求如下路径 192.168.14.153/M00/01/74/wKgOmVh_dH6AE-f3AAA2_mDXnps704.jpg 操作成功 后续操作: 一个nginx只能访问一个storage服务器的数据,所以多个storage服务器要配置多个nginx,然后将nginx按照请求路径中的组id(groupid)进行路由。

FastDFS JAVA客户端示例

Jan 18, 2017 | | Say something

下载java客户端源码包 https://github.com/happyfish100/fastdfs-client-java-master 该工程基于maven组织的。 在解压的目录下执行 mvn source:jar install 将fastdfs-client-java安装到本地仓库。 本附件提供了上传和test_fastdfs,以及产生token的实例

FastDFS初体验

Jan 18, 2017 | | Say something

准备工作; 从github下载fastdfs的源码包 https://github.com/happyfish100/fastdfs-5.08.zip https://github.com/happyfish100/libfastcommon-master.zip 可能你选择的版本不太一致,尽量选新的版本吧,我直接下载zip包 测试环境,先关闭防火墙和selinux 先安装依赖包 1、安装libfastcommon yum install -y gcc perl libevent unzip libfastcommon-master.zip #解压 cd libfastcommon-master ./make.sh ./make.sh install 2、安装fastdfs unzip fastdfs-5.08.zip #解压 ./make.sh ./make.sh install 3、修改配置文件 fastdfs的样例配置文件放在/etc/fdfs目录下,以*.conf.sample结尾 tracker的样例配置文件为/etc/fdfs/tracker.conf.sample storager的样例配置文件为/etc/fdfs/storage.conf.sample client 的样例配置文件为/etc/fdfs/client.conf 这些配置文件都有合理的默认值,基本可以直接使用。 如果想尽快看到负载均衡行为,将tracker.conf的store_lookup=0 建议将这两个文件拷贝一份后缀名为.conf,将文件中的路径改成实际存在的,主要是日志文件路径和数据文件的路径 对于storage.conf和client.conf文件将tracker_server配置项指向tracker服务器 4、简单测试 tracker服务器和storage服务器在同一台物理机 #启动tracker /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf #启动storage /usr/bin/fdfs_storaged /etc/fdfs/storage.conf #执行命令行监控,能看到当前的服务器情况 /usr/bin/fdfs_monitor /etc/fdfs/client.conf 5、测试 /usr/bin/fdfs_test /etc/fdfs/client.conf upload local_filename […more]

shell 脚本 数字型值处理

Jan 10, 2017 | | Say something

如下的示例:

输出为: it works c=3 d=0 e=5 声明数值型变量使用let 或者declare -i 。 在比较数值型表达式(test或者'[ ]’)时,只能用”-eq, -ne, -lt, -le, -gt’, -ge”,不能用”==, !=, <, <=, >, >=”,不然按照字符串的字典顺序比较。 使用$((express))进行数值运算 虽然可以直接进行数值型的”+”加操作,由于数值型”==, !=, <, <=, >, >=”无法直接进行,最好不要直接进行”e=$a+$b”这样的数据操作

eclipse 断点只对指定的线程生效

Jan 5, 2017 | | Say something

eclipse 断点只对指定的线程生效 1、打断点 2、断点上右键->breakpoint properties->filtering->选择需要调试的线程->点击确定 如图

Kafka初始offset的确定

Dec 26, 2016 | | Say something

如果kafka的topic中已经累积了很多消息,这时新组的第一个消费者开始消费该topic中的消息,这时消费者是从topic的头开始处理,还是从topic的的尾开始处理呢,分三种情况: 使用老的消费者接口且自动确定初始offset: auto.offset.reset属性决定初始offset。默认值为largest,表示从topic的的尾开始处理,可选的值还有smallest,表示从topic的头开始处理,设置为其他值时报异常。 使用新的消费者接口且自动确定初始offset: auto.offset.reset属性决定初始offset。默认值为latest,表示从topic的的尾开始处理,可选的值还有earliest,表示从topic的头开始处理,,设置为none且以前没有offset时报异常。设置为其他值时直接报异常 手动指定offset: KafkaConsumer.seek方法可以将offset置为任意的值

kafka SSL配置

Dec 26, 2016 | | Say something

一、证书产生 #CA产生自己的私钥(存于ca-key文件)和证书(存于ca-cert文件),在当前目录(本文由javacoder.cn博主整理,转载请注明出处) openssl req -new -x509 -keyout ca-key -out ca-cert -days 365 #在kafka服务器上执行,如果有多台服务器,请在每台上都执行。-alias选项用例标识jks文件中每个条目的。 #产生key keytool -keystore server.keystore.jks -alias 192.168.14.140 -validity 365 -keyalg RSA -genkey #导出key对应的证书 keytool -keystore server.keystore.jks -alias 192.168.14.140 -certreq -file cert-file #在client端执行,如果不要求客户端认证(服务器没有配置ssl.client.auth=required),那么这步可以省略。 #产生key keytool -keystore client.keystore.jks -alias 192.168.14.1 -validity 365 -keyalg RSA -genkey #导出key对应的证书 keytool -keystore client.keystore.jks -alias 192.168.14.1 -certreq -file cert-file-client #使用CA证书(ca-key,ca-cert)分别对服务器(cert-file)和客户端(cert-file-client)的证书进行签名。产生的证书分别为(cert-signed,cert-signed-client) […more]

kafka限流(quota)设置

Dec 24, 2016 | | Say something

如果kafka客户端是认证的。那么可以使用userId和clientId两种认证方式。如果没有认证只能使用clientId限流。 bin/kafka-configs.sh –zookeeper localhost:2181 –alter –add-config ‘producer_byte_rate=1048576,consumer_byte_rate=1024′ –entity-type clients –entity-name clientA 对clientId=clientA的客户端添加限流设置。producer_byte_rate表示每秒最多能写入到消息量,单位为byte/sec。consumer_byte_rate表示每秒最多能消费的消息了,单位也为byte/sec。 可以使用bin/kafka-producer-perf-test.sh压力测试脚本来验证你的限流配置是否生效。 bin/kafka-producer-perf-test.sh –topic test_perf –num-records 10000 –record-size 100 –throughput 150 –producer-props bootstrap.servers=localhost:9092 client.id=clientA 注意”client.id=clientA”属性值。 当然,你会简单的zookeeper命令行操作,也可以登录zookeeper执行如下的命令 [zk: localhost:2181(CONNECTED) 16] get /config/clients/clientA {“version”:1,”config”:{“producer_byte_rate”:”20480″,”consumer_byte_rate”:”1024″}} 发现kafka将我们的限流设置以json的格式写入了zookeeper中。