草庐IT

同步到Kafka

全部标签

java - 同步死锁(String intern())

我使用sunjdk1.5ThreadPoolExecutor(24,24,60,TimeUnit.SECONDS,newLinkedBlockingQueue())。soemtime我用jdb工具发现线程池中所有线程的状态都是“waitinginamonitor”,代码是:Stringkey=getKey(dt.getPrefix(),id);synchronized(key.intern()){----->“synchronized(key.intern())”有问题吗?我使用jdb工具得到以下信息,24个线程的状态是“waitinginamonitor”,这意味着24个线程在“ke

Java:是否所有静态方法都需要同步?

我有一个friend说,在JavaWeb应用程序的上下文中,所有静态方法都应该同步。真的吗?我已经阅读了许多其他关于此的堆栈溢出页面。我逐渐相信,只有在满足以下条件时才需要同步:多线程(如在带有线程池的Sevlet容器中)单个类加载器线程间的共享数据,无论是Session数据还是静态成员数据。共享数据必须是可变的。只读数据可以共享。基于此我认为应该同步静态成员,而不是静态方法。importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;publicclassThreadTest{stat

24 | Kafka的协调服务ZooKeeper:实现分布式系统的“瑞士军刀”

上节一起学习了RocketMQNameServer的源代码,RocketMQ的NameServer虽然设计非常简洁,但很好地解决了路由寻址的问题。而Kafka却采用了完全不同的设计思路,它选择使用ZooKeeper这样一个分布式协调服务来实现和RocketMQ的NameServer差不多的功能。这节先简单了解一下ZooKeeper,然后再来一起学习一下Kafka是如何借助ZooKeeper来构建集群,实现路由寻址的。ZooKeeper的作用是什么?ApacheZooKeeper它是一个非常特殊的中间件,为什么这么说呢?一般来说,像中间件类的开源产品,大多遵循“做一件事,并做好它。”这样的UNI

java - 如何检查线程是否在同步块(synchronized block)或方法内?

我的Java应用程序使用两个线程。从历史上看,有同步方法和专用锁对象在使用中。我需要知道当前线程是否有锁,是通过方法还是通过对象。我该怎么做? 最佳答案 当进入同步方法时,VM会在当前对象上设置一个锁。因此下面的代码具有相同的效果:synchronizedvoidsyncMethod(){//dosomething}voidsyncManually(){synchronized(this){//dosomething}}这意味着同步方法与synchronized(lock){//dosomething}代码中的任何位置。您可以使用T

java 同步方法 - 它是如何工作的

我想我知道这一点,但希望得到证实。显然synchronized会阻止其他线程访问它,但我看到了很多例子,例如publicsynchronizedvoidsetValue(intvalue){balance=value;}我的想法是否正确,如果方法像上面那样只执行一行,那么同步就没有意义了。谢谢 最佳答案 AmIrightinthinking,thatifthemethodonlydoesonelineliketheabove,thenthereisnopointinitbeingsynchronized.没有。您似乎认为同步仅意味着

kafka基础,java四年工作经验面试题

一、字节跳动技术一面(算法)Java的16进制与字符串的相互转换函数JAVA时间格式化处理将毫秒转化为日期文本的倒序输出判断一个数字是奇数还是偶数用Hibernate实现分页35选7彩票程序获取GMT8时间中文乱码转换小标签Big5字与Unicode的互换取得服务器当前的各种具体时间用半角的特殊符号代替全角的特殊符号数组和数组之间的转换代码从资源文件里读取值的类一个随机类计算传入值是否星期六转换文件大小Java日期格式化及其使用例子Java几个常用方法判断字符是否属于中文去掉字符串中重复的子字符串将指定byte数组以16进制的形式打印到控制台获得任意一个整数的阶乘,递归拷贝一个目录或者文件到指

java - Java同步HashMap中的size()、put()、remove()、get()是原子的吗?

我将JavaMap声明为Mapmap=Collections.synchronizedMap(newHashMap());处理并发问题,对map上的所有操作进行同步。但是,我读到当操作是原子操作时,同步在synchronizedMap上不是必需的。我检查了JavaAPI,HashMap的文档似乎没有提到哪些是原子的,所以我不确定哪些是原子的。我正在同步对map的以下调用:map.size()map.put()map.remove()map.get()但是如果有些是原子的,那么似乎不需要同步。哪些是原子的? 最佳答案 同步map顾名思

java - 如何创建 Google Guava 的 TreeMultimap 的同步版本

有谁知道如何创建线程安全的TreeMultimap实例TreeMultimap.create()? 最佳答案 GuavaMultimaps类包含用于创建和修饰Multimap的静态方法,类似于java.util中的Collections类为Collections和Maps提供的方法。在你的情况下,你应该使用:Multimaps.synchronizedSortedSetMultimap(TreeMultimap.create()) 关于java-如何创建GoogleGuava的TreeM

Kafka生产常见问题分析与总结

Kafka生产常见问题分析与总结消息丢失生产者acks=0不需要等待任何Broker确认收到消息的回复就可以继续发消息性能最高,但是最容易丢消息,对于数据丢失不敏感的场景可以使用,如大数据统计报表acks=1只要等待Broker中的leader成功写入数据成功就可以继续发消息如果follower没有成功备份数据而此时leader刚好挂了,就会丢消息acks=-1或all等待Broker中的leader、follower都写入成功才可以继续发消息只要保证有一个副本存活就不会丢消息,一般使用在金融场景,当然如果配置副本只有一个也可能会丢消息跟acks=1情况类似消费者如果消费者配置的是自动提交,恰

java - 为什么即使同步了列表也会出现ConcurrentModificationException?

我有Android多线程应用程序。两个或多个触发器可能会运行同一部分代码。我有一个对象列表。我让它被Collections.synchronizedList同步privateListmGroupItemSampleList;mGroupItemSampleList=newArrayList();mGroupItemSampleList=Collections.synchronizedList(mGroupItemSampleList);但是有时我在线上遇到异常:Collections.sort(mGroupItemSampleList,newGroupItemSampleCompara