国涛i
码龄3年
  • 134,355
    被访问
  • 144
    原创
  • 10,118
    排名
  • 4,339
    粉丝
关注
提问 私信

个人简介:微服务开发 系统架构 项目管理 项目主力开发

  • 加入CSDN时间: 2019-04-13
博客简介:

Du.GT

查看详细资料
  • 6
    领奖
    总分 2,578 当月 124
个人成就
  • Java领域新星创作者
  • 获得311次点赞
  • 内容获得134次评论
  • 获得1,179次收藏
创作历程
  • 16篇
    2022年
  • 92篇
    2021年
  • 40篇
    2020年
成就勋章
TA的专栏
  • Java系统学习
    98篇
  • 分布式系统开发
    29篇
  • 数据库
    20篇
  • 面试相关
    21篇
兴趣领域 设置
  • 软件工程
    个人开发
  • 职场和发展
    职场和发展
  • 产品/运营
    产品运营
  • 最近
  • 文章
  • 帖子
  • 关注/订阅/互动
搜TA的内容
搜索 取消

shell脚本启动jar包

#!/bin/sh# 当前服务端口port=`ps -elf | grep '/home/nid/api/nid.jar' | grep -v 'grep' | awk '{print $4}'`# jar包存放路径path=/home/nid/api# 停止当前端口kill -9 $portecho "Starting please wait"\# 情况启动前的out文件cat /dev/null > nohup.outsleep 3s# 启动jar包java -Xms.
原创
发布博客 2022.05.12 ·
104 阅读 ·
1 点赞 ·
0 评论

「Java」CopyOnWriteArrayList与Vector

我们都知道ArrayList是线程非安全的。如果我们想要得到一个线程安全的集合。有如下方式new Vector<String>(); Collections.synchronizedList(new ArrayList<>()); newCopyOnWriteArrayList();他们实现线程安全的方式Vector :简单粗暴 // addpublic synchronized boolean add(E e) { ...
原创
发布博客 2022.04.22 ·
272 阅读 ·
1 点赞 ·
0 评论

「分布式专题」一致性Hash算法的实现Java

上文主要介绍了一致性hash算法的由来以及概念知识。本文主要对其进行实现及演示。「分布式专题」分布式系统中一致性hash算法_国涛i的博客-CSDN博客_分布式一致性hash算法近年来B2C、O2O等商业概念的提出和移动端的发展,使得分布式系统流行了起来。分布式系统相对于单系统,解决了流量大、系统高可用和高容错等问题。功能强大也意味着实现起来需要更多技术的支持。例如系统访问层的负载均衡,缓存层的多实例主从复制备份,数据层的分库分表等我们以负载均衡为例,常见的负载均衡方法有很多,但是它们...
原创
发布博客 2022.04.22 ·
585 阅读 ·
1 点赞 ·
0 评论

「Spring」开发项目中常用的接口

InitializingBean当我们阅读一些优秀的开源代码时,会经常见到InitializingBean的身影,Spring启动后,初始化Bean时,若该Bean实现InitialzingBean接口,会自动调用afterPropertiesSet()方法,完成一些用户自定义的初始化操作ApplicationContext是spring继BeanFactory之外的另一个核心接口或容器,允许容器通过应用程序上下文环境创建、获取、管理bean。为应用程序提供...
原创
发布博客 2022.04.20 ·
229 阅读 ·
1 点赞 ·
0 评论

「RocketMQ」如何保证消息不丢失

当我们实际项目开发中,引入一个中间件都要考虑为什么要引进他,引进它会遇到哪些问题。首先为什么要引入消息队列解耦:分布式系统中涉及到的数据交互 削峰:高并发场景下,为了更快的作出相应,会考虑引入消息队列 异步:减少响应时间会遇到哪些问题呢系统的可用性降低:如果消息队列挂掉了,服务之间通讯就会受限 复杂性提高 数据丢失本文主要对「数据丢失」做一些分享 ...
原创
发布博客 2022.04.13 ·
2031 阅读 ·
1 点赞 ·
0 评论

小东西还挺精致

发布动态 2022.04.04

「某大厂二面」聊聊Java中的SPI机制

SPI service provider interface的简写SPI是什么SPI主要解决的还是耦合问题。我们知道面向接口编程是很好的编程方式。举一个简单的例子假设有一天你一不小心成为了你们组的组长,这时候经理要求你开发一个对象存储服务,统一一下公司内部的云存储服务,首先市面上的云存储有好多家,例如阿里的OSS,t...
原创
发布博客 2022.03.22 ·
568 阅读 ·
2 点赞 ·
0 评论

什么时候出的这个榜

发布动态 2022.03.16

「淘宝二面」什么是守护线程 应用场景有哪些

