5 夏目 "

中国平安 - 高级软件架构师

我要认证

满船清梦压星河

等级
TA的排名 2k+

一口气说出 4 种分布式一致性 Session 实现方式

作者: 程序员通事https://www.cnblogs.com/goodAndyxublog/archive/2020/07/17/13327412.html前言公司有一个 Web 管理系统,使用 Tomcat 进行部署。由于是后台管理系统,所有的网页都需要登录授权之后才能进行相应的操作。起初这个系统的用的人也不多,为了节省资源,这个系统仅仅只是单机部署。后来随着用的人越来越多,单机已经有点扛不住了,于是我决定再部署了一台机器。这时后端系统有两台服务,于是我们使用 Nginx 作.

2020-07-29 10:15:43

一网打尽,Mybatis架构与原理

作者:消失erwww.jianshu.com/p/15781ec742f2MyBatis功能架构设计功能架构讲解:我们把Mybatis的功能架构分为三层: API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。 基础支撑层:负责最基础的功能支.

2020-07-28 20:41:07

面试官问 Spring AOP 中两种代理模式的区别,我懵逼了

基本介绍代理模式是一种结构性设计模式。为对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,并允许在将请求提交给对象前后进行一些处理。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。代理模式主要有三种不同的形式:静态代理:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的 .class 文件就已经存在了 动态代理(JDK 代理、接口代理):在程序运行时运用反射机制动态创建而成,动态就是在程序运行时生成的,而不是编译时。 cgli

2020-06-29 20:30:58

布隆过滤器究竟是什么,这一篇给讲的明明白白的

作者:jack_xujuejin.im/post/5e9c110151882573793e8940不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,在面试中面试官问到怎么避免缓存穿透,你的第一反应可能就是布隆过滤器,缓存穿透=布隆过滤器成了标配,但具体什么是布隆过滤器,怎么使用布隆过滤器不是很清楚,那今天我们就来把它说清楚,讲明白。缓存穿透大家看下这幅图,用户可能进行了一次条件错误的查询,这时候redis是不存在的,按照常规流程就是去数据库找了,可...

2020-06-12 14:23:27

别再说,不懂什么是图数据了

在众多不同的数据模型里,关系数据模型自20世纪80年代就处于统治地位,而且出现了不少巨头,如Oracle、MySQL和MSSQL,它们也被称为关系数据库管理系统(RDBMS)。然而,随着关系数据库使用范围的不断扩大,也暴露出一些它始终无法解决问题,其中最主要的是数据建模中的一些缺陷和问题,以及在大数据量和多服务器之上进行水平伸缩的限制。同时,互联网发展也产生了一些新的趋势变化:用户、系统和传感器产生的数据量呈指数增长,其增长速度因大部分数据量集中在Amazon、Google和其他云服务的分布式系统...

2020-06-11 11:13:14

细谈八种架构设计模式及其优缺点概述

作者:风平浪静如马一、什么是架构我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。哈哈,我理解,架构就是骨架,如下图所示:人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮肤。架构对于软件的重要性不亚于骨架对人类身体的重要性。二、. 什么是设计模式这个问题我问过的面试者不下于数十次,回答五花八门,在我看来,模式就是经验,设计模式就是设计经验,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提..

2020-06-02 12:12:36

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

一图看完本文一、 计算机网络体系结构分层计算机网络体系结构分层计算机网络体系结构分层不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。二、 TCP/IP 基础1. TCP/IP 的具体含义从字面意义上讲,有人可能会认为...

2020-05-07 09:30:15

面试官:小伙子,听说你看过 ThreadLocal 源码?(万字图文深度解析)

前言话不多说,直接进入今天的主题,本文的主要内容如下图所示:全文共10000+字,31张图,这篇文章同样耗费了不少的时间和精力才创作完成,请大家点点关注+点赞,感谢。源于壹枝花算不算浪漫 ,作者壹枝花算不算浪漫。对于ThreadLocal,大家的第一反应可能是很简单呀,线程的变量副本,每个线程隔离。那这里有几个问题大家可以思考一下:ThreadLocal的key是弱引用,那么在 threadLocal.get()的时候,发生GC之后,key是否为null? Thr...

2020-05-14 11:04:42

终于有人把 Docker 讲清楚了

一、简介1、了解Docker的前生LXCLXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与传统虚拟化技术相比,它的优势在于:(1)与宿主机使用同一个内核,性能损耗小;(2)不需要指令级模拟;(3)不需要即时(Just-in-time)编译;(4)...

2020-05-10 10:08:15

一篇吃透,Java集合框架综述

一、集合框架图简化图:说明:对于以上的框架图有如下几点说明1、所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。2、集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。3、抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。4、实现类:8个实现类(实线表示),对接口的具体实现...

2020-05-21 20:08:06

阿里巴巴为什么不用 ZooKeeper 做服务发现?

