湟同学你好
码龄6年
关注
提问 私信
  • 博客:118,686
    动态:6
    118,692
    总访问量
  • 51
    原创
  • 681,306
    排名
  • 60
    粉丝
  • 0
    铁粉

个人简介:爱生活爱java

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2018-07-13
博客简介:

湟同学你好的博客

查看详细资料
个人成就
  • 获得194次点赞
  • 内容获得26次评论
  • 获得484次收藏
  • 代码片获得132次分享
创作历程
  • 1篇
    2022年
  • 5篇
    2021年
  • 35篇
    2020年
  • 10篇
    2019年
成就勋章
TA的专栏
  • 源码解析
    1篇
  • netty
    3篇
  • Gateway
    1篇
  • nginx
    1篇
  • javaweb
    1篇
  • Java
    27篇
  • 设计模式
    2篇
  • 并发编程
    4篇
  • Java虚拟机
    4篇
  • 计算机网络
    4篇
  • mysql
    4篇
  • 解决问题
    4篇
  • 学习小结
    34篇
  • Android线程
    2篇
  • 树莓派
    1篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring
  • 搜索
    elasticsearch
  • 服务器
    linux
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

356人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Mybatis源码解析

Mybatis部分源码剖析
原创
发布博客 2022.09.24 ·
601 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

netty源码浅析(下篇)

