草庐IT

同步到Kafka

全部标签

java - 有条件地定义同步块(synchronized block)

假设我有一个方法:publicvoidrun(){synchronized(this.foo){}}但有时当我运行这个方法时,我不需要同步任何东西。什么是有条件地同步某些东西的好模式?我能想到的唯一模式是回调,像这样:publicvoidconditionalSync(Runnabler){if(bar){r.run();return;}synchronized(this.foo){r.run();}}publicvoidrun(){this.conditionalSync(()->{});}还有没有回调的其他方法吗? 最佳答案 也

java - 如何使用 Java 检测同步冲突

我想知道有什么好的方法可以对同步或其他东西进行断言,以便我可以检测同步违规(在测试时)。例如,如果我有一个不是线程安全的类并且也不会是线程安全的,那将用于这种情况。如果从多个线程调用它的某些方法,我会有一些断言会通知我(日志或其他东西)。我渴望可以为AWT调度线程制作类似的东西:publicstaticvoidcheckDispatchThread(){if(!SwingUtilities.isEventDispatchThread()){thrownewRuntimeException("GUIchangemadeoutsideAWTdispatchthread");}}我只想要更通

java - 从 native 代码访问 java 同步方法

我有一个java类,它有一些(私有(private)静态)同步方法,我也想从native代码调用这些方法。通过一些示例代码,我的意思变得更加清楚publicclassSomeClass{privatestaticsynchronizedvoidmethod(){//dosomethingthatneedssynchronization}}和相关的native代码(C++)voidsomeFunction(JNIEnv*env){jclasssomeClass=env->findClass("SomeClass");jmethodIDmethodId=env->GetStaticMeth

java - 更好的解决方案而不是 Java 中的嵌套同步块(synchronized block)?

我有一个Bank类,其中包含一个Account列表。银行有一个transfer()方法可以将一个账户的值转移到另一个账户。这个想法是在转账中同时锁定from和to帐户。为了解决这个问题,我有以下代码(请记住这是一个非常简单的例子,因为它只是一个例子):publicclassAccount{privateintmBalance;publicAccount(){mBalance=0;}publicvoidwithdraw(intvalue){mBalance-=value;}publicvoiddeposit(intvalue){mBalance+=value;}}publicclassB

Kafka运维相关知识

目录一、基本概念二、技术特性三、设计思想四、运维建议一、基本概念  Apachekafka是一个分布式的基于push-subscribe的消息系统,它具备快速、可扩展、可持久化的特点。它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/spark流式处理引擎。Producer:Producer即生产者,消息的产生者,是消息的入口。kafkacluster:Broker:Broker是kafka实例,每个服务器上有一个或多个kafka的实例,我们姑且认为每个broker对应一台服务器。每个kafka集群内的broker都有一

【Obsidian】【Git】使用gitee同步/保存obsidian笔记

Obisidian是一款markdown软件,使用它可以方便地记笔记、记录科研日常。然而如果在多个设备上使用obsidian,会牵扯到笔记/vault/仓库同步问题。下面来介绍如何用git管理obsidian。1.创建gitee账号略2.下载Obsidian略3.新建git仓库3.1在gitee上新建仓库3.2链接本地仓库3.2.1在本地创建一个文件夹用于以后存放笔记3.2.2cd到这个文件夹里面3.2.3初始化本地仓库输入下面指令gitinit3.2.4用obsidian打开这个仓库(文件夹/vault)3.2.5链接本地仓库和远程仓库复制gitee仓库的ssh地址打开控制台,输入下面的命令

java - 如果不会发生争用,读取时是否需要同步

考虑下面的代码狙击手:packagesync;publicclassLockQuestion{privateStringmutable;publicsynchronizedvoidsetMutable(Stringmutable){this.mutable=mutable;}publicStringgetMutable(){returnmutable;}}在时间Time1线程Thread1将更新“可变”变量。setter中需要同步,以便将内存从本地缓存刷新到主内存。在时间Time2(Time2>Time1,无线程争用)线程Thread2将读取可变值。问题是——我需要把synchroni

实现mysql和es数据同步的两大工具——Logstash和Canal

 用途在大型实战项目开发过程中,当数据量达到比较大的规模时,不可避免的要考虑使用ElasticSearch(es)等搜索引擎来解决大量数据的查询性能压力,因此,做好mysql的数据同步变得至关重要。我所了解,并且使用的是通过Logstash和Canal中间件,来实现将数据写入到ES等中。一、实现同步原理1.1  LogstashLogstash提供了一个JDBC插件,它可以定期查询数据库并捕获变化。通过配置Logstash指定连接到mysql的哪个表和es的哪个索引库,并指定对应的查询语句。当MySQL中的数据发生变化时,Logstash的JDBC插件会定时的检测到这些变化,并且迅速捕获这些新

java - Java中有同步队列吗?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。Java中有同步的Queue类吗?我正在寻找类似Vector(同步)与ArrayList(不是)之类的东西,但不是实现List接口(interface),我正在寻找它来实现Queue。请注意,没有Collections.synchronizedQueue方法来包装未同步的队列并使其同步。

java - 跨 JVM 同步方法

如何跨JVM同步方法?我的示例是一个Web应用程序,它限制一个用户名不能多次登录(换句话说,第一个用户可以登录,但如果另一个用户使用相同的用户名登录,他将被拒绝)。Web应用程序部署在多个服务器上,因此存在多个JVM,并且用户可以尝试使用不同的服务器登录,具体取决于负载均衡器。方法是这样的publicsynchronizedstaticSessionDatalogonSync(StringuserName,Stringpassword)throwsException{intcount=DB.count("sessions","WHEREuser_name=?",userName);if