如何实现分布式id,一般会给出这几种方案
- 使用数据库自增Id
- 使用reids的incr命令
- 使用UUID
- Twitter的snowflake算法
- 利用zookeeper生成唯一ID
- MongoDB的ObjectId
mongodb如何实现分布式ID
MongoDB的ObjectId设计成轻量型的,不同的机器都能用全局唯一的同种方法方便地生成它。MongoDB 从一开始就设计用来作为分布式数据库,处理多个节点是一个核心要求。使其在分片环境中要容易生成得多。
实现方式
1.引入mongodb依赖
<!--mongodb -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2.创建一个实体类
public class Customer {
@Id
public String id;
public String firstName;
public String lastName;
public Customer() {}
此处省略get,set
}
3.创建mongodb 接口类
public interface CustomerRepository extends MongoRepository<Customer, String> {
public Customer findByFirstName(String firstName);
public List<Customer> findByLastName(String lastName);
}
4.测试类
@Autowired
CustomerRepository customerRepository;
@Test
public void mongodbIdTest(){
Customer customer=new Customer("lxdxil","dd");
customer=customerRepository.save(customer);
logger.info( "mongodbId:"+customer.getId());
}
来源:oschina
链接:https://my.oschina.net/u/3032095/blog/1824341