날짜별 글 목록: 2010년 6월 16일

무료 CAPTCHA 서비스

무료로 CAPTCHA 서비스를 이용할 수 있는 reCAPTCHA 라는 서비스가 있다.
아래 그림과 같은 형태로, 웹에서 회원가입이나 스팸성 기능을 제한하기 위해서 사용하면 좋을 듯 합니다.
https://www.google.com/recaptcha/에서 쉽게 사용할 수 있도록 대부분의 환경을 지원하고 있습니다. ^^

카산드라 클라이언트(Cassandra.Client) 생성 예제

카산드라 클라이언트(Cassandra.Client) 클래스는 http://incubator.apache.org/thrift/ 를 이용해서 카산드라 DB에 데이타를 입력(Insert)하고 검색(Select)하게 도와주는 클래스이다. Cassandra.Client를 생성하고 사용하기 위해서 제가 사용하는 CassandraClientFactory 클래스는 아래와 같습니다.

import org.apache.cassandra.thrift.Cassandra;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;public class CassandraClientFactory {
private final String SERVER = “localhost”;
private final int PORT = 9160;

// inner class
private Cassandra.Client client;
// singleton instance
private static CassandraClientFactory instance = new CassandraClientFactory();

private CassandraClientFactory() {
try {
TTransport socket = new TSocket(SERVER, PORT);
//out.println(String.format(“connected to %s : %d .”, SERVER, PORT));
TBinaryProtocol binaryProtocol = new TBinaryProtocol(socket, false, false);
this.client = new Cassandra.Client(binaryProtocol);
socket.open();
} catch(org.apache.thrift.transport.TTransportException e) {
e.printStackTrace();
}
}

public static CassandraClientFactory getInstance() {
return instance;
}

public Cassandra.Client getClient() {
return this.client;
}
}

 

CAP 정리(Theorem)

CAP 정리(Theorem)는 분산 시스템(Distributed System)이 가질 수 있는 3가지의 특성(CAP)이다. Wikipedia에 정리된 CAP 정리의 CAP에 대한 정의는 다음과 같다.

Consistency : all nodes see the same data at the same time
Availability : node failures do not prevent survivors from continuing to operate
Partition Tolerance : the system continues to operate despite arbitrary message loss

위 CAP의 정의에서, C, A는 알겠는데, 부분 결함허용(Partition Tolerance)는 생소하다. 부분 결함허용(Partition Tolerance)에 대해서는, http://blog.cloudera.com/blog/2010/04/cap-confusion-problems-with-partition-tolerance/에서 자세히 설명하고 있다.

이 내용은 네트워크 문제등으로, 서비스중인 노드가 분리(partition)될 수 있고, 특정 노드가 분리됨에서 불고하고, 노드가 제공하는 기능은 정상 동작(tolerance)해야 한다는 것이다. 분산 시스템은 위 CAP 정리의 3가지 특성을 다 만족시킬 수 없으므로, 한가지 특성은 포기해야 한다고 하는 Brewer’s CAP Theorem는 꼭 읽어보면 좋겠다. 그리고, 개별 특성에 대해서도 알아둘 필요가 있다.

* 레퍼런스
Brewer’s CAP Theorem