自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

猿了个猿的博客

大家好我是猿了个猿

  • 博客(23)
  • 收藏
  • 关注

原创 一线大厂的分布式 ID 生成方案是什么样的?

1 前言分布式系统中我们会对遇到数据量较大的业务表进行拆分,如:订单表、用户表,但是有时又需要保证id需要在整个系统保证唯一,这个时候就需要使用到分布式id。2 分布式id需要满足什么条件才是符合要求的分布式id生成方案需要保证满足一下条件才算是合理的方案整个系统唯一id是数字类型,并且在一定范围是趋于增长趋势id简短,查询效率快3 分布式id的几种方案3.1 UUID优点:代码简单本机生成,没有性能问题,不需要引入任何中间件全球问一,迁移数据容易缺点:每次UUID都是

2020-10-29 23:38:23 212 1

转载 【优雅停机】——kill -9 pid、kill -15 pid、Ctrl+C

最近瞥了一眼项目的重启脚本,发现运维一直在使用 kill-9<pid> 的方式重启 springboot embedded tomcat,其实大家几乎一致认为: kill-9<pid> 的方式比较暴力,但究竟会带来什么问题却很少有人能分析出个头绪。这篇文章主要记录下自己的思考过程。 kill -9 和 kill -15 有什么区别? 在以前,我们发布 WEB 应用通常的...

2020-09-21 09:33:34 1528

转载 ZooKeeper、Eureka对比

