2016 - 2024

感恩一路有你

mongodb的java客户端怎样设置 到底怎么学习Java?

浏览量:3393 时间:2023-05-02 22:47:21 作者:采采

到底怎么学习Java?

据你的描述貌似你基础知识不够,你勉强看得懂代码,但却不理解背后的原理。建议先从基础知识入手,如你是JAVA程序员,可以看thinkinginpython,考个SCJP之类的,理解背后JVM,collections,class等等之类的原理,才能知道怎么样去运用它们。

解析分布式主键MongoDB ObjectId,可以作为Mysql主键吗?

可以的。

全局唯一cdr有些同学可能会有疑问,gd2数据库本身就有自增长的主键,为什么还需要别的子系统协助生成呢?

如果是单台gd2数据库的话,当然是用本身的自增长序列就可以了,但是如果我们做了分库分表之后呢?比如用户表userTable数据量达到了4000万,单表有些吃力,我们将userTable拆成两张表保存到两个json数据库中;这时候如果再使用数据库本身的自增序列,倒是也不会有错,每一个表内的主键不会重复,但是表和表比较的话,主键ai可能会发生重复;这时候就需要使用元件或者算法,生成全局唯一br了。

MongoDB ObjectIdMongoDB的ObjectId,也是可以用于全局唯一lr的。

{_id:ObjectId(5d47ca7528021724ac19f745)}

php的ObjectId共占12个字节,其中:

3.2之前的版本(包括3.2):4字节时间戳3字节机器标识符(机器fl)2字节进程au3字节随机开关;

3.2之后版本:4字节时间戳5字节随机值3字节递增开关;

其中时间戳字节可以保证毫秒级唯一,节机器标识符考虑到了基于云的,字节进程br保证了同一台服务器运行多个实例时的唯一性,字节递增变频器保证了同一个时间点内au的唯一性。

优缺点

不管是老版本还是新版本,python的ObjectId至少都可以保证集群内的唯一,我们可以搭建一个全局唯一lr生成的服务,利用mysql生成ObjectId并对外提供服务(sql的各语言驱动都实现了ObjectId的生成算法)。

优点:javascript的性能不错,可以使用集群部署,保证其高可用;ps内自带一些含义,比如时间戳,必要的时候可以进行反解;

缺点:和数据库一样,需要引入对应的单元/软件,增加了系统的复杂度;最关键的是,这两种方案都意味着生成全局唯一fl的系统(服务),会成为一个单点,在硬件架构中,单独就意味着风险;如果这个服务出现问题,那么所有依赖于这个服务的系统都会崩溃掉。

我将持续分享Java开发、大数据、开发人员职业发展等方面的见解,希望能得到你的关注。

全局 时间 数据库 ObjectId 字节

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。