我正在为我们的生产服务器寻找高性能监控解决方案,我遇到了许多免费工具和付费服务.我想避免付费服务,除非绝对必要,并且免费工具突出的两个是Ganglia和Graphite.
但是,我发现两者之间没有比较,我想知道是否有人对此有任何见解.
使用Ganglia vs. Graphite的优点和缺点是什么,反之亦然?
关于带有DDD的CQRS以及构成每个组件的内容,有很多意见.我还没有开始研究事件采购,所以下面的列表中没有包含与此相关的任何内容.虽然对ES的深入了解会很有趣.
到目前为止,我有以下相关责任的组件(见下文).我在下面的几点中概述了一些问题.
REST端点/应用程序
AggregateId orderId = AggregateId.get(); AggregateId userId = finder.findUserAggregateIdByEmail(email); dispatcher.fire(new CreateOrderCommand(orderId,userId,orderItems));
命令
new CreateOrderCommand( orderId, userId, orderItems );命令处理程序
聚合工厂
factory.createOrder( orderId, userId, orderItems );聚合根/聚合
order.cancel(); 域名服务
知识库
repo.load(orderId);事件
new OrderCancelledEvent( orderId );事件处理程序
我即将针对 REST API 开发 Java SDK,并想知道构建它的最佳实践方法是什么。我查看了 Google,还使用了许多连接到 REST API 的 SDK,但从来没有太多一致性。我遇到了一些我觉得有趣的模式,想知道哪一种可以被视为最佳实践(如果有的话),或者是否有替代方案?
我提供了示例/伪代码以方便起见。
1)模型/请求/客户端都是分开的。调用示例:
Client client = new Client( ... credentials ... );
try {
Something obj = client.post( new PostSomethingRequest( ..params... ) );
} catch( Exception oops ) { ...handle... }
try {
Something obj2 = client.get( new GetSomethingRequest( id ) );
} catch( Exception oops ) { ...handle... }
Run Code Online (Sandbox Code Playgroud)
2)模型和请求是捆绑在一起的,而客户端是分开的。调用示例:
Client client = new Client( ... credentials ... );
try {
Something obj = client.post( new Something( ..params... ) …Run Code Online (Sandbox Code Playgroud)