刚开始看到Eureka这个单词的时候真心不会念,查了后发现他有一个好听的名字,来,大家一起念 [ jʊ'rikə ]简介Eureka本身是Netflix开源的一款提供服务注册和发现的产品,并且提供了相应的Java封装。在它的实现中,节点之间相互平等,部分注册中心的节点挂掉也不会对集群造成影响,即使集群只剩一个节点存活,也可以正常提供发现服务。哪怕是所有的...

2019-01-03 23:33:01 1502

转载 听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架

听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构茶轴的青春百家号18-05-1122:38微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和Sp...

2019-01-03 23:29:26 350

原创 SpringCloud版本新旧命名方式&适配spring boot版本

SpringCloud版本新旧命名方式&适配spring boot版本

2023-06-14 17:00:45 193

转载 【Linux】关于socket的fd

【Linux】关于socket的fd socket的fd是什么?fd 是(file descriptor),这种一般是BSD Socket的用法,用在Unix/Linux系统上。 fd全称是file descriptor,是进程独有的文件描述符表的索引。在Unix/Linux系统下,一

2020-08-10 15:12:02 1984

原创 spring生命周期

spring生命周期前言spring作为当前java流行、最强大的轻量级容器框架,是非常有必要了解spring的生命周期。详细介绍引用一张网上的的图片(参照org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean 方法)首先容器启动后,对Bean进行初始化po...

2019-11-14 11:41:52 129 1

原创 线程池

为什么会有线程池?线程本身要占用内存空间,大量的线程会占用内存资源并且有可能会导致OOM线程回收也会给GC带来巨大的压力线程池的优点线程执行完毕之后不会立即被回收而是放回到线程池中,以供其他任务使用,不需要重复创建线程。可以防止OOM,更好的利用线程。线程池(ThreadPool)java中线程池的实现为ThreadPoolExecutor,线程池构造参数pub...

2019-11-13 13:54:06 102

转载 log4j的使用详细解析

log4j的使用详细解析 转自&amp;nbsp;http://www.jb51.net/article/41001.htm1 Log4j配置说明1.1 配置文件Log4j可以通过java程序动态设置,该方式明显缺点是:如果需要修改日志输出级别等信息,则必须修改java文件,然后重新编译,很是麻烦;log4j也可以通过配置文件的方式进行设置,目前支持两种...

2019-03-01 23:18:33 592

原创 spring获取请求参数的几种方式

spring获取请求参数的方式1、 直接把表单的参数写在Controller相应方法的形参中,适合于get提交,不适合于Post方式提交,url形式(url?参数1=参数值&amp;amp;参数2=参数值),要求提交的参数必须要和方法名称一样2、通过HttpServletRequest接受,post方式和get方式都可以,url形式(url?参数1=参数值&amp;amp;参数2=参数值)3、通过一个bea...

2019-02-28 11:17:48 3542

原创 CAS

写在前面昨天电话面试,面试官问了我一个关于CAS算法的问题,结果我回答的比较模糊,只是回答的CAS一部分(比较和交换),后来通过自己的录音去听了一下自己的回答,真的无法在听下去了,其实以前使用并发包中原子类时有了解过CAS算法,但是没有特别深入,有句话怎么说,该欠的总是要还的(我一口老血吐了出来),希望这篇文章能为准备面试或者需要了解CAS能带一个入门。CAS算法CAS算法:即比较并替换,是...

2019-02-22 10:37:21 118

转载 MySQL性能优化

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性...

2019-02-20 11:17:28 160

原创 线程池

池化技术简单来说,所有的池化技术就是提前保留大量的资源,以备不时之需池化技术举例线程池数据库连接池等池化技术特点核心数量对象最大数量对象非核心对象数量非核心对象的生命周期池化技术优点对象复用,减少对象创建、销毁的时间资源重用性更快的系统响应速度新的资源分配手段统一的管理,避免出现内存泄漏线程池JDK1.5之后,java提供了创建线程池的工具类...

2019-02-12 22:47:04 146

原创 通俗易懂讲解代理模式

什么是代理模式?代理模式的定义:代理模式给某一对象提供一个代理对象,并由代理对象控制对原有对象的引用。通俗的来说就是我们所说的中介。举个例子来介绍: 现在包租婆要租房子,一方面通过自己给客户介绍,另外一方面是将房子给中介公司,让其帮忙代理出租房子,用图展示如下:代理模式涉及到如何角色:客户端代理对象目标对象代理对象和目标对象的公共接口代理模式的优点隔离作用:在某些情况下,一...

2019-01-26 20:25:54 1121

转载 IntelliJ Idea 常用快捷键列表

Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+Shift...

2019-01-12 23:03:19 98

原创 通俗易懂讲解javaSocket编程

1

2019-01-08 22:45:57 985

转载 通俗易懂讲解IO模型

前言说到IO模型,都会牵扯到同步、异步、阻塞、非阻塞这几个词。从词的表面上看,很多人都觉得很容易理解。但是细细一想,却总会发现有点摸不着头脑。自己也曾被这几个词弄的迷迷糊糊的,每次看相关资料弄明白了,然后很快又给搞混了。经历过这么几次之后,发现这东西必须得有所总结提炼才不至于再次混为一谈。尤其是最近看到好几篇讲这个的文章,很多都有谬误,很容易把本来就搞不清楚的人弄的更加迷糊。最适合IO模型的例...

2019-01-07 22:31:24 397

转载 HTTP请求、响应报文格式【转】

HTTP请求报文格式:HTTP请求报文主要由请求行、请求头部、请求正文3部分组成1,请求行由3部分组成,分别为:请求方法、URL(见备注1)以及协议版本,之间由空格分隔请求方法包括GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE以及扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,处于安全性的考虑也是不可用的协议版本...

2019-01-07 17:43:44 903

转载 PO/POJO/BO/DTO/VO的区别【转】

PO :persistent object持久对象&nbsp;1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录。&nbsp;2 .在hibernate持久化框架中与insert/delet操作密切相关。&nbsp;3 .PO中不应该包含任何对数据库的操作。POJO :plain ordinary java object 无规则简单java对象...

2019-01-07 10:28:23 2549 16

转载 JAVA堆栈图解

转自:http://www.iteye.com/topic/6345301.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(对象可能在常量池里)(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(st...

2019-01-03 15:39:20 475

原创 记一次线上找寻日志的苦恼——slf4j与log4j的使用

故事发生在一个苦逼的晚上,那晚在公司帮领导(代码是我们领导自己写的,这个项目不是太重要,没有经常性维护)找线上日志,通过在linux上面找遇到的问题:         1、项目中使用了日志,但是日志没有保存到文件里面了,只能通过Catalina.out中搜索了,这个catalina.out文件达到的500M,在里面找内容,苦苦寻觅了好久终于找到问题的所在了,结果是内容太长了,而数据库里面的字段...

2018-10-13 17:31:53 237

原创 Java中的多线程一

线程pk进程进程:一个计算机程序的运行实例,包含了需要执行的指令,有自己的独立空间地址,包含内容和数据;不同进程的地址地址空间是相互隔离的;进程拥有各种资源和状态信息,包括打开的文件。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程拥有自己的程序计数器、寄存器、堆栈和帧。同一个进程中的线程共用相同的地址空间,同时共享进程锁拥有的内存和其他资源。线程和进程是包含关系,线程存在于...

2018-09-15 22:20:12 83

原创 深拷贝和浅拷贝的理解与应用

对象拷贝就是将一个对象的属性拷贝到另一个有着相同类型的对象中去。java中有两种类型的对象拷贝:深拷贝、浅拷贝。假如我们要复制一对基本数据类型变量到另外一个具有相同的类型的基本变量时,我们一般会这样做 int sourceValue=10; int targetValue=sourceValue;上面只是一个例子,除了int类型,其中七种原始数据类型(boolean,cha...

2018-08-11 18:20:11 2718

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除