小编sur*_*gle的帖子

如何扩展使用Akka的Scala REST应用程序?

我有一个使用Akka的Scala应用程序,它接收REST请求,对数据库进行一些操作,并向客户端响应一些信息.实际上,我的数据库操作需要很长时间,而我的启用REST的actor在此期间无法响应新请求,即使我可以同时对数据库运行大量操作.我正在使用javax.ws.rs注释来启用我的actor中的REST方法.

问题; 什么是使我的应用程序能够处理大量并发请求的最佳方法?

编辑:我将添加一些示例代码.

  import se.scalablesolutions.akka.actor._
  import javax.ws.rs._

  @Path("/test")
  class TestService {

    @GET
    def status() = 
      actorPool !! Status(session).
        getOrElse(<error>Unable to connect to service</error>)
  }

  class TestActor {

    def receive = {
      case Status() => {
        reply(SomeObject.slowDBMethod)
      }
    }
  }

  case class Status()
Run Code Online (Sandbox Code Playgroud)

EDIT2:这就是我在日志中得到的内容.我正在从浏览器发送三个请求,因为我可以切换标签并按F5,但RS bean仍然等待第一个请求完成后再处理下一个请求.

[INFO] [2010-08-29 16:27:03,232] [akka:event-driven:dispatcher:global-15] c.n.StatusActor: got Slow request
[INFO] [2010-08-29 16:27:06,916] [akka:event-driven:dispatcher:global-10] c.n.StatusActor: got Slow request
[INFO] [2010-08-29 16:27:10,589] [akka:event-driven:dispatcher:global-3] c.n.StatusActor: got Slow request
Run Code Online (Sandbox Code Playgroud)

rest scala scalability jersey akka

12
推荐指数
2
解决办法
3419
查看次数

当人们谈论使用"分片"扩展网站时,它们意味着什么?

关于解决大型网站的扩展问题,我听过几次提到的"碎片"技术.什么是'碎片'技术,为什么这么好?

database scalability sharding

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

rgba()的颜色IE回退不起作用

为什么IE的后续回退color: red;不起作用?
在IE7中,颜色black不是red.
现场演示

HTML:

<div>
    <span>Hello</span>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

div {
    width: 200px;
    height: 100px;
    background-color: blue;
    text-align: center;
}
span {
    font-size: 2em;
    color: red;
    color: rgba(250, 250, 97, 0.9);
}
Run Code Online (Sandbox Code Playgroud)

第三方编辑

css颜色上mozilla mdn列出了不同的选项color: value

  • CSS 2规范:color: <value>和值可以是关键字redrgb(255,0,0)
  • CSS Color Module Level 3(推荐2017-12)增加了SVG颜色,rgba(),hsl()和hsla()函数,例如:rgba(0,0,0,0)

html css fallback colors internet-explorer-7

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

为什么Windows Azure无法扩展?

我正在尝试在Widows Azure上扩展网站.到目前为止,我已经测试了Wordpress,Ghost(博客)和纯HTML网站,它们都是一样的:如果我扩展它们(添加实例),它们就不会更快.我确信我必须做错事......这就是我所做的:

  1. 我创建了一个新的共享网站,上面有一个简单的HTML Bootstrap模板.http://demobootstrapsite.azurewebsites.net/
  2. 然后我在托管的裸机服务器上安装了来自Apache Project的 ab.exe (4个核心,12 GB RAM,100 MBit)

我跑了两次测试.第一次使用单个共享实例,第二次使用此命令使用两个共享实例:

ab.exe -n 10000 -c 100 http://demobootstrapsite.azurewebsites.net/
Run Code Online (Sandbox Code Playgroud)

这意味着ab.exe将使用100个并行线程创建10000个请求.

我希望两个共享实例的测试响应时间明显低于只有一个共享实例的响应时间.但是每个请求的平均时间甚至从一个共享实例的1452.519 ms增加到两个共享实例的1460.631 ms.后来我甚至在8个共享实例上运行了该站点,完全没有任何效果.我的第一个想法是,共享实例可能是问题所在.所以我将网站放在标准VM上并再次运行测试.但问题仍然存在.此外,添加更多实例并不会使网站更快(甚至更慢).

后来我和Scott Hanselman和Stefan Schackow一起讨论了一个视频,他们已经解释了Azure Scaling功能.Stefan说Azure有一种"粘性负载均衡",它会将客户端始终重定向到同一个实例/ VM,以避免与状态良好的应用程序出现兼容性问题.所以我检查了WebServer日志,我发现每个实例的日志文件大小相同.通常这意味着在测试期间使用了每个实例.

PS:在测试运行期间,我已经从本地计算机(来自与服务器不同的网络)检查了网站的响应时间,响应时间约为1.5秒.

以下是测试结果:

###################################### 
1 instance result
###################################### 

PS C:\abtest> .\ab.exe -n 10000 -c 100 http://demobootstrapsite.azurewebsites.net/
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking demobootstrapsite.azurewebsites.net (be patient)
Finished 10000 requests


