对于那些将单片应用程序分解为微服务的人来说,您如何处理拆分数据库的问题.由于性能和简单性原因,我参与的典型应用程序进行了大量的数据库集成.
如果你有两个逻辑上不同的表(如果你愿意的话,有限的上下文),但是你经常对大量的数据进行聚合处理,那么在整体中你更有可能避开面向对象而是使用数据库的标准JOIN功能用于在将聚合视图返回到您的应用层之前处理数据库上的数据.
您如何证明将这些数据拆分为微服务是合理的,因为您可能需要通过API而不是数据库来"加入"数据.
我读过Sam Newman的微服务书,在关于拆分Monolith的章节中,他给出了一个"打破外键关系"的例子,他承认在API中进行连接会变慢 - 但他接着说无论如何你的应用程序足够快,它比以前慢吗?
这看起来有点油腻?人们的经历是什么?您使用了哪些技术来使API连接执行可接受?
我正在寻找为iPhone应用程序设置In App Purchases.我打算使用新的自动续订订阅类型.但是,我想为特定订阅提供多个持续时间,但无法查看如何从SKProductsResponse.products数组中返回的SKProduct中检索持续时间.
SKProduct对象具有price,localizedTitle和localizedDescription.但是,如果您设置具有多个持续时间的订阅系列,则为该系列设置一次标题/说明,以便您不能包括持续时间,并且文档明确表示不在标题/说明中包含持续时间.但是,看不到任何其他字段,我可以检索在我的自定义应用商店中显示的持续时间.我要么缺少某些东西,要么在4.3之前无法使用?
指针非常感谢!
我正在使用Xcode 3.2.5构建iOS应用程序,Base SDK设置为iOS 4.2
我知道我已经使用了4.0和4.1中的一些api,但不确定我是否真的需要4.2.
根据iOS开发指南,"当Xcode检测到您的应用程序正在使用目标操作系统版本中不可用的功能时,会显示构建警告".
所以我希望使用编译器警告来获得我的最低操作系统要求.但是,即使我将iOS部署目标设置为iOS 3.0,我仍然没有收到任何编译器警告.
我一定做错了什么,但不确定是什么?当iOS部署目标小于基本SDK并且代码使用基本SDK功能时,任何人都可以确认它们会收到编译器警告吗?或者,如果链接iOS部署目标版本中不存在的框架,编译器警告是否仅显示?
我已经阅读了很多关于设计分区键和排序键的DynamoDB文档,但我认为我必须遗漏一些基本的东西.
如果您的分区键设计错误,那么当SINGLE分区键值的数据超过10GB时会发生什么?
"理解分区行为"部分指出:
"单个分区可容纳大约10 GB的数据"
它如何分区单个分区键?
文档还讨论限制,本地二级索引限制为10GB数据,之后您开始收到错误.
"任何项目集合的最大大小为10 GB.此限制不适用于没有本地二级索引的表;只有具有一个或多个本地二级索引的表才会受到影响."
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LSI.html#LSI.ItemCollections
我能理解.如果它超过10GB,它还有一些其他的魔法来分割单个分区键的数据.或者只是继续增长分区?这对您的关键设计有何影响?
这个问题的背景是我已经看到很多在TenantId中使用类似TenantId作为分区键的例子.但是,如果特定的TenantId可以拥有超过10 GB的数据,那似乎是有限的.
我肯定错过了什么?