草庐IT

mysql - 在 Erlang 中使用 native MySQL 驱动程序

我在mochiweb中使用nativeMySQL驱动程序(http://code.google.com/p/erlang-mysql-driver/)。当我在shell模式下尝试那个MySQL驱动程序时,一切都很好。但是当我用Mochiweb编写一些代码时,它向我报告了以下错误:=CRASHREPORT====4-Jul-2009::04:44:29===crasher:initialcall:mochiweb_socket_server:acceptor_loop/1pid:registered_name:[]exceptionerror:nofunctionclausematchi

mysql - Mnesia 中的唯一约束

我正在开发一个需要大量数据库写入的Erlang应用程序。除了主键之外,我的模式还有另一个强制执行唯一约束的属性。假设我有一个ID、一个unique_constraint_field和一些其他字段。我现在需要更新数据库中对应于唯一ID的一行,因为没有其他行应该已经具有我要更新的unique_constraint_field值的值。由于我需要执行大量更新(每次更新只会影响1行),(也需要低延迟)我依靠主键和对该属性的唯一约束来捕获重复,而不是使用子查询的更新语句。这允许我在单个查询中执行更新(95%的时间发生),在剩下的5%中,我可以捕获异常以对主键或唯一属性违规采取必要的措施。我目前正在

mysql - 从mysql迁移到Couchbase。这是个好主意吗?

Closed.ThisquestiondoesnotmeetStackOverflowguidelines。它当前不接受答案。想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。1年前关闭。Improvethisquestion当前,我们正在使用MySQL数据库。数据库大小约为45GB,并且还在不断增长。每秒钟大约有4000个数据被写入数据库。同时,几个用户从数据库中获取数据。这意味着读取和写入将在数据库中连续进行。我们正在考虑使用Couchbase迁移到NoSQL技术。我不是数据库专家,在我进一步思考之前,我有很少的疑问当数据库太大而每秒读取和写入过多时,NoSQ

mysql - Ejabberd 如何管理集群的数据库?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion它是将所有数据复制到每个节点,还是将数据片段存储在每个节点上,然后在运行时从不同节点获取每个需要的片段?或者这是如何工作的?如果您使用MySQL而不是Mnesia,集群是否仍能正常工作?

sockets - 如何在尾递归中关闭套接字?

我创建了一个udp客户端,需要每5s发送一次消息,所以我写start()->{ok,Sock}=gen_udp:open(0,[]),send(Sock).send(Sock)->gen_udp:send(Sock,"127.0.0.1",3211,"helloworld"),timer:sleep(5000),send(Sock).我想知道关闭socket的好地方 最佳答案 如果您的目标是每5秒发送一条消息,那么为什么要关闭套接字?如果您有一些逻辑来确定何时发送了足够多的消息(例如,您计算它们),那么这就是关闭套接字的地方。这是一

networking - {active, false}、{active, true} 和 {active, once} 有什么区别?

您可能知道,gen_tcp有三种模式。{active,false}、{active,true}和{active,once}。我已经阅读了一些关于{active,false}、{active,true}和{active,once}的文档。但是,我没有得到它。{active,false}和{active,true}和{active,once}有什么区别?能解释清楚吗? 最佳答案 这是关于流量控制的:你有一个Erlang进程来处理传入的网络流量。通常您希望它对传入的数据包快速使用react,但您不希望它的消息队列增长得​​比它处理它的速度

ssl - 如何在同一端口上提供 tcp/ssl 支持

假设您在端口80上打开一个tcp套接字来处理http请求,在端口443上打开一个ssl套接字来处理https...一些代理如何在同一端口上提供对它们的访问?我只找到了这个link但它不是很有用。您能否提供一个erlang示例或建议我一些资源,以便我可以从中了解有关该主题的更多信息?提前致谢 最佳答案 howcansomeproxyprovideaccesstobothofthemonthesameport??通过实现HTTPCONNECT方法,(非透明)代理可以切换为提供TCP隧道,例如,浏览器可以通过该隧道访问HTTPS资源。一个

tcp - Erlang:{packet,N} 选项适用于 N = 0 但不适用于 1,2,4?

下面的代码确实适用于gen_tcp:connect()函数调用中的{packet,0}选项,但不适用于1、2和4(尽管我只测试了4,我假设1和2也不起作用)。我的问题是为什么不使用一个而不是另一个重要吗?基本上,Erlang文档没有详细说明有关数据包选项的主题,JoeArmstrong的ProgrammingErlang也没有提供任何详细信息;他只是解释说数据包没有按顺序重新组装,尽管我一直认为tcp数据包在发送时就被接收到,这与UDP不同。我有一个有趣的注意事项是thispage上的客户端服务器有{packet,4}作为选项,它工作正常并且与下面的代码非常相似。这是下面代码中使用的{

tcp - Erlang TCP 接受模式

考虑以下(基于LYSE的sockserv)%%%Thesupervisorinchargeofallthesocketacceptors.-module(tcpsocket_sup).-behaviour(supervisor).-export([start_link/0,start_socket/0]).-export([init/1]).start_link()->supervisor:start_link({local,?MODULE},?MODULE,[]).init([])->{ok,Port}=application:get_env(my_app,tcpPort),{ok,

tcp - 通过 TCP Erlang 接收错误数据

我正在尝试通过TCP套接字接收一些数据。当我运行下面的代码时,我得到了输出:localhost^V^A^@,我知道如果使用二进制发送数据,你需要转换数据,但因为我发送的是一个列表,我认为它会被同样地接收到?为什么Host字符串显示正确,而其他数据却显示不正确?非常感谢任何帮助,谢谢。cell_process(Port,X,Y)->Host="localhost",Data=[Host,Port,X,Y],{ok,Socket}=gen_tcp:connect(Host,22,[list,{packet,0}]),ok=gen_tcp:send(Socket,Data),ok=gen_t