Server Software:        Microsoft-IIS/8.0
Server …
Run Code Online (Sandbox Code Playgroud)

scalability azure azure-web-roles

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

将ViewState移出页面?

我们正试图尽可能减轻页面负载.由于ViewState有时可以膨胀到100k的页面,我很乐意完全消除它.

我很想听听其他人用来将ViewState移动到自定义提供程序的一些技巧.

那说,一些警告:

  • 我们平均每小时为200万独立访客提供服务.
  • 因此,数据库读取在性能方面一直是一个严重的问题,因此我不想将ViewState存储在数据库中.
  • 我们也是负载均衡器的幕后推手,因此任何解决方案都必须与用户在每次回发时从一台机器反弹到一台机器.

想法?

asp.net viewstate scalability

10
推荐指数
2
解决办法
3485
查看次数

CORS asp.net 核心 webapi - 缺少 Access-Control-Allow-Origin 标头

我有启用 CORS 的 ASP.net WebApi Core。它是 Visual Studio ASP.net Core Web API 模板。添加的唯一代码是 CORS 支持代码:

public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddCors();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
       /*  other stuff   */

        app.UseCors(builder => builder
            .WithOrigins("https://localhost:44310")
            .AllowAnyMethod()
            .AllowAnyHeader());

        app.UseMvc();
    }
        }
Run Code Online (Sandbox Code Playgroud)

我的 API 托管在 localhost: 44361和 mycalling WEB 上 localhost: …

c# cors asp.net-core

10
推荐指数
3
解决办法
9723
查看次数

什么时候使用 libmysql-6.1.dll 和 libmysql.dll?

我正在使用 HeidiSQL 编辑 MYSQL 数据库,它询问我想使用哪个库进行编辑:

  1. libmysql-6.1.dll
  2. mysql.dll

我怎么知道要使用哪一个?

mysql heidisql

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

addEventListener drop 不触发

我正在尝试将放置事件附加到 HTML div:

document.getElementById('sub-main').addEventListener("drop", 
                                     () => {console.log('DROP')});
Run Code Online (Sandbox Code Playgroud)

但它不火。添加用于测试目的的点击事件有效 - 此点击事件触发:

document.getElementById('sub-main').addEventListener("click", 
                                     () => {console.log('Click')});
Run Code Online (Sandbox Code Playgroud)

我读过从返回 falseondragover会有所帮助:

document.getElementById('sub-main').addEventListener("ondragover", 
                                     () => {return false});

document.getElementById('sub-main').addEventListener("drop", 
                                     () => {console.log('Drop')});
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。我尝试设置draggable为 true:

document.body.setAttribute('draggable', true);
Run Code Online (Sandbox Code Playgroud)

但也没有运气!

将事件侦听器记录到控制台并getEventListeners() 显示所有事件,甚至是我选择的任何随机事件名称:

getEventListeners(document.getElementById('sub-main'));
Run Code Online (Sandbox Code Playgroud)

但是 drop 事件仍然没有触发。有任何想法吗?

javascript events drag-and-drop

9
推荐指数
2
解决办法
7482
查看次数

如何在javascript中实现决策树.寻找比我丑陋的解决方案更好的解决方案

我正在寻找一种在javascript中实现决策树的更好方法.作为编程的新手,我的工具箱中的工具数量非常有限.我知道这样做的唯一方法是:.一个巨大的丑陋难以维护并遵循if else if语句.我可以使用switch/case语句并执行状态机类型的事情.

建议和理论表示赞赏.此外,小代码示例将非常有用.谢谢参观.

戴尔

javascript logic decision-tree

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

dotnet run 挂起/卡住

razor web 应用程序无法再在我的计算机上启动。

构建命令dotnet build按预期工作,但dotnet run在第一次警告后卡住了。

C:\dev\mywebapp>dotnet run
Building...
C:\dev\mywebapp\Pages\Admin\Orders\TraderOrderList.cshtml.cs(101,17): 
     warning CS0219: The variable 'orderId' is assigned but its value is 
                     never used [C:\dev\mywebapp\MyWebApp.csproj]

C:\dev\mywebapp\Pages\Index.cshtml.cs(23,24): 
     warning CS0414: The field 'IndexModel._currentAd' is assigned but its value is
                     never used [C:\dev\mywebapp\MyWebApp.csproj]

--- after here it is stuck no more output and i stopped it after about 3 minutes
Run Code Online (Sandbox Code Playgroud)

我尝试了什么?

  • 我创建了一个新项目c:\dev\webtemp>dotnet new webapp -o HelloWebApp
  • 并用 运行它c:\dev\webtemp\HelloWebApp>dotnet run。所以这按预期工作。

我在 stackoverflow 上搜索了其他问题,但没有遇到同样的问题。

问题

  • 如何缩小问题范围?
  • dotnet run …

.net c# kestrel-http-server .net-7.0

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