在java中创建消息id
我需要唯一标识我的应用程序中的消息。因此每条消息都应该包含它的 id。不过我有几个问题..
- 消息是否应该私下生成其 id 并且只为 id 提供 getter ?
- 创建 id 的最佳方法是什么? java中UUID类有什么替代品吗?
谢谢。
I need to uniquely identify messages in my app. Thus each message should contain its id. I have a couple of questions though..
- Should message generate its id privately and only provide getter for id?
- What is the best way to create ids? Any alternatives to UUID class in java?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
AtomicInteger
或AtomicLong
是很好的替代方案,可以同时使用而无需锁定。AtomicInteger
orAtomicLong
are good alternatives that can be used concurrectly without locking.如果没有更多上下文,我会回答:如果您关心速度,您总是可以有一个进程(在另一台机器上?)预先计算应用程序的 UUID。这样,应用程序就可以快速访问 UUID“池”。
人们不应该能够更改消息的 UID,否则还有什么意义?
UUID 类有什么问题?如果是关于速度,那么请参见上面。
Without more context I would answer: if you are concerned about speed, you could always have a process (on an other machine?) pre-compute the UUIDs for the application. This way, the application could have quick access to a "pool" of UUIDs.
One shouldn't be able to the change the UID of a message or else what is the point?
What's wrong with UUID class ? if it is about speed, then see above.