Tôi nghĩ điều khiến tôi bực mình về câu hỏi này là bạn đã đặt câu hỏi và tải nó với "sự thật" trong nỗ lực thu thập số không.
Sự thật là bạn có thể phát triển ứng dụng App Engine sao chép các tính năng của Facebook, Twitter hoặc Tumblr. Và giả sử ứng dụng được viết tốt, nó sẽ mở rộng để hỗ trợ hàng trăm triệu người dùng. Lý do chính mà bạn không muốn (dường như không phải là một sự cân nhắc cho bạn) là chi phí để chạy một dịch vụ có kích thước trên Máy ứng dụng.
Ngoài ra, tôi không thấy bất kỳ hạn chế nào bạn liệt kê sẽ ngăn bạn phát triển một ứng dụng như vậy.
Yêu cầu / Phản hồi HTTP
- Kích thước yêu cầu tối đa: 10 MB - sai, tăng lên 32 MB.
- Kích thước phản hồi tối đa: 10 MB - sai, tăng lên 32 MB.
- nếu bạn đang phát triển một ứng dụng xã hội thường xuyên cần phân phối các trang lớn hơn 10MB thì có lẽ bạn đã làm sai. Ngoài ra, nếu bạn cần phân phối nội dung lớn hơn 32 MB, bạn có thể sử dụng blobstore cho các tệp có dung lượng lên tới 2GB.
- Bạn không thể truy cập hệ thống tập tin. (quên về việc lưu các tệp tải lên hệ thống tập tin) - sai. Bạn có thể đọc từ hệ thống tệp cục bộ và có thể tải lên và đọc / ghi tệp lên blobstore.
- Không có cách nào mà Facebook, Twitter hoặc Tumblr chỉ lấy người dùng tải lên và sao chép chúng vào một thư mục. Không phải là một vấn đề.
- Tất cả các yêu cầu phải trả lời trong vòng 10 phút nếu không GAE sẽ ném DeadlineExceededException - sai. Thực sự là 30 giây.
- Nếu bạn cần lâu hơn 30 giây để cung cấp kết quả cho yêu cầu của người dùng, có lẽ bạn đang làm sai.
- Mỗi công việc định kỳ phải được thực hiện trong vòng 30 giây - sai, đó là 10 phút.
- Nếu bạn không thể chia một nhiệm vụ dài thành 10 phút, A: bạn có thể đã làm sai và B: bây giờ bạn có thể chuyển nhiệm vụ đó sang phiên bản Backend, không có giới hạn thời gian cho các yêu cầu.
Công việc cron không thể sử dụng giảm bản đồ - không bao giờ sử dụng giảm bản đồ, nhưng tôi nghĩ điều này đòi hỏi phải trích dẫn.
Mỗi GET hoặc POST đến một trang web khác sẽ bị hủy bỏ sau 5 giây. Bạn có thể định cấu hình nó để chờ tối đa 10 giây. (máy chủ trung gian sẽ cần thiết để làm việc với Twitter và Facebook nhiều lần) - Đúng.
- Nếu yêu cầu đối mặt với người dùng đối với API bên ngoài mất hơn 10 giây, có lẽ bạn nên nói với người dùng thử lại bằng mọi cách. Nếu đó không phải là yêu cầu đối với người dùng, bạn có thể tự động thử lại tác vụ cho đến khi API phản hồi.
- Máy khách không thể kết nối với GAE thông qua FTP (chỉ HTTP và HTTPS). - Thật
-- Tại sao điều này là một vấn đề? Bạn có nghĩ rằng bất kỳ công ty quy mô lớn nào triển khai các thay đổi thông qua FTP không?
- Không có https cho tên miền tùy chỉnh. Chỉ dành cho tên miền của bạn-app-id.appspot.com. - Thật.
- Đó là trên lộ trình mặc dù.
- Nếu bạn nhận được một luồng người dùng, bạn sẽ gặp lỗi "vượt quá hạn ngạch" - Một nửa đúng.
- Nếu bạn đặt ngân sách đúng cho ứng dụng của mình, bạn sẽ không bao giờ thấy lỗi vượt quá hạn ngạch. Trang web Royal Wedding được lưu trữ trên App Engine và nhận được 32.000 yêu cầu mỗi giây. Không có lỗi vượt quá hạn ngạch. Ngoài ra, đã bao giờ nhìn thấy cá voi thất bại trên Twitter, hoặc lỗi quá dung lượng trên Tumblr? Đó thực chất là lỗi vượt quá hạn ngạch của họ.
Cơ sở dữ liệu
- Hành vi cơ sở dữ liệu không giống nhau trong phát triển cục bộ so với các máy chủ thực tế. - Sai
- Nếu bạn có nghĩa là chạy kho dữ liệu trên máy tính xách tay của bạn chậm hơn so với chạy trên cụm của Máy ứng dụng, thì đúng, nếu không thì không đúng.
- GQL. Không có gì khác. - Sai
- Hầu hết các nhà phát triển sử dụng bộ lọc db để truy vấn kho dữ liệu. Thêm vào đó, bạn cũng có thể nói rằng MySQL cho phép "SQL. Không có gì khác."
- Không có truy vấn nào có thể truy xuất hơn 1000 bản ghi (nghiêm túc nếu bạn muốn cho phép khách hàng của mình có nút một lần nhấp-ngoại tuyến-ngay bây giờ) - Sai.
- Giới hạn kỷ lục 1000 đã được dỡ bỏ từ lâu. Ngoài ra, hãy cho tôi xem bất kỳ trang nào hướng tới người dùng trên Facebook, Twitter hoặc Tumblr yêu cầu hơn 1000 bản ghi để hiển thị.
- Nếu bạn cần truy cập tuyến tính vào một lượng lớn hồ sơ để thực hiện một thao tác, bạn sẽ không gặp may (các hệ thống của Google được phân cụm ồ ạt)
- Tôi thậm chí không chắc chắn những gì bạn nhận được ở đây. Hầu hết mọi người coi tốc độ của cụm khổng lồ của Google là một lợi thế rất lớn của hệ thống.
Giá trị Memcache kích thước tối đa là 10 MB. - Trên thực tế, đó là 1 MB cho mỗi mục nhập memcache, giống như mọi cách thực hiện memcache khác.
Không thể thực hiện tìm kiếm văn bản đơn giản - Đúng.
- Đó là một tính năng đó trên boong. Hầu hết các trang web lớn không thực hiện lập chỉ mục tìm kiếm văn bản của riêng họ.
- Bạn không thể tham gia 2 bảng. - Thật.
- Các nhà phát triển Máy ứng dụng cần điều chỉnh suy nghĩ của họ từ một truy vấn SQL đa tham gia đơn lẻ sang một số truy vấn riêng lẻ nhỏ hơn hoặc không chuẩn hóa dữ liệu để không cần tham gia.
- Chậm (Bạn phải đọc về cách tách các bảng bằng cách sử dụng tính kế thừa để bạn có thể tìm kiếm trong một bảng, lấy khóa và sau đó lấy cha mẹ của nó để tránh hiệu suất khử lưu huỳnh) - ???
- yêu cầu dịch thuật / trích dẫn.
- Ngoại lệ thời gian chạy "Quá nhiều chỉ mục" - Đúng
- Có giới hạn số lượng chỉ mục trong một ứng dụng. Tôi chỉ thấy các ứng dụng nghiên cứu học thuật đạt được nó mặc dù.
- Một thực thể nhiều nhất có thể có 5000 giá trị thuộc tính trong một chỉ mục - Đúng
- Vì vậy, nếu ai đó có hơn 5000 bạn bè, họ sẽ cần hai thực thể trong nhóm bạn bè.
- Tên chính của biểu mẫu
__*__
(bắt đầu và kết thúc bằng hai dấu gạch dưới) được bảo lưu và ứng dụng không nên được sử dụng. - Thật
-- Nhưng cái gì cơ?
- Tên khóa được giới hạn ở 500 byte (tôi đoán là được mã hóa UTF-8) - Đúng
- Một lần nữa, vậy thì sao? Tên khóa không phải để lưu trữ tiểu thuyết, chúng là để xác định duy nhất một thực thể.
Ngôn ngữ
- python hoặc java hoặc Go (bất cứ điều gì khác sẽ phải được dịch sang các ngôn ngữ này) - Một nửa đúng
- Trên thực tế, bạn cũng có thể chạy bất kỳ ngôn ngữ nào chạy trên JVM, bao gồm PHP và JRuby. Không chắc tại sao đó là một vấn đề, Python và Java là hai ngôn ngữ mạnh mẽ với nhiều công cụ, hướng dẫn và lập trình viên có kinh nghiệm.
Sự cố máy chủ
- Không có IP tĩnh (Vấn đề điều chỉnh và hạn ngạch khi gọi API của bên thứ ba) - Một nửa đúng
- Hầu hết các API của bên thứ ba đều biết về Máy ứng dụng và / hoặc có mối quan hệ với Google. Một vài lần Twitter đã vô tình chặn App Engine và nó sẽ được sửa trong vòng vài giờ.
- Mỗi ứng dụng được giới hạn ở 3000 tệp - Một nửa đúng
- Nếu bạn thực sự cần nhiều hơn 3000 tệp mã cho ứng dụng web của mình, bạn có thể sử dụng nhập khẩu zip (Ngoài ra, bạn có thể đang làm sai).
- Không kiểm soát HĐH hoặc phần cứng chạy ứng dụng web - Đúng
- Máy ứng dụng là một Nền tảng như một Dịch vụ . Không phải lo lắng về việc phục vụ HĐH hay phần cứng là những gì mọi người đang trả tiền. Đây là lợi thế chính của App Engine, không phải là giới hạn.