小编Ren*_*Ren的帖子

Docker容器在连接到localhost db时运行速度很快但在外部db上运行速度很慢

我在docker-container上运行php应用程序.当我连接到本地数据库时,响应非常快(<1秒).当我连接到外部数据库(在谷歌云或亚马逊aws上运行)时,性能非常慢(> 35秒).

我尝试过使用谷歌的DNS,如我发现的一些链接所描述但没有运气.我的DNS解析在docker容器内非常快,并且连接到Google Cloud SQL DB我直接使用IP地址.

我已经检查了在EC2实例内部运行的docker容器内运行的这个链接Web服务器响应非常慢,这个Docker减慢了非本地数据库访问速度.这似乎是相关的,但不确定.

我认为这是一个Docker问题,或者与容器有些相关,因为在其他应用程序上使用相同的远程数据库(在google cloud和aws上)并且速度非常快.在我看来,它与容器内的网络有关.

所以,总结一下我用于测试的场景(DB内容完全相同):

1)在我的Mac上作为Localhost在Docker容器中运行我的应用程序:

  • 我的localhost(MAMP)上的数据库:非常快(<1秒);
  • Google Cloud SQL上的数据库:非常慢(> 35秒);
  • Amazon RDS上的DB:非常慢(> 35秒);

2)在我的应用程序在Docker容器内运行的Google Compute Engine上:

  • Google Cloud SQL上的数据库:非常慢(> 35秒);
  • Amazon RDS上的DB:非常慢(> 35秒);

3)在我的应用程序在Docker中运行的自定义Google应用程序引擎flex环境中:

  • Google Cloud SQL上的数据库:非常慢(> 35秒);
  • Amazon RDS上的DB:非常慢(> 35秒);

4)在PHP Google应用程序引擎flex环境中:

  • Google Cloud SQL上的数据库:非常慢(> 35秒);
  • Amazon RDS上的DB:非常慢(> 35秒);

5)我的应用程序在Google Compute Engine实例(PHP + apache)上运行Docker之外:

  • Google Cloud SQL上的数据库:非常快(<1秒);
  • Amazon RDS上的数据库:非常快(<1秒);

6)我的应用程序在localhost(Mac)上运行Docker之外:

  • Google Cloud SQL上的数据库:非常快(<1秒);
  • Amazon RDS上的数据库:非常快(<1秒);
  • 我的localhost(MAMP)上的数据库:非常快(<1秒);

有谁知道解决问题或找到问题的方法?我知道这是一个可能难以解决的问题.所以,我的问题与我应该如何调试以找到问题更相关.

我的Dockerfile:


    FROM php:7.0.17-apache

    RUN apt-get update
    RUN apt-get install -y …

docker

15
推荐指数
1
解决办法
3632
查看次数

在Sublime Text 3上使用babel-eslint时,Linting无法正常工作

我想让babel-eslint在Sublime 3上工作.我已安装:

  • eslint和babel-eslint全球在npm
  • Sublime上的SublimeLinter包
  • Sublime上的SublimeLinter-contrib-eslint包

另外,我已经添加了: "syntax_map": { ... "JavaScript (Babel)": "javascript" }到我的SublimeLinter.sublime-settings文件.

当我"parser": "espree"在我的.eslintrc文件上运行linter时它工作正常.但是,当我将解析器更改为babel-eslint时,它会停止工作.

我试着按照这里的教程:https://medium.com/@dan_abramov/lint-like-it-s-2015-6987d44c5b48,我似乎正在做正确的事情.

关于我做错了什么的任何想法?

javascript lint sublimetext3 babeljs

11
推荐指数
1
解决办法
4822
查看次数

在 MVC 架构中创建会话最合适的位置在哪里?

我正在开发一个 PHP 应用程序只是作为练习,我想知道会话创建在哪里会更正确。

我在控制器中接收登录数据,然后询问我的模型该用户是否存在以及密码是否匹配。这个控制器应该处理会话创建吗?我只是找不到一个好的答案。

php model-view-controller session

5
推荐指数
1
解决办法
516
查看次数

是否可以在 angularjs 的过滤器定义中注入 $filter?

当我尝试在我的currency_br 过滤器中调用现有过滤器(如货币过滤器)时,出现注入错误。我怎么能在我的自定义过滤器定义中注入 $filter ?提前致谢。

angular.module('ng').filter('currency_br', 

function () {

    return function (n) {

        var us_currency = $filter('currency')(n);
        return us_currency.toString().replace('.','@').replace(',','.').replace('@',',');

    };


});
Run Code Online (Sandbox Code Playgroud)

angularjs

1
推荐指数
1
解决办法
1788
查看次数