- 博客(15)
- 收藏
- 关注
转载 Twitter的分布式自增ID算法snowflake(有改动Java版)
分布式ID生成器 全局唯一ID生成 分布式纯数字ID其实这也不是Twitter独有的,mongodb也采用类似的方法生产自增ID。对于全局唯一ID的说明请参考我另一篇文章 : 高并发分布式环境中获取全局唯一ID[分布式数据库全局唯一主键生成]该算法最大的好处就是:纯数字;基本有序递增为了简单起见,我这里对snowflake算法进行了一点点修改,修改后的格式为:41位时间戳 |10位进程号 |12位...
2018-04-30 22:49:30 418
转载 分表分库后带来问题(主键冲突)
主键冲突问题分库分表的环境中,数据分布在不同的分片上,不能再借助数据库自增长特性直接生成,否则会造成不同分片上的数据表主键会重复。添加数据>主键生成中心>分库决策中心>切换相应库>执行添加 事务问题在执行分库分表之后,由于数据存储到了不同的库上,数据库事务管理出现了困难。如果依赖数据库本身的分布式事务管理功能去执行事务,将付出高昂的性能代价;如果由应用程序去协助控制,形成程...
2018-04-30 19:00:14 3196
转载 ReenTrantLock可重入锁(和synchronized的区别)总结
ReenTrantLock可重入锁(和synchronized的区别)总结可重入性:从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁。 锁的实现:Synchronized是依赖于JVM实现的,而ReenTran...
2018-04-27 03:53:44 164
转载 mysql死锁问题分析
线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。 为了更系统的分析问题,本文将从死锁检测、索引隔离级别与锁的关系、死锁成因、问题定位这五个方面来展开讨论。 图1 应用日志1 死...
2018-04-22 02:29:36 1623 1
原创 Java笔记
1、ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于双向链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。2...
2018-04-10 22:06:47 124
转载 @Transactional事务几点注意
这里面有几点需要大家留意:A. 一个功能是否要事务,必须纳入设计、编码考虑。不能仅仅完成了基本功能就ok。B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常、测试回滚),确保事务生效。C. 以下列了事务使用过程的注意事项,请大家留意。1. 不要在接口上声明@Transactional ,而要在具体类的方法上使用 @Transactional 注解,否则注解可能无效。2.不要图省事,将...
2018-04-10 18:45:02 273
转载 Linux环境下启动jar包的shell
#! /bin/shname="beautifulDistrict"Xmx=1024mXms=1024mXmn=512mPermSize=256mMaxPermSize=512mpid=${name}".pid"logName="all"jarName=`ls | grep -e "^\${name}.*jar$" | sort -r | head -n 1`start()...
2018-04-08 17:47:27 3661
转载 API 管理工具 Swagger 和 RAP 的比较
# 概述 微服务在当今的 web 开发中越来越盛行,前后端分离现在似乎也已成为中大型 Web 工程的基本模式,如何建立好前端调用和后端接口 (或者服务调用方和 API 提供方) 之间的契约,妥善处理好前端和后端之间的调用关系已经已经成为每个 web 项目开发前必须要考虑的一个问题,选择一个良好的 API 管理工具可以妥善处理好前端和后端开发人员的任务分工,使得项目开发可以达到事半功倍的效果。 之所...
2018-04-08 16:16:37 2214
转载 Java简历与面试
Java就业指导 想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东西,你可以把这些内容写到你的简历中,当然更需要的是你在面试的时候向面试官展示这些专业技能。相信此文对正在寻觅Java程序员(Java工程师)职位的freshman以及希望成为中高级Java开发者的j...
2018-04-08 15:02:33 1109
原创 nginx 配置样式
## A virtual host using mix of IP-, name-, and port-based configuration#server { listen 80; server_name test.jiayuan.aomygod.com; location / { root /app/svr/server/html; } erro...
2018-04-08 11:20:20 678
转载 Spring Boot中使用AOP统一处理Web请求日志
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,OP是Spring框架面向切面的编程思想,AOP采用一种称为“横切”的技术,将涉及多业务流程的通用功能抽取并单独封装,形成独立的切面,在合适的时机将这些切面横向切入到业务流程指定的位置中。AOP是Spring框架中的一个重要内容,它通过对既有程序定义一个切入点,然后在其前后切入不同的执行内容,比如常见的有:打...
2018-04-08 09:50:15 116
转载 JSP九大内置对象及四个作用域
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Requestresponse 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page pageContext 页面上下文对象 ...
2018-04-07 16:40:27 326
转载 Java线程的5种状态及切换(透彻讲解)
Java中的线程的生命周期大体可分为5种状态。1. 新建(NEW):新创建了一个线程对象。2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。3. 运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代...
2018-04-07 16:22:26 126
转载 Maven私服Nexus3.x环境构建操作记录
Maven介绍Apache Maven是一个创新的软件项目管理和综合工具。Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件。Maven最强大的功能就是能够自动下载项目依赖库。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。在多个开发团队...
2018-04-07 15:29:04 186
转载 Spring Cloud(八)高可用的分布式配置中心 Spring Cloud Config
文章转载自:https://blog.csdn.net/yanpenglei/article/details/78801601分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spri...
2018-04-02 16:15:00 118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人