我使用Java Producer API将String-messages发送到Kafka V. 0.8.如果邮件大小约为15 MB,我会得到一个MessageSizeTooLargeException.我试图设置message.max.bytes为40 MB,但我仍然得到例外.小消息没有问题.
(例外情况出现在制作人中,我在此应用程序中没有使用者.)
我该怎么做才能摆脱这种异常?
private ProducerConfig kafkaConfig() {
Properties props = new Properties();
props.put("metadata.broker.list", BROKERS);
props.put("serializer.class", "kafka.serializer.StringEncoder");
props.put("request.required.acks", "1");
props.put("message.max.bytes", "" + 1024 * 1024 * 40);
return new ProducerConfig(props);
}
Run Code Online (Sandbox Code Playgroud)
4709 [main] WARN kafka.producer.async.DefaultEventHandler - Produce request with correlation id 214 failed due to [datasift,0]: kafka.common.MessageSizeTooLargeException
4869 [main] WARN kafka.producer.async.DefaultEventHandler - Produce request with correlation id 217 failed due to [datasift,0]: kafka.common.MessageSizeTooLargeException
5035 [main] WARN kafka.producer.async.DefaultEventHandler - Produce …Run Code Online (Sandbox Code Playgroud) 我想在Monoose中将两个OR查询与AND组合在一起,就像在这个SQL语句中一样:
SELECT * FROM ... WHERE (a = 1 OR b = 1) AND (c=1 OR d=1)
Run Code Online (Sandbox Code Playgroud)
我在NodeJS模块中尝试了这个,它只从主应用程序中获取模型对象:
/********** Main application ***********/
var query = MyModel.find({});
myModule1.addCondition(query);
myModule2.addCondition(query);
query.exec(...)
/************ myModule1 ***************/
exports.addCondition = function(query) {
query.or({a: 1}, {b: 1});
}
/************ myModule2 ***************/
exports.addCondition = function(query) {
query.or({c: 1}, {d: 1});
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,所有OR条件将像在此SQL语句中一样连接在一起:
SELECT * FROM ... WHERE a = 1 OR b = 1 OR c=1 OR d=1
Run Code Online (Sandbox Code Playgroud)
如何在Mongoose中结合AND myModule1和myModule2AND 的两个条件?
我想自动为我的Java Play 2.3应用程序构建文档.目前,我使用Makefile从*.dot文件生成图像,并将Markdown源合并为Html/PDF:
dot diagram1.dot -Tpdf -o diagram1.pdf
dot diagram2.dot -Tpdf -o diagram2.pdf
pandoc doc1.markdown -o doc1.pdf
# ...
Run Code Online (Sandbox Code Playgroud)
现在我想直接从SBT运行这些简单的bash命令.最好的方法是什么?
我在SBT参考中找到了一些SBT Documentation插件,但没有任何东西可以运行简单的shell脚本.
我是一个绝对的NodeJS初学者,想要用Express和Mongoose创建一个简单的REST-Web服务.
什么是在一个中心位置处理猫鼬错误的最佳做法?
当发生数据库错误的任何地方时,我想返回一个带有错误消息的Http-500-Error-Page:
if(error) {
res.writeHead(500, {'Content-Type': 'application/json'});
res.write('{error: "' + error + '"}');
res.end();
}
Run Code Online (Sandbox Code Playgroud)
在旧教程http://blog-next-stage.learnboost.com/mongoose/中我读到了一个全局错误监听器:
Mongoose.addListener('error',function(errObj,scope_of_error));
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用,我在Mongoose官方文档中找不到关于这个监听器的东西.我是否在每次Mongo请求后检查错误?
我需要一些Scala Play 2.0应用程序中的测试资源(文本文件).我在哪里可以放这些文件?
在maven应用程序中,我会将它们放入src/test/resources,但我在Play文档中找不到有关同等目录的任何内容.
我可以将它们放在conf目录中,但我在测试应用程序时只需要它们.
我已经创建了使用配置在播放应用(2.1)conf/application.conf在Hocon格式.
我想在配置中添加一系列项目.该文件conf/application.conf如下所示:
...
projects = [
{name: "SO", url: "http://stackoverflow.com/"},
{name: "google", url: "http://google.com"}
]
Run Code Online (Sandbox Code Playgroud)
我尝试在Scala项目中阅读此配置:
import scala.collection.JavaConversions._
case class Project(name: String, url: String)
val projectList: List[Project] =
Play.maybeApplication.map{x =>
val simpleConfig = x.configration.getObjectList("projects").map{y =>
y.toList.map{z =>
Project(z.get("name").toString, z.get("url").toString) // ?!? doesn't work
...
}}}}}}}} // *arg*
Run Code Online (Sandbox Code Playgroud)
这种方法似乎非常复杂,我很多都丢失了Options,而且我的Eclipse IDE无法给出任何关于类的提示.
有没有人举例说明如何从Hocon配置文件中读取对象数组?或者我应该使用带有JSON解析器而不是Hocon的JSON文件?
如何使用Play 2在模板中编码URL?
我搜索一个这样的帮手:
<a href="@urlEncode(name)">urlEncode doesn't work now</a>
Run Code Online (Sandbox Code Playgroud)
我找到了一个pull请求,但这似乎不适用于实际的play 2.0.3版本.
如何检查Mongoose模型的remove-method是否真的删除了某些东西?
MyModel.remove({_id: myId}, function(err, entry) {
if(entry == null) next(new Error("ID was not found.")); // this doesn't work
}
Run Code Online (Sandbox Code Playgroud)
我可以查看删除了多少文件?
在Mongo-Documentation kristina1中写下评论:
如果在删除后调用db.runCommand({getLastError:1}),则"n"字段将告诉您删除了多少文档.
但我不知道如何用Mongoose做到这一点.
我使用 NextJS 生成静态页面列表。
所有页面都需要一个大的静态 Javascript 对象,该对象需要几分钟来初始化(它包含解析许多其他文件的结果)。
const bigData = initializeBigData(); // <- called for every page, instead once
export async function getStaticProps({ params }) {
return { bigData[params.slug] }; // ...
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我找不到一次初始化该数据对象的方法。initializeBigData()相反,每次创建页面时都会运行缓慢,这使得构建非常慢。
我尝试过以下操作:
npm run build --threads=1initializeBigData()所有这些都没有改变,在构建网站时,每个页面都会调用long 。
如果可能的话,我不想使用自定义服务器。
如何在 NextJS 项目的构建过程中只初始化一次对象?
一个JGit-初学者问题:
我使用JGit从存储库中读取文件(BLOB)并操纵其内容.之后,我想将具有相同文件名的新内容作为新提交写回存储库.但是如何使用JGit提交新内容?
我的伪代码:
String gitUrl = "path/to/repository/.git";
Repository repository = new FileRepository(gitUrl);
String filename = "test/seppl.txt";
blobId = getIdOf(filename);
ObjectLoader object = repository.open(blobId, Constants.OBJ_BLOB);
ObjectStream is = object.openStream();
String newContent = processStream(is);
// How to commit the newContent in filename?
Run Code Online (Sandbox Code Playgroud)
我是否必须将newContent文件写入文件并使用AddCommand和CommitCommand提交此文件?或者我可以使用相同的文件名将"即时"字符串写入存储库吗?
Web中是否有任何例子如何使用JGit进行提交?