CHAPTER 1IntroductionIn the past, each application was a single progra dịch - CHAPTER 1IntroductionIn the past, each application was a single progra Việt làm thế nào để nói

CHAPTER 1IntroductionIn the past, e

CHAPTER 1
Introduction
In the past, each application was a single program running on a single computer with
a single CPU. Today, things have changed. In the Big Data and Cloud Computing world,
applications are made up of many independent programs running on an ever-changing
set of computers.
Coordinating the actions of these independent programs is far more difficult than writ‐
ing a single program to run on a single computer. It is easy for developers to get mired
in coordination logic and lack the time to write their application logic properly—or
perhaps the converse, to spend little time with the coordination logic and simply to write
a quick-and-dirty master coordinator that is fragile and becomes an unreliable single
point of failure.
ZooKeeper was designed to be a robust service that enables application developers to
focus mainly on their application logic rather than coordination. It exposes a simple
API, inspired by the filesystem API, that allows developers to implement common co‐
ordination tasks, such as electing a master server, managing group membership, and
managing metadata. ZooKeeper is an application library with two principal implemen‐
tations of the APIs—Java and C—and a service component implemented in Java that
runs on an ensemble of dedicated servers. Having an ensemble of servers enables Zoo‐
Keeper to tolerate faults and scale throughput.
When designing an application with ZooKeeper, one ideally separates application data
from control or coordination data. For example, the users of a web-mail service are
interested in their mailbox content, but not on which server is handling the requests of
a particular mailbox. The mailbox content is application data, whereas the mapping of
the mailbox to a specific mail server is part of the coordination data (or metadata). A
ZooKeeper ensemble manages the latter.
3
www.it-ebooks.info
The ZooKeeper Mission
Trying to explain what ZooKeeper does for us is like trying to explain what a screwdriver
can do for us. In very basic terms, a screwdriver allows us to turn or drive screws, but
putting it this way does not really express the power of the tool. It enables us to assemble
pieces of furniture and electronic devices, and in some cases hang pictures on the wall.
By giving some examples like this, we can give a sense of what can be done, but it is
certainly not exhaustive.
The argument for what a system like ZooKeeper can do for us is along the same lines:
it enables coordination tasks for distributed systems. A coordination task is a task in‐
volving multiple processes. Such a task can be for the purposes of cooperation or to
regulate contention. Cooperation means that processes need to do something together,
and processes take action to enable other processes to make progress. For example, in
typical master-worker architectures, the worker informs the master that it is available
to do work. The master consequently assigns tasks to the worker. Contention is different:
it refers to situations in which two processes cannot make progress concurrently, so one
must wait for the other. Using the same master-worker example, we really want to have
a single master, but multiple processes may try to become the master. The multiple
processes consequently need to implement mutual exclusion. We can actually think of
the task of acquiring mastership as the one of acquiring a lock: the process that acquires
the mastership lock exercises the role of master.
If you have any experience with multithreaded programs, you will recognize that there
are a lot of similar problems. In fact, having a number of processes running in the same
computer or across computers is conceptually not different at all. Synchronization
primitives that are useful in the context of multiple threads are also useful in the context
of distributed systems. One important difference, however, stems from the fact that
different computers do not share anything other than the network in a typical sharednothing
architecture. While there are a number of message-passing algorithms to im‐
plement synchronization primitives, it is typically much easier to rely upon a component
that provides a shared store with some special ordering properties, like ZooKeeper does.
Coordination does not always take the form of synchronization primitives like leader
election or locks. Configuration metadata is often used as a way for a process to convey
what others should be doing. For example, in a master-worker system, workers need to
know the tasks that have been assigned to them, and this information must be available
even if the master crashes.
Let’s look at some examples where ZooKeeper has been useful to get a better sense of
where it is applicable:
4 | Chapter 1: Introduction
www.it-ebooks.info
Apache HBase
HBase is a data store typically used alongside Hadoop. In HBase, ZooKeeper is used
to elect a cluster master, to keep track of available servers, and to keep cluster
metadata.
Apache Kafka
Kafka is a pub-sub messaging system. It uses ZooKeeper to detect crashes, to im‐
plement topic discovery, and to maintain production and consumption state for
topics.
Apache Solr
Solr is an enterprise search platform. In its distributed form, called SolrCloud, it
uses ZooKeeper to store metadata about the cluster and coordinate the updates to
this metadata.
Yahoo! Fetching Service
Part of a crawler implementation, the Fetching Service fetches web pages efficiently
by caching content while making sure that web server policies, such as those in
robots.txt files, are preserved. This service uses ZooKeeper for tasks such as master
election, crash detection, and metadata storage.
Facebook Messages
This is a Facebook application that integrates communication channels: email, SMS,
Facebook Chat, and the existing Facebook Inbox. It uses ZooKeeper as a controller
for implementing sharding and failover, and also for service discovery.
There are a lot more examples out there; this is a just a sample. Given this sample, let’s
now bring the discussion to a more abstract level. When programming with ZooKeeper,
developers design their applications as a set of clients that connect to ZooKeeper servers
and invoke operations on them through the ZooKeeper client API. Among the strengths
of the ZooKeeper API, it provides:
• Strong consistency, ordering, and durability guarantees
• The ability to implement typical synchronization primitives
• A simpler way to deal with many aspects of concurrency that often lead to incorrect
behavior in real distributed systems
ZooKeeper, however, is not magic; it will not solve all problems out of the box. It is
important to understand what ZooKeeper provides and to be aware of its tricky aspects.
One of the goals of this book is to discuss ways to deal with these issues. We cover the
basic material needed to get the reader to understand what ZooKeeper actually does for
The ZooKeeper Mission | 5
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
CHƯƠNG 1Giới thiệuTrước đây, mỗi ứng dụng là một chương trình duy nhất chạy trên một máy tính duy nhất vớimột CPU duy nhất. Hôm nay, mọi thứ đã thay đổi. Lớn dữ liệu và Cloud Computing trên thế giới,ứng dụng được tạo thành từ nhiều chương trình độc lập chạy vào một luôn thay đổitập hợp các máy tính.Phối hợp các hành động của các chương trình độc lập là rất khó khăn hơn writ‐ing một chương trình duy nhất để chạy trên một máy tính duy nhất. Nó là dễ dàng cho nhà phát triển để có được miredtrong phối hợp logic và thiếu thời gian để viết logic ứng dụng của họ đúng cách — hoặccó lẽ converse, dành ít thời gian với logic phối hợp và chỉ đơn giản là viếtmột điều phối viên Thạc sĩ quick-and-dirty, đó là mong manh và trở thành một đĩa đơn không đáng tin cậyđiểm của sự thất bại.ZooKeeper được thiết kế để là một dịch vụ mạnh mẽ cho phép nhà phát triển ứng dụngtập trung chủ yếu vào logic ứng dụng của họ chứ không phải là sự phối hợp. Nó cho thấy nhiều một đơn giảnAPI, lấy cảm hứng từ hệ thống tập tin API, cho phép nhà phát triển để thực hiện phổ biến co‐nhiệm vụ phối, chẳng hạn như bầu một máy chủ tổng thể, quản lý nhóm thành viên, vàquản lý siêu dữ liệu. ZooKeeper là một thư viện ứng dụng với hai implemen‐ chínhtations của các API-Java và C — và một thành phần dịch vụ thực hiện trong Java màchạy trên một toàn bộ của máy chủ chuyên dụng. Có một toàn bộ của máy chủ cho phép Zoo‐Người giữ để chịu đựng lỗi và quy mô thông qua.Khi thiết kế một ứng dụng với ZooKeeper, một vị trí lý tưởng tách dữ liệu ứng dụngtừ kiểm soát hoặc phối hợp dữ liệu. Ví dụ, sử dụng một dịch vụ thư web làquan tâm trong nội dung hộp thư của họ, nhưng không phải trên máy chủ đó xử lý các yêu cầu củamột hộp thư cụ thể. Nội dung hộp thư là dữ liệu ứng dụng, trong khi ánh xạ củahộp thư đến một máy chủ thư cụ thể là một phần của dữ liệu phối hợp (hoặc siêu dữ liệu). AZooKeeper toàn bộ quản lý sau này.3www.it-ebooks.infoNhiệm vụ ZooKeeperCố gắng để giải thích những gì ZooKeeper làm cho chúng tôi là giống như đang cố gắng để giải thích những gì một screwdrivercó thể làm cho chúng tôi. Trong điều kiện rất cơ bản, một tuốc nơ vít cho phép chúng tôi bật hoặc lái xe đinh vít, nhưngĐặt nó theo cách này không thực sự thể hiện sức mạnh của công cụ. Nó cho phép chúng tôi để lắp rápphần của đồ nội thất và thiết bị điện tử, và trong một số trường hợp treo hình ảnh trên tường.Bằng cách đưa ra một số ví dụ như thế này, chúng tôi có thể cung cấp cho một cảm giác của những gì có thể được thực hiện, nhưng nó làchắc chắn không đầy đủ.Các đối số cho những gì một hệ thống như ZooKeeper có thể làm cho chúng tôi là dọc theo đường cùng:nó cho phép phối hợp tác vụ cho hệ thống phân phối. Một nhiệm vụ phối hợp là một nhiệm vụ in‐volving nhiều quy trình. Một nhiệm vụ như vậy có thể cho các mục đích hợp tác hoặc đểđiều chỉnh ganh đua. Hợp tác có nghĩa là quá trình cần phải làm điều gì đó với nhau,và quá trình thực hiện hành động để cho phép các quy trình khác để thực hiện tiến bộ. Ví dụ, trongđiển hình nhân viên Thạc sĩ kiến trúc, công nhân thông báo là bậc thầy rằng nó là có sẵnđể làm việc. Là bậc thầy do đó gán tác vụ cho người lao động. Ganh đua là khác nhau:nó đề cập đến tình huống trong đó hai quá trình không thể thực hiện tiến bộ đồng thời, vì vậy mộtphải chờ đợi cho người khác. Sử dụng cùng ví dụ Thạc sĩ-công nhân, chúng tôi thực sự muốn cómột tổng thể duy nhất, nhưng nhiều quá trình có thể cố gắng để trở thành bậc thầy. Nhiềuquá trình do đó cần phải thực hiện loại trừ lẫn nhau. Chúng ta có thể thực sự nghĩ vềviệc mua lại mastership là một trong những mua một khóa: quá trình mua lạimastership khóa bài tập vai trò của master.Nếu bạn có bất kỳ kinh nghiệm với multithreaded chương trình, bạn sẽ nhận ra rằng córất nhiều vấn đề tương tự. Trong thực tế, có một số tiến trình đang chạy trong cùng mộtmáy tính hoặc trên máy tính khái niệm không phải là khác nhau ở tất cả. Đồng bộ hóanguyên thủy được hữu ích trong bối cảnh nhiều chủ đề cũng có ích trong bối cảnhHệ thống phân phối. Một khác biệt quan trọng, Tuy nhiên, bắt nguồn từ thực tế màmáy tính khác nhau không chia sẻ bất cứ điều gì khác hơn so với mạng trong một điển hình sharednothingkiến trúc. Trong khi có một số tin nhắn thông qua thuật toán để im‐plement đồng bộ hóa nguyên thủy, nó là thường dễ dàng hơn để dựa vào một thành phầncung cấp một cửa hàng được chia sẻ với một số đặc tính đặt hàng đặc biệt, như ZooKeeper nào.Phối hợp không luôn luôn đi theo hình thức đồng bộ hóa nguyên thủy như lãnh đạocuộc bầu cử hoặc ổ khóa. Cấu hình siêu dữ liệu thường được sử dụng như là một cách cho một quá trình để truyền đạtnhững gì người khác nên thực hiện. Ví dụ, trong một hệ thống master-nhân viên, công nhân cần phảibiết các tác vụ đã được giao cho họ, và thông tin này phải có sẵnngay cả khi tổng thể tai nạn.Hãy xem xét một số ví dụ nơi ZooKeeper đã được hữu ích để có được một cảm giác tốt hơnnơi nó được áp dụng:4 | Chương 1: giới thiệuwww.it-ebooks.infoApache HBaseHBase là một cửa hàng dữ liệu thường được sử dụng cùng với Hadoop. Trong HBase, ZooKeeper được sử dụngđể chọn một bậc thầy cụm, để theo dõi các máy chủ có sẵn, và để giữ cho cụmsiêu dữ liệu.Apache KafkaKafka là một hệ thống nhắn tin pub-sub. Nó sử dụng ZooKeeper để phát hiện các tai nạn, để im‐plement chủ đề khám phá, và để duy trì trạng thái sản xuất và tiêu thụ choCác chủ đề.Apache SolrSolr là một nền tảng tìm doanh nghiệp. Ở dạng phân phối của nó, được gọi là SolrCloud, nósử dụng ZooKeeper để lưu trữ siêu dữ liệu về cụm sao và phối hợp các bản Cập Nhật đểsiêu dữ liệu này.Yahoo! tải dịch vụMột phần của một thực hiện thu thập thông tin, Dịch vụ lấy fetches trang web hiệu quảbởi bộ nhớ đệm các nội dung trong khi đảm bảo rằng web máy chủ chính sách, ví nhưrobots.txt tập tin, được giữ lại. Dịch vụ này sử dụng ZooKeeper cho nhiệm vụ như thạc sĩcuộc bầu cử, tai nạn phát hiện, và siêu dữ liệu lưu trữ.Facebook tin nhắnĐây là một ứng dụng Facebook tích hợp kênh truyền thông: email, tin nhắn SMS,Facebook trò chuyện và hộp thư đến Facebook hiện có. Nó sử dụng ZooKeeper như một bộ điều khiểncho việc thực hiện sharding và chuyển đổi dự phòng, và cũng cho dịch vụ khám phá.Có rất nhiều ví dụ ra có; Điều này là một chỉ một mẫu. Cho mẫu này, hãybây giờ mang lại cho các cuộc thảo luận đến một mức độ trừu tượng hơn. Khi lập trình với ZooKeeper,nhà phát triển thiết kế ứng dụng của họ như là một nhóm khách hàng kết nối với máy chủ ZooKeepervà gọi hoạt động trên chúng thông qua các khách hàng ZooKeeper API. Trong số những thế mạnhAPI ZooKeeper, nó cung cấp:• Mạnh mẽ nhất quán, đặt hàng, và độ bền bảo lãnh• Có khả năng thực hiện đồng bộ hoá đặc trưng nguyên thủy• Một cách đơn giản để đối phó với nhiều khía cạnh của concurrency mà thường dẫn đến không chính xácCác hành vi trong các hệ thống phân phối thựcZooKeeper, Tuy nhiên, là không ma thuật; nó sẽ không giải quyết tất cả vấn đề ra khỏi hộp. Nó làquan trọng để hiểu những gì ZooKeeper cung cấp và được nhận thức của các khía cạnh phức tạp.Một trong những mục tiêu của cuốn sách này là để thảo luận về cách để đối phó với những vấn đề này. Chúng tôi bao gồm cácliệu cơ bản cần thiết để có được người đọc để hiểu những gì ZooKeeper thực sự làm choNhiệm vụ ZooKeeper | 5
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Chương 1
Giới thiệu
Trong quá khứ, mỗi ứng dụng là một chương trình duy nhất chạy trên một máy tính duy nhất với
một CPU duy nhất. Hôm nay, mọi thứ đã thay đổi. Trong thế giới Big Data và Cloud Computing,
các ứng dụng được tạo thành từ nhiều chương trình độc lập chạy trên một luôn thay đổi
thiết lập của máy tính.
Phối hợp hành động của các chương trình này độc lập là khó khăn hơn nhiều so với writ-
ing một chương trình duy nhất để chạy trên một đơn máy tính bàn. Nó rất dễ dàng cho các nhà phát triển để có được sa lầy
trong logic phối hợp và thiếu thời gian để viết logic ứng dụng của họ đúng hay
có lẽ chuyện này, để dành ít thời gian với logic phối hợp và chỉ đơn giản là để viết
một điều phối tổng thể nhanh chóng-và-bẩn mà là mong manh và trở thành một đơn không đáng tin cậy
điểm của sự thất bại.
Zookeeper được thiết kế để có một dịch vụ mạnh mẽ cho phép các nhà phát triển ứng dụng để
tập trung chủ yếu vào logic ứng dụng của họ hơn là phối hợp. Nó cho thấy một đơn giản
API, lấy cảm hứng từ các API hệ thống tập tin, cho phép phát triển để thực hiện đồng phổ biến
nhiệm vụ phối, chẳng hạn như bầu server của chương trình, quản lý các thành viên nhóm, và
quản lý siêu dữ liệu. Zookeeper là một thư viện ứng dụng với hai implemen- chính
tations của API Java và C-và một thành phần dịch vụ thực hiện trong Java mà
chạy trên một tập hợp các máy chủ chuyên dụng. Có một tập hợp các máy chủ cho phép Zoo-
Keeper chịu đựng lỗi lầm và quy mô thông.
Khi thiết kế một ứng dụng với Zookeeper, một lý tưởng tách dữ liệu ứng dụng
từ điều khiển hoặc điều phối dữ liệu. Ví dụ, những người sử dụng một dịch vụ web-mail là
quan tâm đến nội dung hộp thư của họ, nhưng không phải trên máy chủ nào đang xử lý yêu cầu của
một hộp thư riêng. Các nội dung hộp thư là dữ liệu ứng dụng, trong khi các bản đồ của
các hộp thư đến một máy chủ mail cụ thể là một phần của dữ liệu phối hợp (hoặc siêu dữ liệu). Một
bộ quần áo đồng Zookeeper quản lý sau này.
3
www.it-ebooks.info
The Zookeeper Sứ
Đang cố gắng để giải thích những gì Zookeeper làm cho chúng ta cũng giống như cố gắng để giải thích những gì một tuốc nơ vít
có thể làm cho chúng ta. Trong điều kiện rất cơ bản, một tuốc nơ vít cho phép chúng tôi để biến hoặc lái xe vít, nhưng
đặt nó theo cách này không thực sự thể hiện sức mạnh của công cụ. Nó cho phép chúng tôi để lắp ráp
phần của các thiết bị nội thất, điện tử, và trong một số trường hợp treo tranh ảnh trên tường.
Bằng cách đưa ra một số ví dụ như thế này, chúng tôi có thể cung cấp cho một cảm giác của những gì có thể được thực hiện, nhưng nó là
chắc chắn không phải là toàn bộ.
Các đối số cho những gì một hệ thống như Zookeeper có thể làm cho chúng ta là những đường lối cũ:
nó cho phép các nhiệm vụ phối hợp với hệ thống phân phối. Một nhiệm vụ phối hợp là một nhiệm vụ trong-
volving nhiều quy trình. Một nhiệm vụ như vậy có thể cho các mục đích hợp tác hoặc để
điều chỉnh tranh. Hợp tác có nghĩa là quá trình cần phải làm điều gì đó với nhau,
và các quy trình hành động để kích hoạt các quá trình khác để làm cho tiến bộ. Ví dụ, trong
các kiến trúc sư-công nhân điển hình, các nhân viên thông báo cho chủ nó có sẵn
để làm việc. Các bậc thầy do đó giao nhiệm vụ cho người lao động. Ganh đua là khác nhau:
nó đề cập đến tình huống mà trong đó hai quá trình không thể thực hiện tiến bộ đồng thời, do đó, một
phải chờ cho người kia. Sử dụng cùng một ví dụ master-nhân viên, chúng tôi thực sự muốn có
một tổng thể duy nhất, nhưng nhiều quá trình có thể cố gắng để trở thành bậc thầy. Việc nhiều
quá trình do đó cần phải thực hiện loại trừ lẫn nhau. Chúng tôi thực sự có thể nghĩ về
nhiệm vụ mua lại quyền làm chủ như là một trong những có được một khóa: quá trình mà mua
lại. Khóa làm chủ các bài tập vai trò của chủ
Nếu bạn có bất kỳ kinh nghiệm với các chương trình đa luồng, bạn sẽ nhận ra rằng có
rất nhiều tương tự các vấn đề. Trong thực tế, có một số tiến trình đang chạy trong cùng một
máy tính hoặc trên máy tính là khái niệm không khác nhau gì cả. Đồng bộ hóa
nguyên thủy mà hữu ích trong bối cảnh nhiều chủ đề cũng rất hữu ích trong bối cảnh
của các hệ thống phân phối. Một sự khác biệt quan trọng, tuy nhiên, xuất phát từ thực tế là
các máy tính khác nhau không chia sẻ bất cứ điều gì khác hơn so với các mạng trong một sharednothing điển hình
kiến trúc. Trong khi có một số thuật toán thông-qua nhằm cải thiện
nguyên thủy đồng bộ plement, nó thường dễ dàng hơn nhiều để dựa vào một thành phần
cung cấp một cửa hàng chia sẻ với một số tính chất đặt hàng đặc biệt, như Zookeeper không.
Điều phối không luôn luôn đi theo hình thức nguyên thủy đồng bộ như lãnh đạo
cuộc bầu cử hoặc ổ khóa. Siêu dữ liệu cấu hình thường được sử dụng như là một cách cho một quá trình để truyền đạt
những gì người khác cần phải làm. Ví dụ, trong một hệ thống master-công nhân, người lao động cần phải
biết các nhiệm vụ đã được phân công cho họ, và thông tin này phải có sẵn
ngay cả khi treo máy chủ.
Chúng ta hãy xem xét một số ví dụ mà Zookeeper đã được hữu ích để có được một cảm giác tốt hơn của
nơi nó được áp dụng:
4 | Chương 1: Giới thiệu
www.it-ebooks.info
Apache HBase
HBase là một kho dữ liệu thường được sử dụng cùng với Hadoop. Trong HBase, Zookeeper được sử dụng
để bầu ra một tổng thể cụm, để theo dõi các máy chủ có sẵn, và để giữ cho cụm
siêu dữ liệu.
Apache Kafka
Kafka là một hệ thống tin nhắn pub-sub. Nó sử dụng Zookeeper để phát hiện tai nạn, để nâng
plement phát hiện đề tài, và để duy trì sản xuất và nhà nước tiêu thụ cho
các chủ đề.
Apache Solr
Solr là một nền tảng tìm kiếm doanh nghiệp. Trong hình thức phân phối của nó, gọi là SolrCloud, nó
sử dụng Zookeeper để lưu trữ siêu dữ liệu về các cụm và phối hợp các bản cập nhật cho
siêu dữ liệu này.
Yahoo! Đang tìm nạp Service
Một phần của việc thực hiện thu thập thông tin, các dịch vụ tìm nạp nạp các trang web hiệu quả
của bộ nhớ đệm nội dung trong khi đảm bảo rằng các chính sách máy chủ web, chẳng hạn như những người trong
file robots.txt, được bảo quản. Dịch vụ này sử Zookeeper cho các tác vụ như chủ
bầu cử, phát hiện va chạm, và lưu trữ siêu dữ liệu.
Tin nhắn của Facebook
này là một ứng dụng Facebook, tích hợp các kênh thông tin liên lạc: email, tin nhắn SMS,
Facebook Chat, và Facebook Inbox hiện. Nó sử dụng Zookeeper là điều khiển
để thực hiện sharding và chuyển đổi dự phòng, và cũng để phát hiện dịch vụ.
Có rất nhiều ví dụ hơn ra khỏi đó; đây là một mẫu chỉ. Với mẫu này, chúng ta hãy
doanh nghiệp mang lại cho các cuộc thảo luận với một mức độ trừu tượng hơn. Khi lập trình với Zookeeper,
các nhà phát triển thiết kế các ứng dụng của họ như là một tập hợp các khách hàng có thể kết nối đến các máy chủ Zookeeper
và gọi hoạt động trên chúng thông qua client API Zookeeper. Trong số những điểm mạnh
của các API Zookeeper, nó cung cấp:
• tính nhất quán mạnh, bảo đảm trật tự, và độ bền
• Khả năng để thực hiện nguyên thủy đồng bộ hóa điển hình
• Một cách đơn giản để đối phó với nhiều khía cạnh của đồng thời đó thường dẫn đến không chính xác
hành vi trong thực tế phân phối hệ thống
Zookeeper Tuy nhiên, không phải là ma thuật; nó sẽ không giải quyết mọi vấn đề ra khỏi hộp. Nó là
quan trọng để hiểu những gì Zookeeper cung cấp và nhận thức về các khía cạnh phức tạp của nó.
Một trong những mục tiêu của cuốn sách này là để thảo luận về cách đối phó với những vấn đề này. Chúng tôi bao gồm các
vật liệu cơ bản cần thiết để có được người đọc để hiểu những gì thực sự làm cho Zookeeper
The Mission Zookeeper | 5
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: