这个问题一直困扰着我一段时间.
如果您正在使用Angular构建具有多种功能的网站,那么构建一个巨大的SPA或将网站分解为功能"应用程序"并为每个应用程序构建SPA更好吗?
例如,我们有一个社交媒体网站,其中包含通知Feed,用户个人资料,报告和群组.您是将所有这些功能构建到单个SPA中,还是构建4个不同的SPA并让后端框架路由到正确的SPA?
例如
www.mywebsite.foo#/资料/ 12345 /教育
VS
www.mywebsite.foo/profile/12345#/education
我个人更赞成后一种方法,因为它减少了应用程序的大小,但它确实需要在应用程序之间导航时重新加载页面.
我在AWS上使用Kubernetes,t2.medium EC2实例具有20GB的磁盘空间,其中一个节点在几天后用完了磁盘空间.它似乎是由Docker镜像和日志的组合引起的.
据我所知,Kubernetes拥有自己的Docker GC来管理Docker的磁盘使用和日志轮换.我猜测20GB不足以让Kubernetes自行管理磁盘使用情况.什么是生产环境的安全磁盘大小?
我正在Google Cloud Run上托管的ExpressJS应用上进行负载测试,当流量激增时,有一段时间我在Stackdriver中看到许多500错误,并显示消息“请求失败,因为实例无法成功启动。” -有效导致服务器停机。
看到此错误随着应用程序的扩展而更频繁地发生,我认为这是由Cloud Run负载均衡器在这些实例准备好接受请求之前过早地将流量分配给新实例造成的。
当我继续运行负载测试时,实例会不断重复被杀死并重新启动,因此在负载打开时没有恢复机制。
我没有看到来自NodeJS应用程序的任何错误日志,表明没有任何失败的请求实际上到达了我的应用程序。
如何避免这些错误?
Cloud Run如何确定端口已准备好接受请求?
是在ExpressJS应用程序中配置错误,还是可以在将请求发送到新实例之前以某种方式延迟Cloud Run?
我的情况:
我正在研究用于缩放用户界面的HTML5/Canvas/JavaScript框架,然后我将其用于数据可视化Web应用程序项目.我的框架需要的一个功能是能够检测用户的鼠标是否在渲染的形状上.对于更复杂的形状,如多边形和带Bezier曲线的形状,这将成为一项挑战.
我找到了解决这个问题的两种方法:
(1)一种方法是在画布上画两次.第一次,每个形状都填充了哈希表中的独特颜色.第二次,形状在第一层上获得真实的颜色和面具.为了检测鼠标形状的碰撞,我必须从第一层抓取鼠标下的像素颜色,并将我得到的颜色映射到散列表中的相应形状.
(2)或者我可以使用光线投射算法(http://en.wikipedia.org/wiki/Point_in_polygon#Ray_casting_algorithm).我实际上已经使用检测射线冲突和射线贝塞尔碰撞的代码实现了这个算法.
实际问题:
我不喜欢第一种方法,因为一切都必须被绘制两次,这在计算上并不便宜.但是由于计算的舍入误差,第二种方法不能保证准确性.
理想情况下,我希望提高第二种方法接近完美的准确性.
我提高准确度的尝试是在不同方向投射4条光线:顶部,左侧,底部和右侧.如果至少有一条水平光线和一条垂直光线表明鼠标在形状内部,那么我认为该点位于形状内部.虽然这样可以消除大多数失火,但当鼠标位于形状内部时,仍然会发生错误(不会发射).
如果有人可以建议修复光线投射算法,或者甚至是第三种选择,那将是非常棒的!
提前致谢.