If you are using Java, you may wonder when to use the transport client versus the node client. As discussed at the beginning of the book, the transport client acts as a communication layer between the cluster and your application. It knows the API and can automatically round-robin between nodes, sniff the cluster for you, and more. But it is external to the cluster, similar to the REST clients.
Java를 사용하고 있다면, transport client와 node client를 언제 사용해야 하는지 궁금할 것이다. 책의 초반부에도 언급했지만, transport client는 cluster와 응용프로그램간의 통신 수단으로 동작한다. API를 알고 있으면, node를 자동으로 round-robin할 수 있고, cluster를 감지할 수 있다. 하지만 그것은 REST 클라이언트와 유사하게, cluster의 외부 에 있다.
The node client, on the other hand, is actually a node within the cluster (but does not hold data, and cannot become master). Because it is a node, it knows the entire cluster state (where all the nodes reside, which shards live in which nodes, and so forth). This means it can execute APIs with one less network hop.
반면에, node client는 실제로 cluster 내의 node이다. 그러나, 데이터를 가지지 않고, master가 될 수 없다. node이기 때문에, 전체 cluster state(node가 어디에 있는지, 어떤 shard가 어느 node에 있는지 등)를 알 수 있다. 즉, 더 적은 network hop으로 API를 실행할 수 있다.
There are uses-cases for both clients:
두 클라이언트에 대한 사용 사례이다.
The transport client is ideal if you want to decouple your application from the cluster. For example, if your application quickly creates and destroys connections to the cluster, a transport client is much "lighter" than a node client, since it is not part of a cluster.
transport client는 cluster에서 응용프로그램을 분리하려는 경우에 이상적이다. 예를 들면, 응용프로그램이 cluster에 대한 연결을 신속하게 생성하고, 끊는다면, transport client는 cluster의 일부가 아니기 때문에, node client보다 훨씬 "가볍다".
Similarly, if you need to create thousands of connections, you don’t want to have thousands of node clients join the cluster. The TC will be a better choice.
마찬가지로, 수천 개의 연결을 생성해야 한다고 해서, cluster에 조인된 수천 개의 node client를 가지고 싶지는 않을 것이다. transport client가 더 나은 선택이다.
On the flipside, if you need only a few long-lived, persistent connection objects to the cluster, a node client can be a bit more efficient since it knows the cluster layout. But it ties your application into the cluster, so it may pose problems from a firewall perspective.
반면에, 약간 수명이 길고, cluster에 대해 지속적인 연결이 필요한 오브젝트가 필요하면, cluster layout을 알고 있기 때문에, node client가 약간 더 효과적이다. 그러나, 응용프로그램이 cluster에 묶인다. 따라서 방화벽의 관점에서 문제를 일으킬 수 있다.
'2.X > 7. Administration Monitoring Deployment' 카테고리의 다른 글
7-2-1. Hardware (0) | 2017.09.23 |
---|---|
7-2-2. Java Virtual Machine (0) | 2017.09.23 |
7-2-4. Configuration Management (0) | 2017.09.23 |
7-2-5. Important Configuration Changes (0) | 2017.09.23 |
7-2-6. Don’t Touch These Settings! (0) | 2017.09.23 |