今天来聊聊NioEventLoopNioEventLoop主要的组成有三部分1、selector2、Queue和threadSingleThreadEventExecutor(普通任务队列和线程):AbstractScheduledEventExecutor(定时任务队列):来看看它们的创建:selector的创建是在NioEventLoop的构造函数中NioEventLoop(NioEventLoopGroup parent, Executor executor, SelectorP
原创
发布博客 2021.08.07 ·
343 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Netty源码浅析(上篇)

下面是netty的简化启动流程// 1、netty的NioEventLoopGroup 实现了下面这一操作(封装线程+selector+任务队列)Selector selector = Selector.open(); // 创建 NioServerSocketChannel,同时会初始化它关联的 handler,以及为原生 ssc 存储 configNioServerSocketChannel attachment = new NioServerSocketChannel();// 创建 N
原创
发布博客 2021.08.06 ·
503 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

netty学习之主要的组件

初识netty话不多说,直接从基础代码入手//服务端代码public class HelloServer { public static void main(String[] args) { // 1、启动netty服务器 new ServerBootstrap() // 2、创建 NioEventLoopGroup, Selector+线程+队列 .group(new NioEventLoopGr
原创
发布博客 2021.08.04 ·
381 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

Gateway篇(一)之Gateway配置

网关出现的背景微服务中,服务的粒度被细分,以往的一整大块服务可以被拆分成类似订单服务,支付服务等。拆分后的服务一般都是通过网络来进行通讯的,如果让客户端一个个来调用服务,未免过于复杂。这个时候大家可能会想到nginx来进行反向代理,不过nginx的配置稍有麻烦。于是乎Gateway就出现了,Gateway比nginx更加契合Spring Cloud系统。网关的作用网关是处于应用程序或服务之前的系统,用来管理授权、访问控制和流量限制等。通俗来讲就是对其他服务请求的集中管理,请求先到网关,再由网关请求到真
原创
发布博客 2021.03.07 ·
5034 阅读 ·
2 点赞 ·
0 评论 ·
6 收藏

nginx篇(一)之nginx做限流

限流算法一般有两种:令牌桶算法:思路:1、按照一定速率向令牌桶投送令牌。令牌桶满,则丢弃令牌 2、当请求过来时候,会经过一个过滤器,过滤器过滤的请求会经过令牌桶处理。3、请求只有拿到令牌才能被执行,拿不到令牌的请求被缓存 4、通过这种方式就能够控制请求的流量,令牌添加的速度就是请求流量的速度。漏桶算法:思路:请求先进入漏桶,漏桶以一定速率漏水,漏出的水会先处理,当水流远远大于漏桶漏水的速率,这个时候,水就会直接溢出。这里可以把请求当作水,这就是漏桶算法的大致思路。nginx中主要通过漏桶算法来做限
原创
发布博客 2021.03.07 ·
813 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

JWT和Spring Security的登录功能落地实现

服务端维护用户登录状态,一般有基于session和token两种方式一、传统的web项目用session+cookies机制来维护用户登录状态,当然有一定的不足:session是保持在服务端内存中的,也就是意味着用户下次请求必须还得在这台服务器上,才能拿到授权的资源,对于分布式系统来说是一个难以处理的点。随着认证用户的增加,服务端的开销也会增大。二、基于token的鉴权机制客户端拿账号密码请求服务端服务端校验账号密码,如果校验Ok的话,给客户端颁发token客户端拿到服务端颁发的toke
原创
发布博客 2020.12.28 ·
388 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

关于Spring Security的认证流程心得

        最近用spring security框架来做认证授权工作,搞得头有点大了,借此机会,小结学习一番        spring security是一个安全访问控制框架,其工作是基于一系列的过滤器来实现的,这些过滤器是框架的核心,但是他们不直接处理用户的认证和授权,而是通过AuthenticationManager(认证管理器)和Acc
原创
发布博客 2020.12.11 ·
217 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

ZooKeeper概念与知识点详解

概念:ZooKeeper是一个为分布式应用提供协调服务的开源项目工作机制:从设计模式来讲,ZooKeeper是一个基于观察者模式,为分布式服务提供支持的框架。其本身用于存储和管理数据,可以接受观察者的注册,数据发生变化时候,ZooKeeper就会主动去通知这些观察者。特点:ZooKeeper的服务端是由一个领导者(leader)和多个跟随者(follower)所组成的集群,集群之间通过Zab(Zookeeper Atomic Broadcast)来保持数据的一致性ZooKeeper中有半数以
原创
发布博客 2020.11.30 ·
289 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

Spring boot中嵌入式Servlet容器的配置和启动原理

以下分析基于Springboot2.0以上版本,1.X版本跟2.0以上版本源码差异性较大嵌入式Servlet容器的自动配置原理流程如下:SpringBoot 根据的依赖信息(默认是tomcat),创建对应的WebServerFactoryCustomizer(定制器,用来定制一些属性,默认为tomcat 所以就是定制tomcat的一些属性);WebServerFactoryCustomizerBeanPostProcessor(web工厂定制器的后置处理器)获取所有类型为web服务工厂定制器的组件(
原创
发布博客 2020.11.23 ·
418 阅读 ·
3 点赞 ·
1 评论 ·
2 收藏

Springboot的错误处理机制

    相信以下这个页面对大家来说并不陌生,当我们启动一个springboot应用的时候,如果在浏览器访问错误,springboot就会自动响应这个界面,如果不是在浏览器访问,比如在postman去访问,springboot响应回来的则是json数据,今天就来探究下springboot对错误的处理机制。浏览器响应:Postman响应:首先Springboot在启动的时候,会帮我们加载很多配置类,这其中也包括错误自动配置类,处理的大概流程如下:一但系统出现
原创
发布博客 2020.11.22 ·
351 阅读 ·
4 点赞 ·
1 评论 ·
1 收藏

spring boot的自动配置原理解析

Spring boot的自动配置   Springboo应用启动的时候,首先会先走主配置类,如下代码所示:@SpringBootApplication//这是Springboot的核心注解,也是一个混合注解。public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args
原创
发布博客 2020.11.22 ·
153 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

spring事务细节和事务传播解析

Spring事务的配置上述就是spring事务的一个简单配置,只要给方法上加上Transactional,就可以控制住这个方法,在方法出现异常的时候进行回滚操作,同时还可以设置一些参数,关于这些参数也在上图中标记出来了。下面主要是事务隔离级别和事务传播行为的介绍1、事务隔离级别:数据库事务并发的三大问题:脏读:事务1将变量a从1改成10 >>> 事务2读取到a的值为10 >>> 事务1出现异常,把a回滚成1 >>>事务2拿到的值a=10
原创
发布博客 2020.11.12 ·
137 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

单例设计模式的八种方式

//饿汉式(静态常量)class Singleton{ private Singleton{} private final static Singleton instance = new Singleton(); public static Singleton getInstance(){ return instance; }}//优点:类加载的时候就完成实例化,避免了线程同步的问题//不足:没有懒加载,如果实例没有用到,会造成内存浪费//饿汉式(静
原创
发布博客 2020.10.04 ·
128 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

设计模式的七大原则

设计模式最主要的目的就是解耦,低耦合,高内聚,扩展性,重用性,灵活性,这些都是设计模式努力的方向。重用性:相同功能的代码,可以复用可读性:代码结构清晰简洁,编程规范,便于其他程序员阅读与理解可扩展性:当需要增加新的功能的时候,非常方便可靠性:增加新功能后,对原来功能没有影响当然不是随随便便的模式都可以成为设计模式,设计模式也要遵守一定的设计原则。单一职责模式顾名思义,一个类应该只负责一项职责作用:降低类复杂度,一个类只负责一项职责,提高类的可读性和维护性接口隔离原则客户端不应该依赖于
原创
发布博客 2020.10.03 ·
153 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

ReentrantLock加锁与解锁源码解析

我们使用ReentrantLock的时候一般是如下用法public class MainActivity { public static void main(String[] args) { ReentrantLock lock = new ReentrantLock(); lock.lock(); try{ //逻辑代码 }finally { lock.unlock();
原创
发布博客 2020.09.18 ·
214 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

一图了解Java虚拟机的类加载机制

关于class文件的结构,可参照这篇文章:一图了解class文件结构
原创
发布博客 2020.08.16 ·
2135 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

一图了解java中class文件结构

此图只列举出class文件表层的结构,其中的每一项再深入进去都是相当复杂的,有兴趣的小伙伴可以自行研究。
原创
发布博客 2020.08.11 ·
2125 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

java中的垃圾收集器和内存分配策略

引用计数法概述:在对象中添加一个引用计数器,每当有一个地方引用它时候,计数器值就加1,当引用失效时候,计数器值就减一,任何计数器为0的对象就是不可能被使用了。引用计数器的缺点:当两个对象相互引用的时候,引用计数器就无法回收他们。可达性分析算法思路:通过一系列称为“GC Roots”的根节点作起始点集,从这些节点开始,根据引用向下搜索,搜索的过程称为引用链,如果某个对象到GC Roots间没有任何引用链相连,或者用图论来说就是GC Roots到这个对象不可达时候,则证明这个对象是不可再使.
原创
发布博客 2020.08.09 ·
2140 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

一图搞清java虚拟机运行时数据区

话不多说,直接上图
原创
发布博客 2020.08.01 ·
1502 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏
加载更多