试图找到分布式系统的商业日志框架.此框架必须允许远程服务器上的.NET应用程序记录消息,然后可以在中央位置收集消息.如果可能,中央位置应将消息存储在SQL Server数据库中.
要求:
我对满足以下要求的开源消息传递和/或分布式缓存技术感兴趣.
任何想法,将不胜感激.如果任何解决方案需要特定的配置/定制以满足要求,请提及我需要做的事情.
编辑我并不是说暗示当前的答案是不相关的,但我的问题并不明确.请不要只指向阳光下的每个MQ和JSR-107库.只有您有理由相信我的要求.
我在谈论一个允许我从不同机器记录事件的库,并将这些事件在"全局"时间轴上以足够高的精度对齐.
实际上,我问,因为我自己在集群计算项目中编写了这样的东西,我发现它非常有用,我很惊讶我找不到任何类似物.
因此,重点是这样的事情是否存在(我更好地为此做出贡献)或者什么都不存在(我最好写一个我的解决方案的开源模拟).
以下是我希望从这样的库中获得的功能:
language-agnostic logging monitoring distributed cluster-computing
我想开发一个多媒体系统,系统需要保存数百万个视频和图像,所以我想选择一个分布式存储子系统.谁能给我一些建议?谢谢!
我对开发DDD应用程序非常有信心,但是一个继续引起我问题的领域是两个应用程序相互集成.我正在努力寻找关于这个主题的任何有用的书籍或资源.像EAI模式这样的书籍深入探讨了消息传递模式和消息构建,但并没有真正解释如何构建利用这些模式的系统.
我搜索过高和低,我很确定没有示例应用程序可以说明如何集成两个系统.我理解异步消息传递的概念,但再次找不到如何应用它的好例子.
SOA上的资源似乎不重复相同的概念,而没有演示如何实现它们,而且往往更关心的是销售我的产品.
以下是我正在努力回答的问题:
每个应用程序是否应该拥有自己的数据副本?例如,组织中的每个应用程序是否都有自己的客户端列表,并在收到消息后更新?
在DDD堆栈中的什么时候传递消息?它们是域事件的结果吗?
我可以组合异步消息传递和WCF,还是我必须选择?我是否将WCF用于发布/订阅的请求/响应和消息传递?
一个DDD应用程序如何使用另一个应用程序的服务?一个DDD应用程序是应该通过其应用程序服务查询另一个系统的数据,还是应该已经拥有自己的数据本地副本,如第1点所述?
显然我不能跨两个系统进行交易.我该如何避免这种情况?
如果我听起来很困惑,那是因为我.我不是在寻找上述问题的答案,只是指出将回答这个和类似问题的资源方向.
我的要求 -
问题 - 通过REDIS客户端查看实现一致性哈希的方法 - JEDIS等.它们似乎将shardinfo的密钥存储在内存中,因此不确定啊[1]会起作用.
如何使用两个C#应用程序之间的net.tcp绑定来保护WCF通信?我遇到了传输和消息安全问题,但有没有我可以实现的解决方案使用其中一个?
我正在构建一个将在多个节点上运行的OO PHP应用程序,并且本质上将是相对无状态的,我需要实现正确的发布者 - 订阅者(http://en.wikipedia.org/wiki/Observer_pattern/http:// sourcemaking.com/design_patterns/Observer/php)样式事件.
我的问题是,我该如何处理事件?
在我的应用程序中,我们使用的是Cassandra,Redis,Mongo和RabbitMQ等技术.
我知道PHP有一个事件EXTENSION可用,但从我可以告诉它坚持状态 - 或者如果利用memcached之类的东西它可以在该节点内使用...但我的应用程序将分布在多个节点上.
因此,让我们看一个示例:在节点1上,更新度量标准(度量标准ID 37),并且需要更新订阅该度量标准的任何内容.这会在更新时发布更改和更改.
我有一些订阅更新的度量标准ID 37,例如度量标准38,可能需要在度量标准37的值更改时重新计算.
度量标准38当前已实例化并在进程ID 1011中的节点2上使用...度量标准37如何告知节点2上的度量标准38(在这种情况下为进程ID 1011)以运行预订函数?
Metric 39订阅Metric 38正在更新,但未在任何地方实例化...当Metric 38完成更新时,Metric 39如何更新?
我正在考虑使用RabbitMQ作为我的事件队列管理器,并且在每个节点上都有一个守护进程样式的"事件使用者"应用程序,它读取事件队列中的事件(为了负载平衡/分配工作).
然后消费者看到"Metric:38:Updated"它会检查像Redis那样订阅"Metric:38:Updated"的内容并获取值("What:Function:Values")并执行类似call_user_func_array(array($ what)的操作,$函数),$值); ....但这似乎可能会导致开销和一定程度的同步问题...
我正在使用Doctrine MongoDB ODM来保存我的对象...为了处理同步问题我想到了这样的事情:对象可能有版本号...(版本= 1.0)并且redis可用于维护快速参考到对象的最新版本(ObjectVersion:ObjectType:ObjectId)= 1.1当在标记为@critical的对象属性(像isDeleted,货币余额等)上调用getter时,它可以检查实例的版本ID是否为等于redis中的版本#,如果需要,则从mongo更新其值...
另一种设置是使用amphp/amp(http://amphp.org/docs/amp/reactor-concepts.html)和某种形式的RPC来同步节点
因为我对网络开发(从c#转移)和无状态,并且分发...相当新.我认为向社区询问是否有人有更好的建议是个好主意?
我有一个奇怪的问题。
什么是hadoop的一些分布式和可扩展的替代方案。我正在寻找像HDFS这样的分布式文件系统,该系统可以用作廉价而有效的存储,并希望在其之上具有数据处理引擎(批处理/实时)。我知道Spark可以是一个很好的选择。但是我想将此系统用作分布式,容错和可扩展的文件存档。是否有合适的解决方案?欢迎提出建议。谢谢 :)
我想在我正在构建的分布式应用程序中使用erlang的OTP主管。但是我很难弄清这种主管如何监视远程节点上运行的进程。与erlang的start_link函数不同,start_child没有用于指定将在其上生成子节点的Node的参数。
OTP主管可以监视远程孩子吗?如果没有,我如何用erlang实现呢?
distributed ×10
.net ×2
logging ×2
caching ×1
couchbase ×1
couchdb ×1
dddd ×1
erlang ×1
erlang-otp ×1
events ×1
hadoop ×1
hbase ×1
hdfs ×1
java ×1
key ×1
messaging ×1
mongodb ×1
monitoring ×1
net.tcp ×1
performance ×1
php ×1
rabbitmq ×1
redis ×1
reliability ×1
security ×1
soa ×1
storage ×1
wcf ×1