2014-06-27 14 views
2

我知道在一個受限制的「sandbox」環境應用服務引擎應用程序運行,以便它可以訪問諸如專用MySQL服務器與應用發動機工作

請求執行時間限制60秒(其是用於速度優化目的)有限的資源從外部文件中讀取
但不能寫,等等

AppEngine上提供了良好的高複製數據存儲,這是如此之好來存儲數據,但它是很難奶源奎雷斯的數目來執行操作狀插入簡單,更新,刪除一個nd更新,因爲它使用NoSql(基本上是jpa和jdo)。

因此,我們決定與Mysql合作,我知道谷歌本身提供的雲sql實例,其中 使用Mysql5.6,我搜索了很多SO和在一些職位,我發現它可能有一些限制,而一些職位說由於沙箱環境的限制,這是不可能的,所以很混亂。

在開發過程中可以使用本地MySQL實例作爲詳細提供這link,但我們想用它在ourserver託管外部MySQL實例

可以使用專用的(外部/本地)MySQL服務器和應用程序引擎(用於生產而不是開發)?

在此先感謝!!!!!!

+1

不,我無法想象你爲什麼想要。你會否定使用GAE的所有優點。使用數據存儲或Cloud SQL。 –

+0

@丹尼爾羅斯曼感謝您的回答,我們正在努力的應用程序使數據存儲/ MySQL的許多問題,我們認爲可以超過應用程序引擎數據存儲的每日限制,因爲我們可以從谷歌購買配額,而是爲什麼我們不是你的本地MySQL服務器爲我們的detabase.Can你請告訴我爲什麼我們不能使用專用的MySQL服務器,在開發模式我們可以用戶本地的Mysql服務器,爲什麼不在應用程序引擎上的實時項目????? – Dev

+0

你可以做到這一點,但與其他提供商,如AWS。你可以租一個箱子,做你喜歡的東西。 –

回答

4

Google App Engine有一個套接字API,允許支付應用程序出站套接字,因此可以使用外部MySQL服務。爲此,請按照您提供的鏈接中的說明進行操作,但始終使用使用com.mysql.jdbc.Driver JDBC驅動程序,並使用類似jdbc:mysql://your_external_mysql_server:3306/database_name?user=your_user&password=1234的URL。確保您的外部MySQL服務器已打開端口3306。

正如其他人所提到的,這可能不是明智之舉,因爲Datastore或Google Cloud SQL的性能會大幅下降。您還將失去Google App Engine帶來的可靠性和擴展性。此外,託管一個專用的MySQL實例併爲其支付帶寬費用可能最終比使用數據存儲或雲端SQL更昂貴。

+0

關於[「套接字Java API」](https://cloud.google.com/appengine/docs/java/sockets/)的用法,「說明」 Google Cloud非常稀少: 在[Github上的此示例]中(https://github.com/GoogleCloudPlatform/appengine-sockets-python-java-go/blob/master/java_socket_demo/src/main/java/com/)谷歌/ appengine /演示/套接字/ WhoIsClientServlet.java#L73),我只看到'新的Socket(...)'調用。 真正需要將套接字打開到外部服務器,特別是通過JDBC驅動程序打開MySQL服務器? 在此先感謝您的回答! –

+0

App Engine使用標準的Java Socket類提供套接字API。這方面的參考資料位於http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html,並且有許多教程,例如https://docs.oracle.com/javase/教程/網絡/插座/。使用有一些限制,在我們的文檔中提到。 要使用JDBC進行外部連接,您不需要直接調用Socket api - 只需在我的答案中使用jdbc normall。 – David

相關問題