这是我的问题场景:
1.Create 2 apps.
2.App1 continuously pulls tweets and stores the json file in its /data folder.
3.App2 picks up the latest file from the /data folder of App1 and uses it.
我已经使用R及其相应的build-pack在bluemix上部署应用程序。
如何从App2访问App1中的/ data / file1,即我可以在App2源文件中执行类似的操作:
read.csv(" App1 / data / Filename.csv"); bluemix会了解App1文件夹指向的内容吗?
答案 0 :(得分:0)
您无法在bluemix上访问其他应用中的文件。您应该使用像cloudant这样的数据库服务来存储您的json。将相同的服务绑定到两个应用程序。
答案 1 :(得分:0)
Bluemix是一种平台即服务。这实质上意味着传统意义上没有文件系统。是的,你的申请"生活"在某种类型的VM上的文件结构中,但如果您要随时重新部署或重新部署应用程序,则文件系统的更改将会丢失。
"对"处理此数据的方法是将其存储在NoSQL
数据库中,并将每个应用程序指向此数据库。 Bluemix提供多种选择,具体取决于您的需求。
MongoDB
可能是使用和理解的更简单,更直接的数据库之一。 Cloudant
也非常优秀且稳健,但学习曲线略高。
设置此数据库后,您可以定期轮询它以获取新记录,或者更好的方法是,使用WebSockets实时将通知从一个应用推送到另一个应用。
无论哪种方式,请单击Bluemix主导航中的Catalog
链接,然后搜索要配置的这些服务中的任何一个并将其绑定到您的应用。然后,您需要通过VCAP_SERVICES
环境对象引用它们,您可以了解有关here的更多信息。
答案 2 :(得分:0)
使用像Cloudant或Object Storage服务这样的东西将是在两个应用程序之间共享数据的好方法。您甚至可以将同一服务绑定到2个应用程序。
另一个解决方案是创建一个微服务,它是您的持久层,为您存储数据。然后,您可以在此基础上创建一个API,以便您的两个应用都可以调用。
如上所述,在磁盘上存储信息对云应用来说并不是一个好主意。去看看http://12factor.net,它描述了编写真正的基于云的应用程序的禁忌。