Monday, 10 December 2018

[RocketMQ] Quick Start in RaspberryPi(Ubuntu)

 RocketMQ

  • 낮은 latency와 고성능으로 분산 메시징과 스트리밍 처리를 제공하는 플랫폼이다. 메시지의 신뢰성을 보장하고, 조 단위의 처리량과 유연한 확장성을 자랑한다.
  •  알리바바가 2012년부터 다량의 메시지를 처리하기 위해서, Apache ActiveMQ 5.13 버전 기반에서 분산 아키텍처를 도입하여 개발하기 시작했다. 2016년 11월에 알리바바가 Apache 재단에 danation 하고, 2017년 2월에 Apache Top-Level 프로젝트로 선정되었다.









1. Download install file and unzip

Prerequisite : 
    64bit OS, Linux/Unix/Mac is recommended;
    64bit JDK 1.8+;
    Maven 3.2.x;
    Git;
    4g+ free disk for Broker server

$ wget http://mirror.navercorp.com/apache/rocketmq/{version}/rocketmq-all-{version}-bin-release.zip
$ unzip rocketmq-all-{version}-bin-realase.zip









2. Setup environment variables


$ vi ~/.profile

[edit]

$ . ~/.profile

export ROCKETMQ_HOME=[installed_directory]
export PATH=$PATH:$ROCEKTMQ_HOME/bin
export NAMESRV_ADDR={host}:{port}    # for Name server connector address









3. Startup Name Server




3.1. Run Error -> Edit JVM Options


$ vi $ROCKETMQ_HOME/bin/runserver.sh

[Edit : Optimize memory size in your system]





3.2 Start Name Server in background


$ nohup mqnamesrv > $ROCKETMQ_HOME/log/mqnamesrv.log  2>&1 &
$ tail -f $ROCKETMQ_HOME/log/mqnamesrv.log






4. Start Broker Server


$ nohup mqbroker > $ROCKETMQ_HOME/log/mqbroker.log  2>&1 &
$ tail -f $ROCKETMQ_HOME/log/mqbroker.log






4.1. Run Error -> Edit JVM Options


$ vi $ROCKETMQ_HOME/bin/runbroker.sh

[Edit : Optimize memory size in your system]









5. Test Message Produce/Consume

5.1. Start Producer


$ sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer





5.2. Start Consumer


$ sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer






6. Shutdown


# Shutdown Broker
$ mqshutdown broker

# Shutdown Name Server
# mqshtudown namesrv







References

RocketMQ Tutorial
RocketMQ WiKi

Wednesday, 28 November 2018

[AWS] Redshfit [Amazon](500150) Error settting/closing connection: Operation timed out

AWS Redshift 에 JDBC로 접속하는 과정에서 아래와 같은 에러 발생


java.sql.SQLException: [Amazon](500150) Error settting/closing connection: Operation timed out.





해결방법

- Redshift 에 접근하기 위한 네트워크 보안정책을 수정


1. AWS Manage Console -> EC2 서비스 선택





2. 네트워크 및 보안 -> 보안그룹





3. 보안 그룹 새로 생성 또는 수정 -> 인바운드 설정

- 예제에서는 Redshift에서 사용 중인 default 그룹을 수정




4. 인바운드 규칙 추가

- 유형 : Redshift
- 소스 : 허용할 IP 대역 또는 Public

Tuesday, 27 November 2018

[AWS] S3(Simple Storage Service) Tutorial

awscli 를 이용한 간단한 S3 사용 튜토리얼

1. S3 접근 권한 유저 생성

1.1 유저 생성











1.2. 그룹 생성 및 사용자 추가












2. AWS CLI 설정



$ aws configure





3. 버킷 리스트 출력 (ls : List)

$ aws s3 ls
$ aws s3 ls s3://[BUCKET_NAME]
$ aws s3 ls s3:/[BUCKET_NAME]/[PATH]






4. 버킷 생성 (mb : Make Bucket)

$ aws s3 mb s3://[BUCKET_NAME]





5. 버킷 제거 (rb : Remove Bucket)

$ aws s3 rb s3://[BUCKET_NAME]





6. 업로드 / 다운로드 (cp : Copy)

6.1 업로드

$ aws s3 cp [LOCAL_FILE] s3://[BUCKET_NAME]/[PATH]
$ aws s3 cp [LOCAL_DIRECTORY]  s3://[BUCKET_NAME]/[PATH]
$ aws s3 cp [LOCAL_DIRECTORY]  s3://[BUCKET_NAME]/[PATH] --recursive












6.2. 다운로드


$ aws s3 cp s3://[BUCKET_NAME]/[PATH] [LOCAL_FILE]






7. 파일 제거 (rm : Remove)


$ aws s3 rm s3://[BUCKET_NAME]/[FILE_PATH]
$ aws s3 rm s3://[BUCKET_NAME]/[DIRCTORY_PATH] --recursive


Monday, 26 November 2018

[AWS] MacOS에서 awscli(AWS Command Line Interface) 설치

1. awscli 설치 파일 다운로드


$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"







2. 설치파일 압축해제


$ unzip awscii-bundle.zip





3. 설치파일 실행


$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws




4. awscli 버전확인


$ awscli --version


Friday, 2 November 2018

[Android] Android OpenCV 환경설정 Turorial (NDK)

1. 컴파일 및 디버그에 필요한 Tool 설치

1.1. Android Studio 에서 C/C++ 코드를 컴파일 및 디버그에 필요한 것


  • NDK (The Android Native Development Kit)

  - Android에서 Java와 C/C++ 코드를 같이 사용할 수 있도록 지원

  • CMake

- C/C++ 코드를 컴파일하여 Native 라이브러리 파일로 만들 수 있도록 지원

  • LLDB

- S/W 디버거
- C/C++, Object-C , Swift 디버깅 지원
- 지원 OS : OS X, Linux, FreeBSCD, Windows
- 지원 CPU : i386, x86-64, ARM

1.2. Tools > SDK Manager




1.3. CMake, NDK, LLDB 선택 및 설치





2. OpenCV 라이브러리 프로젝트에 추가

2.1. 라이브러리 다운로드

- https://github.com/opencv/opencv/releases 접속. 최근 버전 다운로드






2.2. 프로젝트에 import

- File > New > Import Module




- 라이브러리 디렉터리 > sdk > java 디렉터리 import








2.3. OpenCV 모듈 SDK 버전 동기화







- OpenCV 모듈 build.gradle 파일 열기




- 프로젝트 build.gradle 의 compileSdkVersion, minSdkVersion, targetSdkVersion 과 동일하게 변경




- 프로젝트 동기화




* 아래 사진과 같은 에러 발생 시, OpenCV 모듈 AndroidManifest.xml 파일 수정




2.4. openCV 모듈을 Dependencies에 추가









2.5. openCV JNI 라이브러리 추가

- oepnCV 라이브러리 sdk > native > libs 디렉터리 복사해서 프로젝트 src > main 에 붙여넣기 (libs 외 다른 이름으로 붙여넣기)








  • 참조 사이트

https://webnautes.tistory.com/1054
https://ko.wikipedia.org/wiki/LLDB