个人简介

Echo Blog


江湖无名 安心练剑
  • Servlet
    Servlet Servlet 是用于扩展和增强Web服务器的Java平台技术。 servlet提供了一种基于组件的、独立于平台的方法来构建基于web的应用程序,而不受CGI程序的性能限制。与专有的服务器扩展机制(如Netscape服务器API或Apache模块)不同,servlet是独立于服务器和平台的。这使您可以自由地为您的服务器、平台和工具选择“最佳品种”策略。 servlet可...
    2018-09-05 03:45:07 | Protocol
  • Tomcat
    Tomcat Apache Tomcat® 是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。 由于Tomcat本身也内含了一个HTTP...
    2018-09-05 03:45:07 | Container
  • Distributed ID
    需求 几乎所有的业务系统,都有生成一个唯一记录标识的需求。 这就引出了记录标识生成(也就是上文提到的三个XXX-id)的两大核心需求: 全局唯一 趋势有序 这也是本文要讨论的核心问题:如何高效生成趋势有序的全局唯一ID。 UUID 策略 UUID/GUID 生成的唯一标识。 优缺点 优点 本地调用,全局唯一。 缺...
    2018-09-05 00:53:10 | Distributed
  • 分布式标识 Distributed ID-05-系统时钟,高并发下的时间优化
    高并发下的时间戳优化 /** * <p> * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the L...
    2018-09-05 00:53:10 | Distributed
  • Distributed ID-04-SnowFlake
    概述 分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。 有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移到Cassandra,因为Cassand...
    2018-09-05 00:53:10 | Distributed
  • 分布式标识 Distributed ID-03-Random
    实现方式 package com.github.houbb.heaven.util.id.impl; import com.github.houbb.heaven.annotation.ThreadSafe; import com.github.houbb.heaven.util.id.Id; import com.github.houbb.heaven.util.util.DateUt...
    2018-09-05 00:53:10 | Distributed
  • 分布式标识 Distributed ID-02-UUID
    UUID 基本实现 @Override public String genId() { return UUID.randomUUID().toString() .replaceAll(PunctuationConst.MIDDLE_LINE, PunctuationConst.EMPTY); } 测试代码 System.out.println(new...
    2018-09-05 00:53:10 | Distributed
  • 分布式标识 Distributed ID-01-Overview
    分布式 ID 生成的需求 不依赖数据库。 详细理解原理 (1)写文件。提前取1000个,然后将下一个值写入文件。 (2)预取+时间戳+线程好+机器码 时间时钟怎么保持一致? id 递增的线程安全,持久化。 基础知识 网卡 线程 并发安全 持久化 (如果递增) 位运算,进制转换。 常见参考实现 UUID GUID timestampe+randomNum snowf...
    2018-09-05 00:53:10 | Distributed