Comments (11)
如何用一句话激怒程序员?———— “方便加你QQ吗?我QQ 946530182”
from ssm.
@baikimi 哥们真不是我说。。。请不要在该issue回复,这个仅仅作为模板显示作用。
有问题可以提Issues,或者是邮件都可以。
但在提问之前建议你看下 http://www.jianshu.com/p/60dd8e9cd12f 这样更加事半功倍。
from ssm.
刚才了解决了 那这个呢
2017-08-29 11:14:28,079 DEBUG [org.apache.zookeeper.ClientCnxnSocketNIO] - Ignoring exception during shutdown output
java.nio.channels.ClosedChannelException
at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:797)
at sun.nio.ch.SocketAdaptor.shutdownOutput(SocketAdaptor.java:407)
at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:207)
at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1185)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1110)
2017-08-29 11:14:29,182 INFO [org.apache.zookeeper.ClientCnxn] - Opening socket connection to server 192.168.0.188/192.168.0.188:2181. Will not attempt to authenticate using SASL (unknown error)
2017-08-29 11:14:50,184 WARN [org.apache.zookeeper.ClientCnxn] - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
2017-08-29 11:14:50,184 DEBUG [org.apache.zookeeper.ClientCnxnSocketNIO] - Ignoring exception during shutdown input
java.nio.channels.ClosedChannelException
from ssm.
@baikimi 请不要在该Issues回复,提Issues按照模板重新提交。
from ssm.
方便加你QQ吗?
想向你学习,如果方便我QQ 946530182
from ssm.
秒杀那个,kafka消费端要多台机器,消费一定要快,如果不快的话,由于你前边都是乐观锁,队列里边会有很多版本号一样的,这样就会有很多数据到了后期消费的时候,是失败的(当然你做了限流),然后我有个疑问是:我有多台机器去消费,比如ABC三台consumer,我用kafka的广播模式,同一条消息会被ABC得到消费,只有由于乐观锁的原因,消息在A创建了订单,在B和C都拒绝了,那这样其实ABC三台机器都是瓶颈(他们有必要不重复接受),如果我让1-26条消息,1-10让A消费,11-20让B消费,21-26让C消费,这样就得使用单播模式,,,单播模式可能就要指定分区生产和指定分区消费,这样的话扩展性不灵活,,,,楼主有没有什么方案?
from ssm.
我用kafka的广播模式,同一条消息会被ABC得到消费,
如果是采取的消费组模式,同时 group.id
是一样的那肯定不会被 ABC 都取到消息,只会有一个消费者拿到消息。
from ssm.
我用kafka的广播模式,同一条消息会被ABC得到消费,
如果是采取的消费组模式,同时
group.id
是一样的那肯定不会被 ABC 都取到消息,只会有一个消费者拿到消息。
那这样,得到消费机会的那台机器会一直得到消费机会,其他的2台一直得不到消费机会。多态部署也就失去意思了,,啊~~~~好矛盾~~~
from ssm.
那这样,得到消费机会的那台机器会一直得到消费机会,其他的2台一直得不到消费机会。多态部署也就失去意思了,,啊~~~~好矛盾~~~
并不会啊,假设一个 Topic
有 4 个分区,启动了三个进程去消费这个 Topic
。
- A 进程启动了 2 个
Consumer
实例。 - B 进程 3 个
Consumer
实例。 - C 进程 3 个
Consumer
实例。
当三个进程都启动起来一定会出现有些进程能取到数据,有些不能。
但总共加起来一定是 4 个 Consumer
实例消费到数据,只是随机分配在三个进程中的。
假设现在是 A 进程和 B 进程中各有两个 Consumer 实例在消费数据(2+2=4 分区数
)。
这时进程 C 宕机了,Kafka
就会自动选择 B 进程中那个空闲的 Consumer
去消费数据(也就是 Consumer
的 Rebalance
)。
这样也就达到了多台部署的作用了:容错性,挂掉一台其他的 Consumer
还可以接着消费。
from ssm.
那这样,得到消费机会的那台机器会一直得到消费机会,其他的2台一直得不到消费机会。多态部署也就失去意思了,,啊~~~~好矛盾~~~
并不会啊,假设一个
Topic
有 4 个分区,启动了三个进程去消费这个Topic
。
- A 进程启动了 2 个
Consumer
实例。- B 进程 3 个
Consumer
实例。- C 进程 3 个
Consumer
实例。当三个进程都启动起来一定会出现有些进程能取到数据,有些不能。
但总共加起来一定是 4 个
Consumer
实例消费到数据,只是随机分配在三个进程中的。假设现在是 A 进程和 B 进程中各有两个 Consumer 实例在消费数据(
2+2=4 分区数
)。这时进程 C 宕机了,
Kafka
就会自动选择 B 进程中那个空闲的Consumer
去消费数据(也就是Consumer
的Rebalance
)。这样也就达到了多台部署的作用了:容错性,挂掉一台其他的
Consumer
还可以接着消费。
我看了一下这张图 好像明白你说的什么意思了。http://kafka.apache.org/documentation/#intro_consumers
就拿这张图来说, 我是这样理解的:有26条消息,生产的时候,1-10可能去了p0,10-15可能去了p2,16-20可能去了p3,20-26可能去了p4(当然实际是随机放到某个分区),然后消费的时候,就像图片里边那样画的去消费,但是,比如说在p0里边的一条消息A,会被C1和C3收到,由于咱们的秒杀系统,一次购买只能生成一个订单,也就是说A要么在C1产生订单,要么在C3产生订单,那么在这种模式下(一个topic多了broker,一个topic多个分区,2个不同的groupid订阅了同一个topic),肯定要加分布式锁,A被C1消费了,C3不能再生成订单。
from ssm.
是的,如果 Topic
有多个分区肯定得分布式锁才行。但这样加锁解锁后的效率也会降低。
所以我建议对于秒杀这样的场景 Topic
只需要一个分区即可,这样可以保证信息的顺序以及避免使用锁,直接将请求由并行变为串行。
不过这样吞吐量就会下降,但对于秒杀来说吞吐量本身就不高,我觉得是可以接受的。
from ssm.
Related Issues (20)
- 小弟新手,导入项目运行不起来是什么原因 HOT 6
- 你好,我这里还缺少一个jar包,是什么情况? HOT 8
- SSM-SECONDS-KILL
- 运行错误 HOT 10
- web搜查按钮保存, HOT 1
- 您好,无处寻找私信您的方式,只能给您发issue了 HOT 3
- 启动redis异常 HOT 5
- java.lang.NoSuchMethodError HOT 4
- 为什么master分支用不了,redisTemplate报错 HOT 4
- SSM-SECOND-KILL-API是用来干嘛的? HOT 3
- Please check your account security HOT 2
- 版本:2.1.0 HOT 2
- Some confusing stuffs about this project and starting guide
- 首先肯定您的代码非常棒!只是,对于ssm学习不久的人来说,单独只想学shiro,所有代码放在一起,真的很不方便学习呢 HOT 1
- 想按博客一步一步做,但是不能按照每个功能点来看源码
- com.crossoverJie.request.anotation不存在 HOT 1
- 秒杀架构实践单机版 HOT 1
- FORK
- 工程结构问题 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ssm.