小豕
學習過程~備忘錄
Google Code Prettify
2018年6月3日 星期日
2016年7月14日 星期四
Generate Swagger Specification
在網路上與官方網站的範例大多是在 Application Server 上產生 swagger.json
但這種方法會讓 Server 浪費資源,也有漏洞的風險
Swagger高危漏洞,影響Html、PHP、Java和 Ruby等開發應用
原文網址:https://read01.com/Lz7eJg.html
最近終於找到能獨立產出 swagger.json 的方式,程式碼如下
但這種方法會讓 Server 浪費資源,也有漏洞的風險
Swagger高危漏洞,影響Html、PHP、Java和 Ruby等開發應用
原文網址:https://read01.com/Lz7eJg.html
最近終於找到能獨立產出 swagger.json 的方式,程式碼如下
2016年3月5日 星期六
Distributed Load Testing Tool
Tsung http://tsung.erlang-projects.org/
這一套壓力測式的工具,設定相當方便 也提供相關數據圖表
需在每個 Client Node 安裝 Tsung 與 設定 SSH Authorized 登入,才能順利分散壓力
這一套壓力測式的工具,設定相當方便 也提供相關數據圖表
需在每個 Client Node 安裝 Tsung 與 設定 SSH Authorized 登入,才能順利分散壓力
SSH Authorized 設定範例
- cd /root
- ssh-keygen -t rsa
- cd .ssh
- cat id_rsa.pub > authorized_keys
- chmod 600 authorized_keys
- ssh-copy-id root@ClientNode
Tsung Install
- yum install erlang gnuplot libtemplate-perl liberation-sans-fonts perl-Template-Toolkit
- wget http://tsung.erlang-projects.org/dist/tsung-1.6.0.tar.gz
- tar zxvf tsung-1.6.0.tar.gz
- cd tsung-1.6.0
- ./configure && make && make install
Tsung Load Test Commond
- tsung -k -f test.xml start
Tsung Load Test Report Site
- http://testsite:8091/es/ts_web:status
2016年2月29日 星期一
wildfly 10 add postgresql jdbc driver
1. ./bin/jboss-cli.sh --connect
2. module add --name=org.postgresql --slot=main --resources=/software/java/postgresql-9.4.1208.jar --dependencies=javax.api,javax.transaction.api
3. /subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgresql",driver-class-name=org.postgresql.Driver)
執行完這3個步驟,回傳 {"outcome" => "success"}
即為增加成功
2. module add --name=org.postgresql --slot=main --resources=/software/java/postgresql-9.4.1208.jar --dependencies=javax.api,javax.transaction.api
3. /subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgresql",driver-class-name=org.postgresql.Driver)
即為增加成功
2016年2月21日 星期日
Apache Kafka 9.0 需注意的地方
Apache Kafka 9.0
Documentation http://kafka.apache.org/documentation.html
kafka 雖然沒限制 topics 的數量,但在機器數量少時 還是需要避免這種設計方式
因為kafka 是使用 file 的儲存方式,每一個topics 至少會產生1個目錄與2個檔案
kafka cluster 中的所有檔案數量是:
(topics * partition * replication-factor * 2) + (offsets * n)
100K topics 在 3台 kafka 主機裡,至少會產生:
(100K * 1 * 1 * 2) +(N) = 200k + N
每台 kafka 至少要產生 200K / 3 (約66666) 的檔案,超過一般linux fs.file-max = 65536 的設定,當然這還是有辦法解決
但在每個 partition 都需要相對應的 thread 來處理,這就比較麻煩了
100K 需要多少 thread 來處理才能夠即時回應,不造成timeout?
每台硬體都要有足夠的RAM 跟 夠好的 CPU時 也許可行, 但還是避掉這種設計會比較好
在設定檔有幾個需要注意的地方
server.properties
Documentation http://kafka.apache.org/documentation.html
kafka 雖然沒限制 topics 的數量,但在機器數量少時 還是需要避免這種設計方式
因為kafka 是使用 file 的儲存方式,每一個topics 至少會產生1個目錄與2個檔案
kafka cluster 中的所有檔案數量是:
(topics * partition * replication-factor * 2) + (offsets * n)
100K topics 在 3台 kafka 主機裡,至少會產生:
(100K * 1 * 1 * 2) +(N) = 200k + N
每台 kafka 至少要產生 200K / 3 (約66666) 的檔案,超過一般linux fs.file-max = 65536 的設定,當然這還是有辦法解決
但在每個 partition 都需要相對應的 thread 來處理,這就比較麻煩了
100K 需要多少 thread 來處理才能夠即時回應,不造成timeout?
每台硬體都要有足夠的RAM 跟 夠好的 CPU時 也許可行, 但還是避掉這種設計會比較好
在設定檔有幾個需要注意的地方
server.properties
- broker.id 需特別注意編號 每台主機不可重覆
- 如果需要 delete topic,需增加 delete.topic.enable=true
- client.id 在每個 thread 不能重覆
consumer.properties
可參考 http://myjeeva.com/zookeeper-cluster-setup.html
設定 zookeeper cluster id
- group.id=PG 修改預設的group id
- offsets.storage=kafka 設定 offset 資料存在 kafka
可參考 http://myjeeva.com/zookeeper-cluster-setup.html
修改 zookeeper.properties
設定 zookeeper cluster id
mkdir /tmp/zookeeper/
echo 1 > /tmp/zookeeper/myid (id 需特別注意編號,跟zookeeper.properties 需對應)
2016年2月15日 星期一
Jetty 參數修改
關閉 http dir view
修改 etc/webdefault.xml, dirAllowed value 設為 false設定 classloading 優先讀 jetty resources
修改 etc/jetty-deploy.xml,在 WebAppProvider 下增加預設classloading 順序為 webapps > jetty resources > jetty lib
改完參數則會變為 jetty lib > jetty resources > webapps
webapps 下的檔案, 如果 xml 跟 war 名稱不一致 會重覆載入
Server thread 設定max thread參考計算
thread.max > (http.acceptors + http.selectors + [http.request=1])
PostgreSQL Multi-Master 雙向複寫
安裝 PostgreSQL BDR 版本
What's BDR?
http://2ndquadrant.com/en-us/resources/bdr/
What's BDR?
http://2ndquadrant.com/en-us/resources/bdr/
Yum Install
- yum install http://packages.2ndquadrant.com/postgresql-bdr94-2ndquadrant/yum-repo-rpms/postgresql-bdr94-2ndquadrant-redhat-1.0-2.noarch.rpm
- yum install postgresql-bdr94-bdr
設定PostgreSQL lib
vi /etc/profile 增加下方資訊
export PATH=/usr/pgsql-9.4/bin:$PATH
Init DB
- service postgresql-9.4 initdb -E UTF8 --no-locale --locale=C LC_COLLATE='C' LC_CTYPE='C' -A trust -U postgres
- cd /var/lib/pgsql/9.4-bdr/
- vi data/pg_hba.conf
- vi data/postgresql.conf
- service postgresql-9.4 start
- chkconfig postgresql-9.4 on
Create DB
- CREATE ROLE message LOGIN ENCRYPTED PASSWORD 'yourpassword md5' VALID UNTIL 'infinity';
- CREATE DATABASE message WITH ENCODING='UTF8' OWNER=message TEMPLATE=template0 LC_COLLATE='C' LC_CTYPE='C' CONNECTION LIMIT=-1;
message DB, BDR Setting
##first node
CREATE EXTENSION btree_gist;
CREATE EXTENSION bdr;
SELECT bdr.bdr_group_create(
local_node_name := 'centos1',
node_external_dsn := 'host=centos1 dbname=message'
);
##second node
CREATE EXTENSION btree_gist;
CREATE EXTENSION bdr;
SELECT bdr.bdr_group_join(
local_node_name := 'centos2',
node_external_dsn := 'host=centos2 dbname=message',
join_using_dsn := 'host=centos1 dbname=message'
);
更多設定可參考quictstart
訂閱:
文章 (Atom)