1 TIANTIAN_ZZ

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 10w+

一文带你了解分布式ID生成器Ray

背景在应用程序中,经常需要全局唯一的ID作为数据库主键。我们需要什么样的ID生成器高性能 -> 1.生成性能高 2.插入性能高 3.索引性能高高可用 -> 1.依赖中间件要少 2.避免单节点问题不重复 -> 1.集群内全局不重复易使用 -> 1.接入简单 2.零学习成本语义性 -> 1.ID带有一些其它信息如何满足这几点要求生成性能高 -> 大多数时间为内存分配,减少IO,减少锁插入性能高 -> 全局递增,避免页分裂索引性能高 -&gt.

2020-05-18 19:57:31

基于Redis实现分布式锁之前,这些坑你一定得知道

开头基于Redis的分布式锁对大家来说并不陌生,可是你的分布式锁有失败的时候吗?在失败的时候可曾怀疑过你在用的分布式锁真的靠谱吗?以下是结合自己的踩坑经验总结的一些经验之谈。你真的需要分布式锁吗?用到分布式锁说明遇到了多个进程共同访问同一个资源的问题, 一般是在两个场景下会防止对同一个资源的重复访问:提高效率。比如多个节点计算同一批任务,如果某个任务已经有节点在计算了,那其他节点就不用...

2020-03-11 17:02:32

5 分钟搭建 Node.js 微服务原型

微服务已成为在 Node.js 中构建可扩展且强大的云应用的主流方法。同时也存在一些门槛,其中一些难点需要你在以下方面做出决策:组织项目结构。将自定义服务连接到第三方服务(数据库,消息代理等)处理微服务之间共享的代码。将项目容器化。在本地运行和调试,然后将其部署到云中。SMF 框架是开箱即用的解决方案:https://github.com/krawa76/smf让我们看看它如...

2020-03-11 16:29:36

SpirngMVC源码简析

SpirngMVC流程综述用户发送请求至前端控制器DispatcherServlet。DispatcherServlet收到请求调用HandlerMapping处理器映射器。处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。DispatcherServlet调用HandlerAdap...

2020-03-10 15:59:09

Tomcat中一种半通用回显方法

前段时间学习了一波Linux下基于文件描述符的反序列化回显方式的思路。在自己实现的过程中发现,是通过IP和端口号的筛选,从而过滤出当前线程(也可以说是请求)的文件描述符,进而加入回显的内容。但是同时也有一个疑问,我们使用回显的目前主要是因为一些端口的过滤,一些内外网的隔离。从而将一些无法从别的途径传输的执行结果,通过http请求的方式,附加在原本的response中,从而绕过一些防护和限制。...

2020-03-10 15:58:43

备战金三银四:2020java面试题分享,请查收

本文收录的面试题包括MySQL、Redis、java、JVM等相关内容。我相信很多人都在计划着跳槽,也或者在等金三银四的到来,请对找工作保持十二分的热情,而且越早准备越好。临时狂背知识点什么的,可能大致的都了解,细问就什么都不知道了,面试京东我也是提前一个月就开始准备了,毕竟不打无准备的仗一:Java多个线程同时读写,读线程的数量远远大于写线程,你认为应该如何解决 并发的问题?你会选择加...

2020-03-09 17:00:31

看一看Spring Security 原理分析

引言在试题系统开发过程中,认证方式越来越完善,也对Spring Security有了更加深刻的理解。本文,我们一起来领略Spring Security的设计原理。原理必备基础Servlet是Java Web领域中的软件开发规范,Tomcat是实现Servlet规范的Java Web服务器。package javax.servlet;public interface Servlet...

2020-03-09 16:58:22

java中的Volatile关键字使用

java中的Volatile关键字使用在本文中,我们会介绍java中的一个关键字volatile。 volatile的中文意思是易挥发的,不稳定的。那么在java中使用是什么意思呢?我们知道,在java中,每个线程都会有个自己的内存空间,我们称之为working memory。这个空间会缓存一些变量的信息,从而提升程序的性能。当执行完某个操作之后,thread会将更新后的变量更新到主缓存中,...

2020-03-07 17:53:35

一篇文章,让你看懂 Spring Cloud

Spring CloudSpring Boot 让我们从繁琐的配置文件中解脱了出来,而 Spring Cloud,它我们提供了一整套的微服务解决方案,大大的降低了微服务开发的门槛,同时也减少了开发成本。Spring Cloud 的组成Spring Cloud 并不是特指某个框架,它其实是一系列成熟框架的组合,通过 Spring Boot 风格的封装,屏蔽掉了复杂的配置和实现原理,最终给开发...

2020-03-07 17:03:49

掌握这些学习路线图,进入BATJ年薪三四十万不是梦!!!

Web应用,最常见的研发语言是Java和PHP。后端服务,最常见的研发语言是Java和C/C++。大数据,最常见的研发语言是Java和Python。可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。一个Java工程师需要掌握的技术是非常广泛的,有不少技术人问,除了掌握Java语法...

