使用Kafka和Zookeeper时,我对使用偏移量存储的位置感到困惑.在某些情况下,偏移似乎存储在Zookeeper中,在其他情况下,它们存储在Kafka中.
是什么决定了偏移量是存储在Kafka还是Zookeeper中?什么是利弊?
注意:当然我也可以在一些不同的数据存储中存储我自己的偏移量,但这不是这篇文章的图片的一部分.
有关我的设置的更多详情:
我使用以下命令创建了一个全新的angular 2应用程序:
ng init
ng server
Run Code Online (Sandbox Code Playgroud)
我收到此错误输出:
chunk {1} styles.bundle.js, styles.bundle.map (styles) 9.96 kB {3} [initial] [rendered]
chunk {2} vendor.bundle.js, vendor.bundle.map (vendor) 2.65 MB [initial] [rendered]
chunk {3} inline.bundle.js, inline.bundle.map (inline) 0 bytes [entry] [rendered]
ERROR in ./~/@angular/core/src/util/decorators.js
Module parse failed: /Users/nikolaschou/Dev/coziv/sandbox01/blockhowapp/temp/node_modules/@angular/core/src/util/decorators.js Parenthesized pattern (156:12)
You may need an appropriate loader to handle this file type.
|if (clsDef.hasOwnProperty('extends')) {
| if (typeof clsDef.extends === 'function') {
Run Code Online (Sandbox Code Playgroud)
谁能解释为什么我会收到这个错误?我看到报告了很多类似的错误,但不完全是这种变化.
更多细节
我可以说ng服务在同一台机器上的另一个angular-2应用程序文件夹中运行良好,我比较了这两个文件夹,但没有看到任何可以解释这种行为的明显差异.
我使用带有最新iOS的Mac,这是ng --version的输出:
angular-cli: 1.0.0-beta.26
node: 6.6.0
os: darwin x64
@angular/common: 2.4.5 …Run Code Online (Sandbox Code Playgroud) 在使用xunit for .NET 1.0 framework net46时,我不断收到此错误.
The following constructor parameters did not have matching fixture data
Run Code Online (Sandbox Code Playgroud)
我看过这篇文章:Collection fixture不会注入并按照这里描述的关于收集夹具的说明:
http://xunit.github.io/docs/shared-context.html#collection-fixture
似乎没什么用.
有什么可能导致这个的建议吗?
我在我当前的.NET项目中使用AKKA.NET.
我的问题是:经验丰富的AKKA开发人员如何使用最新的AKKA库来实现Java或.NET的重播消息模式?
这里有一些更多的细节.
我想确保失败的消息(即导致异常的actor接收的消息)被重放/重试多次,每次之间有一个时间间隔.通常,失败的消息被抛弃后重新启动actor.
我已经编写了这样的小辅助方法来解决它:
public void WithRetries(int noSeconds, IUntypedActorContext context, IActorRef receiver, IActorRef sender, Object message, Action action)
{
try
{
action();
}
catch (Exception e)
{
context.System.Scheduler.ScheduleTellOnce(new TimeSpan(0, 0, noSeconds), receiver, message, sender);
throw;
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我的演员通常看起来像这样:
Receive<SomeMessage>(msg =>
{
ActorHelper.Instance.WithRetries(-1, Context, Self, Sender, msg, () => {
...here comes the actual message processing
});
});
Run Code Online (Sandbox Code Playgroud)
我喜欢上述解决方案,因为它很简单.但是,我不喜欢它在我的代码中添加了另一层间接,如果我在很多地方使用这个辅助方法,代码会变得更乱.此外,它有一些局限性.首先,重试次数不受辅助方法的约束.它由主管的监督策略管理,我认为这是凌乱的.此外,时间间隔是固定的,而在某些情况下,我会在每次重试时增加时间间隔.
我更喜欢可以使用HOCON配置的东西.或者可以作为交叉问题应用的东西.
我可以看到针对Scala的AKKA,针对Java的AKKA和AKKA.NET的各种建议.我见过路由器的例子,Circuit Breaker的例子(例如http://getakka.net/docs/CircuitBreaker#examples)等等.我也看到了一些使用与上述相同的想法的例子.但我觉得它应该更简单.也许它涉及一些AKKA持久性和事件的使用.
所以重复我的问题:经验丰富的AKKA开发人员如何使用最新的AKKA库来实现Java或.NET的重播消息模式?
我喜欢在进行单元测试时明确控制何时完成单元测试时传递完成回调的能力.任何人都可以解释在使用Angular 2时如何将其与依赖注入相结合?
更多背景:
具有回调函数的正常unittest如下所示:
it('should work with done', (done: Function) => {
setTimeout(() => {
a.test();
}, 1000);
a.test = () => {
console.log('zweiter test');
expect(true).toBeFalsy();
done();
};
Run Code Online (Sandbox Code Playgroud)
由角度2框架生成的单元测试使用注入,如下所示:
it('should be defined', inject([TxparserService], (service: TxparserService) => {
expect(service).toBeTruthy();
}));
Run Code Online (Sandbox Code Playgroud)
我想同时使用回调函数和依赖注入.那怎么样?
最近,我在启动新的 VS Code 窗口时开始出现此错误:
Cannot activate the 'Test Explorer UI' extension because it depends on the 'Test Adapter Converter' extension, which is not loaded. Would you like to reload the window to load the extension?
当我单击“重新加载”时,它会加载窗口并出现相同的错误。
任何解决该问题的帮助都将受到赞赏。
有关我的配置的更多详细信息:
vs代码:版本:1.57.1(通用)提交:507ce72a4466fbb27b715c3722558bb15afa9f48日期:2021-06-17T13:28:32.912Z(1个月前)电子:12.0.7 Chrome:89.0.4389.128 Node.js:14。 16.0 V8: 8.9.255.25-电子.0 操作系统:Darwin x64 20.5.0
测试适配器转换器扩展v0.0.13
测试资源管理器 UI 扩展v2.20.4
PS:我还安装了另一个名为 Jest Runner 和 Jest Test Explorer 的扩展。
我正在为.NET核心(net46框架)创建xunit测试,我在获取应用程序的根路径时遇到问题,因此我可以找到appsettings.json之类的东西.
有人可以解释我如何能够实现以下目标之一:
获取IHostingEnvironment的实例
检索包含xunit测试的.NET项目的绝对路径,这样我就可以自己实现IHostingEnvironment.
这可能是一个非常简单的问题,我似乎无法找到一个好的解决方案.
我有点困惑如何在 .NET Core 应用程序中配置 AKKA.NET,其中 App.config 已被 project.json 替换。
AKKA.NET 还会寻找 App.Config 吗?或者我应该以某种方式将 HOCON 配置放入 project.json 中?
推荐的做法是什么?
编辑:更多的尝试和错误已验证可以将 App.config 文件添加到 .NET Core 项目并包含 hocon 部分,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="akka" type="Akka.Configuration.Hocon.AkkaConfigurationSection, Akka" />
</configSections>
<akka>
<hocon>
<![CDATA[
akka {
actor {
serializers {
wire = "Akka.Serialization.WireSerializer, Akka.Serialization.Wire"
}
serialization-bindings {
"System.Object" = wire
}
}
}
]]>
</hocon>
</akka>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我仍然想知道推荐的做法是什么。
我正在尝试将 AKKA 集成到使用 ASP.NET Core 在框架 net46 上构建的 IoT 应用程序中。我试图找到最好的方法,并希望对这个问题有任何评论,尽管它有点长。基于在 Java 和 AKKA.NET 中使用 AKKA 的经验的这两条评论都是相关的。
简而言之,我需要 AKKA.NET 从远程设备接收物联网消息并执行相当复杂的处理逻辑。
对于 IoT 通信,我们使用 Azure IoT 中心。物联网消息由多线程控制台应用程序使用,遵循 Microsoft 此处的指南:
https://azure.microsoft.com/da-dk/documentation/articles/iot-hub-csharp-csharp-process-d2c/
同时,我们正在使用依赖注入和所有最新的最佳实践运行标准的 ASP.NET Core(框架 net46)应用程序。
我需要 AKKA.NET 来接管 IOT 消费者应用程序内部进行的部分处理以及 ASP.NET 应用程序内部进行的部分处理。
我看到以下三个解决方案,我很好奇更有经验的 AKKA 开发人员会推荐哪种解决方案。我自己的直觉是解决方案 1 是首选,请参阅下面的我自己的论点:
方案一:新建一个基于AKKA.NET的Console应用,使用AKKA.Remoting与ASP.NET应用和IoT消费者应用进行通信。这意味着所有参与者逻辑都将封装在一个隔离的控制台应用程序中。当然,AKKA.NET 也将在 ASP.NET 应用程序和 IoT 消费者应用程序中引用和使用,但仅用于发送远程消息。
解决方案 2:在 ASP.NET 应用程序中直接使用 AKKA.NET,并使用 AKKA.Remoting 与 Iot 消费者应用程序进行通信。这意味着 ASP.NET 应用程序将使用 Actor 逻辑与现有的基于控制器、等待/异步等的传统 ASP.NET 逻辑并行扩展。
方案三:方案二的反面,即在IoT消费者应用内直接使用AKKA.NET,使用AKKA.Remoting与ASP.NET应用进行通信。
可能还有更多变化,例如在 ASP.NET 和 IoT 消费者应用程序中集成 AKKA.NET 逻辑,但我不喜欢在不同应用程序中运行 actor 的想法,至少在我所处的早期阶段不喜欢试图建立一个干净的新的基于演员的实现。
以下是我对解决方案 1 的论点:
有人告诉我,如果配置正确,AKKA.NET 能够以最佳方式利用所有核心,而无需上下文切换。为了能够分析和优化配置,我更喜欢为 …
我正在使用 AKKA.NET 在 .NET Core 控制台应用程序(框架 net46)中构建异步处理逻辑。
到目前为止,我已经使用内置的依赖注入来提供对我的 IDbConnection 对象(或 ApplicationDbContext for EF)的访问。这使得单元测试变得容易。
在处理从 Actor 内部访问数据库时,我非常怀疑什么是最佳实践。
一个简单的方法是编写这样的旧使用块:
using(var db = new ApplicationDbContext()) {
...query, modify and save objects using the db object
}
Run Code Online (Sandbox Code Playgroud)
并完全忽略 DI 容器。
我很想知道,在这种情况下,经验丰富的 AKKA 开发人员认为最佳实践是什么?
.net-core ×4
akka.net ×4
akka ×3
angular ×2
xunit ×2
.net ×1
actor ×1
apache-kafka ×1
asp.net-core ×1
asynchronous ×1
jasmine ×1
node.js ×1
scala ×1
webpack ×1