站在未来的路口,回望历史的迷途,常常会很有意思,因为我们会不经意地兴起疯狂的念头,例如如果当年某事提前发生了,而另外一件事又没有发生会怎样?一如当年的奥匈帝国皇位继承人斐迪南大公夫妇如果没有被塞尔维亚族热血青年普林西普枪杀会怎样,又如若当年的丘老道没有经过牛家村会怎样?2008 年底,淘宝开启一个叫做“五彩石”的内部重构项目,这个项目后来成为了淘宝服务化、面向分布式走自研之路,走出了互联网中间件体系之始,而淘宝服务注册中心 ConfigServer 于同年诞生。2008 年前后,Yahoo 这...

2020-05-20 14:39:52

厉害了,分布式数据库中间件ShardingSphere毕业成为Apache顶级项目!

全球最大的开源软件基金会 Apache 软件基金会(以下简称 Apache)于北京时间 2020年4 月 15 日宣布 Apache ShardingSphere毕业成为 Apache 顶级项目。ShardingSphere于2018年11月10日捐赠给Apache并启动孵化。之后在导师的指导下,由孵化器管理委员会成员进行经营和孵化,在2020年3月28日在Apache孵化器以10 票支持一次性通过毕业提案投票。4月15日,Apache董事会通过ShardingSphere毕业决议,结束了为期17...

2020-05-20 14:38:01

彻底理解 SpringIOC、DI,这篇文章就够了

前言你可能会有如下问题:1、想看Spring源码,但是不知道应当如何入手去看,对整个Bean的流程没有概念,碰到相关问题也没有头绪如何下手2、看过几遍源码,没办法彻底理解,没什么感觉,没过一阵子又忘了本文将结合实际问题,由问题引出源码,并在解释时会尽量以图表的形式让你一步一步彻底理解Spring Bean的IOC、DI、生命周期、作用域等。先看一个循环依赖问题现象循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖...

2020-05-18 11:12:22

浅析VO、DTO、DO、PO的概念、区别和用处

本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念:概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提...

2020-05-14 10:27:20

从session、cookie到token以及JWT

前言主要讲token和jwt技术,关于session和cookie文章很多,简单提一下。session和cookie现在一般都是session和cookie一起用,一起提。但是他们俩其实不是一定要在一起。首先牢记一点,http协议是无状态的。就是说,一个请求过来,服务器不知道这个请求的用户是不是已经登录过了,不知道他的状态。只能再把这个请求重定向到登陆页面。这样用户就疯了,怎么一直让我登录。所以,前人想了一个办法,在第一次登录后,在服务器端记录一个会话id(sessionId).

2020-05-13 14:16:17

这才是微服务划分的正确姿势,值得学习!

前言我们知道微服务是一种理念,没有确切的定义和边界,好比设计原则,是属于抽象的概念。在定义不明确的情况下谈划分也是一种各说各话,具体问题需要具体分析,所以这篇文章谈到的划分也不是绝对标准,仅供参考。有人说微服不难,难的是服务的划分,虽然我持保留意见。但是从侧面也反应了划分具有一定的困难。这里的矛盾在于粒度。如果粒度太大了,分和不分似乎都差不多;如果粒度太小了,聚合、发布、调用链、调试等都是坑。以下谈到的拆分是前人经验的总结,我罗列了三种行家的拆分姿势,每个的的经验和视野不同,各有偏颇,我在这里.

2020-05-12 20:20:29

99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!

罗曼罗兰说过:世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活。对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手撸一个简易版的 Lombok,让你理解这个热门技术背后的执行原理,以及它的优缺点分析。简介在讲原理之前,我们先来复习一下 Lombok (老司机可以直接跳过本段看原理部分的内容)。Lombok 是一个非常热门的开源项目 (github.com/rzwitserloo…),使用它可以...

2020-05-11 08:55:14

记住这四点,彻底搞懂Redis到底快在哪里

前言Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数据结构和算法组成。Redis还提供了键过期,发布订阅,事务,Lua脚本,哨兵,Cluster等功能。Redis执行命令的速度非常快,根据官方给的性能可以达到10w+qps。那么本文主要介绍到底Redis快在哪里,主要有以下几点:开发语言 纯内存访问 单线程 非阻塞多路I/O复用机制...

2020-05-10 10:04:47

一口气说出6种,@Transactional注解的失效场景

引言之前面试被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败。所以今天简单的和大家分享一下@Transactional相关的知识。@Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功、要么同时失败。使用@Transactional注解时需要注意许多的细节,不然你会发现@Transactional总是莫名其妙的就失效了。一、事务事务管理在系统开发中是不可缺少的一部分,Spring提供了很好...

2020-05-09 11:56:52

全网最全的分库分表方案

一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库。2、CPU瓶颈第一种:SQL问题,如SQL中

2020-05-08 20:22:30

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取