什么是守护线程jdk官方介绍The Java Virtual Machine exits when the only threads running are all daemon threads.当 JVM 中不存在任何一个正在运行的非守护线程时,则 JVM 进程即会退出先看一下这段代码public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(() -&
原创
发布博客 2022.03.16 ·
378 阅读 ·
0 点赞 ·
0 评论

「淘宝一面」HashMap 在使用时需要注意什么地方 至少说出四点

前言彻底弄懂HashMap__Louie的博客-CSDN博客_hashmap我们在面试中, 也会经常被问到HashMap相关的底层实现, 阿巴阿巴....HashMap的底层实现首先它是基于数组(存储对象的引用)加链表(存储对象)实现的当我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对...
原创
发布博客 2022.03.16 ·
106 阅读 ·
0 点赞 ·
0 评论

「网易一面」线程池参数以及提交任务后怎么执行的

核心参数private static int corePoolSize = 20;private static int maxPoolSize = 100;private static int keepAliveTime = 0;private static TimeUnit timeUnit = TimeUnit.MINUTES;private static BlockingQueue blockingQueue = new ArrayBlockingQueue<>(999...
原创
发布博客 2022.03.16 ·
39 阅读 ·
0 点赞 ·
0 评论

「京东一面」子线程如何获取父线程ThreadLocal的值

开门见山想要子线程获取父线程中ThreadLocal中的值,需要其子类InheritableThreadLocal实现测试代码public static void main(String[] args) throws InterruptedException { Thread parentParent = new Thread(() -> { ThreadLocal<Integer> threadLocal = new ThreadLo
原创
发布博客 2022.03.14 ·
319 阅读 ·
1 点赞 ·
0 评论

「Java」自定义注解 校验数据库表中的数据不可重复

一个很常见的需求,某表中的数据不能重复,我闲每次都要多加几行代码去查数据库,所以自定义了个注解代码@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = TableDataUnique.TableDataUniqueConstraintValidator.class)public @interface TableDataUnique { // 表明 St.
原创
发布博客 2022.01.27 ·
1455 阅读 ·
3 点赞 ·
5 评论

「Netty」实战 Springboot + netty +websocket 推送消息(附源码)

源码地址:https://gitee.com/dugt/springboot-netty-demohttps://gitee.com/dugt/springboot-netty-demo上篇文章我们认识了NIO与传统BIO的区别之后,展开了对Netty的学习,Netty对NIO进行了很好的封装,简单的API,庞大的交流社区。该篇博客分享一下基础的netty使用。针对一些掌握netty简单API的同学。netty服务器@Componentpublic class NettyS..
原创
发布博客 2022.01.24 ·
706 阅读 ·
2 点赞 ·
0 评论

「Netty」Netty入门 认识NIO

现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能 Netty 底层实现就是基于我们的NIO,因为网络编程使用NIO非常复杂,容易写出Bub,netty封装了nio,大大的简化了学习成本与提高了编码效率。概述NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流...
原创
发布博客 2022.01.24 ·
80 阅读 ·
1 点赞 ·
0 评论

「性能优化专题」缓存的那些事儿

利用缓存做性能优化的案例非常多,从基础的操作系统到数据库、分布式缓存、本地缓存等。它们表现形式各异,却有着共同的朴素的本质:弥补CPU的高算力和IO的慢读写之间巨大的鸿沟。和架构选型类似,每引入一个组件,都会导致复杂度的上升。以缓存为例,它带来性能提升的同时,也带来一些问题,需要开发者设计和权衡。本文的思维脉络如下:一 缓存和多级缓存1 缓存的引入在初期业务量小的时候,数据库能承担读写压力,应用可以直接和DB交互,架构简单且强壮。经过一...
原创
发布博客 2022.01.14 ·
43 阅读 ·
0 点赞 ·
0 评论

「RocketMQ专题」@RocketMQMessageListener selectorExpression属性不支持EL表达式 tag不生效 问题发现及解决方案

@RocketMQMessageListener selectorExpression属性不支持EL表达式 tag不生效 问题发现及解决方案
原创
发布博客 2022.01.13 ·
1004 阅读 ·
1 点赞 ·
0 评论

「数据库专题」一分钟搞懂MySql索引下推

如果你在面试中遇到,听到“MySQL5.6”、“索引优化” 之类的词语,你就要立马get到,这个问的是“索引下推”。什么是索引下推索引下推(Index Condition Pushdown,简称ICP),是MySQL5.6版本的新特性,它能减少回表查询次数,提高查询效率。索引下推优化的原理我们先简单了解一下MySQL大概的架构:MySQL大概架构MySQL服务层负责SQL语法解析、生成执行计划等,并调用存储引擎层去执行数据的存储和检索。索引下推的下推其实就是指将部分上层(服务
原创
发布博客 2022.01.06 ·
74 阅读 ·
1 点赞 ·
2 评论

「分布式专题」分布式系统中一致性hash算法

近年来B2C、O2O等商业概念的提出和移动端的发展,使得分布式系统流行了起来。分布式系统相对于单系统,解决了流量大、系统高可用和高容错等问题。功能强大也意味着实现起来需要更多技术的支持。例如系统访问层的负载均衡,缓存层的多实例主从复制备份,数据层的分库分表等我们以负载均衡为例,常见的负载均衡方法有很多,但是它们的优缺点也都很明显:随机访问策略。系统随机访问,缺点:可能造成服务器负载压力不均衡,俗话讲就是撑的撑死,饿的饿死。 轮询策略。请求均匀分配,如果服务器有性能差异,则无法...
原创
发布博客 2021.12.31 ·
215 阅读 ·
0 点赞 ·
3 评论

「Java」彻底掌握ReentrantLock实现原理

ReentrantLock主要利用CAS+CLH队列来实现。它支持公平锁和非公平锁,两者的实现类似。CAS:Compare and Swap,比较并交换。CAS有3个操作数:内存值V、预期值A、要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。该操作是一个原子操作,被广泛的应用在Java的底层实现中。在Java中,CAS主要是由sun.misc.Unsafe这个类通过JNI调用CPU底层指令实现。 CLH队列:带头结点的双向非循环链表(如下图所示):
原创
发布博客 2021.12.30 ·
118 阅读 ·
0 点赞 ·
0 评论
加载更多