小编Pau*_*ard的帖子

向主机Kafka服务器生成消息时出现容器化的Kafka客户端错误

stackoverflow上有许多类似的查询类型,但没有一个与我看到的问题完全匹配.

我的服务器上有一个zookeeper/kafka设置,可以很好地工作.一个人可以生产

bin/kafka-console-producer.sh --broker-list 192.168.2.80:9092 --topic test
Run Code Online (Sandbox Code Playgroud)

和消费

bin/kafka-console-consumer.sh --bootstrap-server 192.168.2.80:9092 --topic test --from-beginning
Run Code Online (Sandbox Code Playgroud)

本地在Linux Ubuntu 16.04服务器上.

从Docker容器 - 也运行Ubuntu 16.04 - 我想生产和消费.容器的Kafka代码是从服务器上复制的.首先,我可以创建一个新主题

bin/kafka-topics.sh --create --zookeeper 192.168.2.80:2181 --replication-factor 1 --partitions 1 --topic test2
Run Code Online (Sandbox Code Playgroud)

从容器中再次列出它

bin/kafka-topics.sh --list --zookeeper 192.168.2.80:2181
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用上面的(kafka-console-producer.sh)命令生成新消息时,它失败并显示以下消息:

[2017-06-05 13:59:05,317] ERROR Error when sending message to topic test2  with key: null, value: 2 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for test2-0: 1526 ms has passed since batch creation plus linger time
Run Code Online (Sandbox Code Playgroud)

输入消息文本后立即按Enter键.

在同一主机上运行Docker容器似乎很奇怪,但是一旦这个工作,我将把容器移动到一个单独的主机进行生产.

我的kafka server.properties文件:

listeners=PLAINTEXT://0.0.0.0:9092
Run Code Online (Sandbox Code Playgroud)

卡夫卡版: …

apache-kafka docker

7
推荐指数
2
解决办法
2715
查看次数

由于“签名错误”,具有早期构建 npm 的 Windows 10 无法安装任何模块

我正在我的全新 Windows 笔记本电脑(Windows 10 Pro,版本 20H2,内部版本 19042.1645)上安装 64 位 Node v7.10.1(使用 npm v4.2.0)。不幸的是,我的应用程序需要这个早期版本的 Node。到目前为止,我已经使用三个不同的进程安装了 Node:nvm for Windows、NVS 和直接下载。我扫描了网络寻找解决方案,发现了许多类似的问题,但可能的解决方案却很少。我的问题是npm install failed with bad signature error on Windows 的重复项,但那里的建议对我没有帮助。我觉得有必要重新提出这个问题。

安装 Node 并创建一个新的工作目录后,我发出命令 npm install path 我得到的响应是这样的:

npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "path"
npm ERR! node v7.10.1
npm ERR! npm  v4.2.0
npm ERR! code EPROTO
npm ERR! errno EPROTO
npm ERR! syscall write

npm ERR! write EPROTO 101057795:error:1408D07B:SSL routines:ssl3_get_key_exchange:bad signature:openssl\ssl\s3_clnt.c:2032:
npm ERR!
npm ERR!
npm ERR! If you …
Run Code Online (Sandbox Code Playgroud)

windows openssl node.js npm-install

5
推荐指数
1
解决办法
1066
查看次数

日期的 Flutter TextField 输入验证

我正在尝试编写一个日期输入控件,它接受像 23/12/1997 这样的日期。我希望它做的是自动为用户插入 / 字符。因此,当他们输入 23 时,侦听器返回 23/,这样他们就可以输入 12。此时,侦听器再次添加一个 /,让用户通过输入 1997 来完成日期。我的 TextEditingController 代码一半有效,如下所示:

final _controller = TextEditingController();
Run Code Online (Sandbox Code Playgroud)
_controller.addListener(() {
      String text = _controller.text;
      if (text.length == 2) {
        text += '/';
      }
      if (text.length == 5) {
        text += '/';
      }
      _controller.value = _controller.value.copyWith(
        text: text,
        selection:
            TextSelection(baseOffset: text.length, extentOffset: text.length),
        composing: TextRange.empty,
      );
      print(_controller.text);
    }
Run Code Online (Sandbox Code Playgroud)

所以它可以正常工作,直到用户出错并需要回溯。一旦 / 被删除,它会立即被替换,停止对日期的任何进一步编辑。

为了让它工作,我需要访问之前输入的文本,以确定用户是否正在退格。所以如果text == 23/ && previous_text == 23/1那时我可以从文本中删除 / 。

我发现这个问题textfield must only accept numbers,我认为它可能对我有帮助,但我不确定如何实现现有的小部件并覆盖其方法。当然,在 TextEditingController 中可能有更简单的方法来做到这一点?

validation date textfield dart flutter

3
推荐指数
1
解决办法
4372
查看次数