2020-03-06 17:13:15

聊一聊Redis之数据结构

基本数据结构简单动态字符串Redis中的字符串使用“简单动态字符串”(SDS)表示,无论是字符串值还是键底层都采用“简单动态字符串”。free:未使用空间大小;len:字符串长度;buf:以空字符结尾的char数组。为了减少内存重新分配次数,SDS做出了以下优化:空间预分配:额外分配的未使用空间数量由以下公式决定:如果对SDS进行修改之后,SDS的长小于1MB,那么程序分...

2020-03-06 16:21:11

2020金三银四季一名5年java程序员对面试的指导与建议

今天分享的是一位5年工作经验的Java工程师在帝都的面试经验总结,看看这些互联网公司都爱问些什么题,希望对大家的面试有指导意义。从事Java开发也有5年经验了,4月初自己的开启面试经历之旅,前后20天左右,主面互联网公司,一二线大公司或者是融资中的创业公司都面试过,拿了一些offer,其中包括奇虎360等首先不同面试官面试风格一定不同,这里是我总结这些天面试Java开发过程中的大多数问题,综...

2020-03-05 16:11:28

MySQL协议和canal实现

前言前面的文章里,我们了解到 canal 可以从 MySQL 中感知数据的变化。这是因为它模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,从而实现了主从复制。正是了解到这一点,笔者有两个问题便一直萦绕于心:它是如何模拟 MySQL slave 交互协议的?它又是怎么解析 binlog 日志的呢?今天,笔者准备就着这两个问题,扒拉扒拉 canal 的代码...

2020-03-05 16:12:02

Redis——分布式锁深入探究

一、分布式锁简介锁 是一种用来解决多个执行线程 访问共享资源 错误或数据不一致问题的工具。如果把一台服务器比作一个房子,那么 线程就好比里面的住户,当他们想要共同访问一个共享资源,例如厕所的时候,如果厕所门上没有锁…更甚者厕所没装门…这是会出原则性的问题的…装上了锁,大家用起来就安心多了,本质也就是 同一时间只允许一个住户使用。而随着互联网世界的发展,单体应用已经越来越无法满足复杂...

2020-03-04 16:55:04

金三银四——一名程序员的java学习心得

古人云:活到老,学到老。读书学习实乃艰苦之事,花费时间,消耗精力。然苦之外亦见其乐:得到了知识,提高了认识,完善了自己。学习,求其真,务其实,应“敏而好学,不耻下问”,才能不断促使进步。学习,不仅求知,也要懂法,学会方法比掌握知识更加重要。笛卡尔说过,“没有正确的方法,即使有眼睛的博学者也会像瞎子一样盲目摸索”,可见学习方法的重要性。学习Java不是说短期内就可以速成的,这是一个长期的事情。学员...

2020-03-04 16:52:17

如何理解javascript中的对象

以前对javascript中的对象总有不明白的地方,在本周也遇到了疑惑,于是借着机会去深入的了解了一下javascrpit中的对象。创建对象在javascript中,创建对象有两种方式,一种是使用 new 操作符后跟 Object 构造函数:let ob = new Object();ob.name = 'object';另一种是直接使用对象字面值:let ob = { ...

2020-03-03 16:01:17

2020年2月份编程语言排行榜分析

今天上班的路上,突然发现路边绿化带里的迎春花发芽了,这两天也是明显的感觉暖和些了,春天到咯,终于可以换下厚重的羽绒服啦。春天是播种的季节,一年之计在于春,勤恳的农民伯伯们已然开始准备春耕,翻地待种;而我们可爱的码农们也在蓄势待发,要在“春招”里大显身手,转战新战场,谋求新发展。从外貌(敷张面膜,理个新发型_)到简历,到笔试题,都做好了充足的准备,确保万无一失。前段时间呢,小编也跟大家分享了10...

2020-03-03 16:00:48

从源码分析Spring是如何解决循环依赖的

循环依赖问题什么是循环依赖首先看一下下面的Spring配置文件<!-- beanA依赖于beanB --><bean id="beanA" class="top.okay3r.ClassA"> <property name="beanB" ref="beanB"/></bean><!-- beanB依赖于beanA --&g...

2020-03-02 16:45:06

2020java程序员必学方向之微服务架构

什么是微服务架构?看下图的这段英文,这是Martin Fowler 在2014年提出来的,微服务架构是一种架构模式,既然是架构模式,那么,它就必然需要满足一些特点。他提到,微服务架构是一系列小的微服务构成的组合,那么,什么是“小的微服务”?可能每个人的理解都不一样,大家都应该都知道SOA架构,SOA架构的粒度是比较粗的,到底我们应该以什么样的粒度拆分微服务?我认为,微服务架构本质上一个业务架构,...

2020-03-02 16:40:33

mybatis入门的前期准备

使用步骤如下:首先创建一个Maven工程,在pom.xml文件中引入mybatis的jar包坐标<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</a...

2020-03-01 19:26:56

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。