自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

廖志伟

你的自侓决定你的高度

  • 博客(420)
  • 资源 (15)
  • 论坛 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 【Java面试】:第三章:P6级面试

互联网 Java 工程师知识扫盲个人介绍我是廖志伟,一名java开发工程师,CSDN博客专家,多年一线研发经验,曾就职多家互联网公司,任Java开发工程师职位,参与多个千万级并发互联网产品研发,对大型分布式,高并发及微服务架构有非常深入研究。项目说明本项目大部分内容来自廖志伟编写,版权归作者所有,内容涵盖Java基础、框架、设计模式、缓存、多线程、分布式事务、数据库、JVM、锁、高并发、分布式、高可用、微服务、海量数据处理等领域知识。我对这部分知识做了一个系统的整理,方便学习查阅。内容模块Ja

2021-07-18 12:41:52 563 3

原创 实战:第十九章:存入Long类型对象,在代码中使用Long类型接收,结果报类型转换错误

使用雪花算法随机生成的id,使用Long类型存储到redis的时候,反序列化为Object类型,对于数值类型,取出后统一转为Object,导致泛型类型丢失,数值自动转为了Integer类型,range of int (-2147483648 - 2147483647)。解决方案:...

2021-07-15 10:08:53 31

原创 缓存:第一章:缓存优化

2021-06-29 10:20:17 283

原创 架构:第九章:架构设计(为什么要这么设计,解决了什么问题)

2021-06-10 14:59:33 2083 65

原创 【JavaP6大纲】MySQL篇:如何设计可以动态扩容缩容的分库分表方案?

如何设计可以动态扩容缩容的分库分表方案?对于分库分表来说,主要是面对以下问题:选择一个数据库中间件,调研、学习、测试;设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,比如 3 个库,每个库 4 个表;基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写;完成单库单表到分库分表的迁移,双写方案;线上系统开始基于分库分表对外提供服务;扩容了,扩容成 6 个库,每个库需要 12 个表,你怎么来增加更多库和表呢?这个是你必须面对的一

2021-06-10 14:51:30 48

原创 我的分享:第九章:月薪三万执行计划

如何办成一件事?比如,我要赚钱,一个月月薪三万,我该怎么去做?第一步:挖掘自己的能力,分析可能性作为技术人员(Java开发工程师),我的长处就是技术,通过技术变现,那么有哪些渠道呢?工作,自媒体,写书,接私活,理财等。工作:找一份高薪的工作,技术能力要求高,能力不够的时候需要花大量的时间学习,能力上去了,还需要备战面试,写好简历,准备面试。固定收入(可行)自媒体:这个属于周期长,长期输出干货,提升影响力,副业提升主业,建立个人品牌效应。被动收入(可行)写书:周期中等,文档能力提升不少,副

2021-05-31 22:45:56 1906 22

原创 实战:第十八章:facebook和google免登接入

后端接入facebook其实很简单,后端仅仅需要三步:第一步:通过前端给的access_token获取用户信息https://graph.facebook.com/me第二步:获取应用口令https://graph.facebook.com/v2.8/oauth/access_token第三步:校验前端传入的access_token是否为本应用的access_tokenhttps://graph.facebook.com/debug_token参考链接:https://blog.csdn.n

2021-05-19 10:01:30 351

原创 Linux系统:第十二章:AWS服务器X86架构安装配置Mysql与MongoDB

sudo passwd rootrootsu rootcd /usr/local/chmod 777 /usr/local/上传文件到/usr/local下安装MongoDB(安装文件:链接:https://pan.baidu.com/s/1eZuuUaqBW_eQ7k6DkhSIgg提取码:fe0r )chmod u+x /etc/rc.localecho never > /sys/kernel/mm/transparent_hugepage/enabledecho never

2021-05-01 16:41:48 1162 2

原创 系统归类:第一章:技术专栏

技术类型专栏链接Redishttps://www.cnblogs.com/ysocean/tag/Redis%E8%AF%A6%E8%A7%A3/SpringCouldhttps://blog.csdn.net/forezp/article/details/70148833SpringBoothttps://blog.csdn.net/wangb_java/category_9268684.htmlSpringMVChttps://blog.csdn.net/j...

2021-04-30 16:07:08 361 1

原创 【Java面试】:第二章:P6级面试

Java集合比如说HashMap和ConcurrentHashMap我觉得,你最好在平时能去耐心读一下源码,搜一搜相关的博客,最好能知道每个参数为什么设置成这么大?有什么好处?为什么?你会发现不少东西,网上也有很多视频可以去学。JUC包,毫无疑问的,你得去学,哪怕你平时编程根本不去用,但是你得会,只得知道有这个东西,你至少得知道aba,cas,aqs,unsafe,volatile,sync,常见的各种lock,死锁,线程池参数和如何合理的去设置,你必须明白自旋,阻塞,死锁和它如何去定位,oom如何

2021-04-26 21:12:59 6453 10

原创 【JavaP6大纲】SpringCould篇:网关Zuul、Gateway、nginx的区别

zuul:是Netflix的,早期在微服务中使用较广泛,是基于servlet实现的,阻塞式的api,不支持长连接。 只能同步,不支持异步。不依赖spring-webflux,可以扩展至其他微服务框架。 内部没有实现限流、负载均衡,其负载均衡的实现是采用 Ribbon +Eureka 来实现本地负载均衡。 代码简单,注释多,易理解。Gateway:是springcloud自己研制的微服务网关,是基于Spring5构建,,能够实现响应式非阻塞式的Api,支持长连接。 支持异步。功能更强大,内部

2021-04-19 16:51:15 395 1

原创 【JavaP6大纲】MySQL篇:分库分表之后,id 主键如何处理?

分库分表之后,id 主键如何处理?基于数据库的实现方案数据库自增 id:这个就是说你的系统里每次得到一个 id,都是往一个库的一个表里插入一条没什么业务含义的数据,然后获取一个数据库自增的一个 id。拿到这个 id 之后再往对应的分库分表里去写入。适合的场景:你分库分表就俩原因,要不就是单库并发太高,要不就是单库数据量太大;除非是你并发不高,但是数据量太大导致的分库分表扩容,你可以用这个方案,因为可能每秒最高并发最多就几百,那么就走单独的一个库和表生成自增主键即可。设置数据库 sequence 或者

2021-04-12 17:30:32 448

原创 【JavaP6大纲】MySQL篇:如何设计可以动态扩容缩容的分库分表方案?

如何设计可以动态扩容缩容的分库分表方案?对于分库分表来说,主要是面对以下问题:选择一个数据库中间件,调研、学习、测试;设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,比如 3 个库,每个库 4 个表;基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写;完成单库单表到分库分表的迁移,双写方案;线上系统开始基于分库分表对外提供服务;扩容了,扩容成 6 个库,每个库需要 12 个表,你怎么来增加更多库和表呢?这个是你必须面对的一

2021-04-12 17:29:59 190

原创 【JavaP6大纲】MySQL篇:现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?停机迁移方案我先给你说一个最 low 的方案,就是很简单,大家伙儿凌晨 12 点开始运维,网站或者 app 挂个公告,说 0 点到早上 6 点进行运维,无法访问。接着到 0 点停机,系统停掉,没有流量写入了,此时老的单库单表数据库静止了。然后你之前得写好一个导数的一次性工具,此时直接跑起来,然后将单库单表的数据哗哗哗读出来,写到分库分表里面去。导数完了之后,就 ok 了,修改系统的数据库连接配置啥的,包

2021-04-12 17:11:09 115

原创 【JavaP6大纲】MySQL篇:为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分

**加粗样式# 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?为什么要分库分表?(设计高并发系统的时候,数据库层面该如何设计?)假如我们现在是一个小创业公司(或者是一个 BAT 公司刚兴起的一个新部门),现在注册用户就 20 万,每天活跃用户就 1 万,每天单表数据量就 1000,然后高峰期每秒钟并发请求最多就 10 个。我的天,就这种系统,随便找一个有几年工作经验的,然

2021-04-12 17:04:18 91

原创 【JavaP6大纲】MySQL篇:如何实现 MySQL 的读写分离?MySQL 主从复制原理是啥?如何解决 MySQL 主从同步的延时问题?

如何实现 MySQL 的读写分离?MySQL 主从复制原理是啥?如何解决 MySQL 主从同步的延时问题?如何实现 MySQL 的读写分离?基于主从复制,一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去,数据读取走从库。MySQL 主从复制原理是啥?如何解决 MySQL 主从同步的延时问题?mysql主从复制用途:实时灾备,用于故障切换。读写分离,提供查询服务。备份,避免影响业务mysql主从复制原理:主库将变更写入 binlog 日志,然后从库连接到主库之后,

2021-04-12 16:37:34 76

原创 【JavaP6大纲】MySQL篇:主从问题

主从问题?主从常见问题主从备份不可靠,需要人经常去查看同步状态,一旦出现报错,需要及时人为的处理。出现1236:[ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: ‘Client requested master to start replication from impossible position’, Error_code: 1236解决方案:主从服务器失去连接,出现了宕机

2021-04-12 16:16:22 71

原创 【JavaP6大纲】MySQL篇:如何优化SQL?

如何优化SQL?应尽量避免全表扫描,首先要考虑在 where 及 order by 涉及的列上建立索引避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描应尽量避免在where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描in 和 not in 也要慎用,很多时候用 exists 代替 in 是一个好的选择,对于连续的数值,能用

2021-04-12 15:58:07 212

原创 【JavaP6大纲】MySQL篇:SQL的整个解析、执行过程原理、SQL行转列?

SQL的整个解析、执行过程原理、SQL行转列?sql语句执行顺序(8) SELECT (9)DISTINCT<select_list>(1) FROM <left_table>(3) <join_type> JOIN <right_table>(2) ON <join_condition>(4) WHERE <where_condition>(5) GROUP BY <group_by_list&gt

2021-04-11 16:35:22 279

原创 【JavaP6大纲】分布式会话篇:集群部署时的分布式 Session 如何实现?

集群部署时的分布式 Session 如何实现?1。tomcat + redis2。spring session + redis(1)tomcat + redis使用session的代码跟以前一样,还是基于tomcat原生的session支持即可,然后就是用一个叫做Tomcat RedisSessionManager的东西,在tomcat的配置文件中,配置一下,让所有我们部署的tomcat都将session数据存储到redis即可。(2)spring session + redis给sping s

2021-04-11 16:25:12 110

原创 【JavaP6大纲】SpringCould篇:Spring Cloud 和 Dubbo 有哪些区别?

Spring Cloud 和 Dubbo 有哪些区别?dubbo 是二进制传输,占用带宽会少一点。SpringCloud是http 传输,带宽会多一点,同时使用http协议一般会使用JSON报文,消耗会更大。dubbo 开发难度较大,所依赖的 jar 包有很多问题大型工程无法解决。SpringCloud 对第三方的继承可以一键式生成,天然集成。SpringCloud 接口协议约定比较松散,需要强有力的行政措施来限制接口无序升级。最大的区别:Spring Cloud抛弃了Dubbo 的RPC通信,采

2021-04-11 16:23:36 72

原创 【JavaP6大纲】SpringCould篇: Spring Boot 和 Spring Cloud,谈谈你对它们的理解?

Spring Boot 和 Spring Cloud,谈谈你对它们的理解?Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot来实现。...

2021-04-11 16:22:56 71

原创 【JavaP6大纲】SpringCould篇:如何限流?在工作中是怎么做的?说一下具体的实现?

如何限流?在工作中是怎么做的?说一下具体的实现?计数器:控制单位时间内的请求数量。缺陷:设每分钟请求数量为60个,每秒可以处理1个请求,用户在 00:59 发送 60 个请求,在 01:00 发送 60 个请求 此时2秒钟有120个请求(每秒60个请求),远远大于了每秒钟处理数量的阈值。滑动窗口:滑动窗口是对计数器方式的改进, 增加一个时间粒度的度量单位。把一分钟分成若干等分(6份,每份10秒), 在每一份上设置独立计数器,在 00:00-00:09 之间发生请求计数器累加1.当等分数量越大限流统计就越

2021-04-11 16:21:43 179

原创 【JavaP6大纲】SpringCould篇:熔断框架如何做技术选型?选用 Sentinel 还是 Hystrix?

熔断框架如何做技术选型?选用 Sentinel 还是 Hystrix?功能SentinelHystrix隔离策略信号量隔离线程池隔离/信号量隔离熔断降级策略基于响应时间或失败比率基于失败比率实时指标实现滑动窗口滑动窗口(基于 RxJava)规则配置支持多种数据源支持多种数据源扩展性多个扩展点插件的形式基于注解的支持支持支持限流基于 QPS,支持基于调用关系的限流不支持流量整形支持慢启动、匀速器模式不支持系

2021-04-11 16:20:23 160

原创 【JavaP6大纲】SpringCould篇:服务发现组件 Eureka 的主要调用过程?Eureka 和 Zookeeper 都可以提供服务注册与发现的功能,它们有什么区别?

服务发现组件 Eureka 的主要调用过程?Eureka 和 Zookeeper 都可以提供服务注册与发现的功能,它们有什么区别?1、Eureka Server 启动成功,等待服务端注册。在启动过程中如果配置了集群,集群之间定时通过 Replicate 同步注册表,每个 Eureka Server 都存在独立完整的服务注册表信息2、Eureka Client 启动时根据配置的 Eureka Server 地址去注册中心注册服务3、Eureka Client 会每 30s 向 Eureka Server

2021-04-11 16:19:35 62

原创 【JavaP6大纲】SpringCould篇:常用组件底层实现

常用组件底层实现?Eureka是微服务架构中的注册中心,专门负责服务的注册与发现。服务中都有一个Eureka Client组件,这个组件专门负责将这个服务的信息注册到Eureka Server中。Eureka Client告诉Eureka Server,自己在哪台机器上,监听着哪个端口。而Eureka Server是一个注册中心,里面有一个注册表,保存了各服务所在的机器和端口号。Eureka Client把这些相关信息从Eureka Server的注册表中拉取到自己本地缓存起来Feign直接就是

2021-04-11 16:18:32 187 1

原创 【JavaP6大纲】SpringCould篇:什么是微服务

什么是微服务?单体架构的痛点缺点一:项目过于臃肿当大大小小的功能模块都集中在同一项目的时候,整个项目必然会变得臃肿,让开发者难以维护。缺点二:资源无法隔离,整个单体系统的各个功能模块都依赖于同样的数据库、内存等资源,一旦某个功能模块对资源使用不当,整个系统都会被拖垮。缺点三:无法灵活扩展当系统的访问量越来越大的时候,单体系统固然可以进行水平扩展,部署在多台机器上组成集群,但是这种扩展并非灵活的扩展。比如我们现在的性能瓶颈是支付模块,希望只针对支付模块做水平扩展,这一点在单体系统是做不到的。微服务架

2021-04-11 16:17:44 56

原创 【JavaP6大纲】Dubbo篇:为什么要进行系统拆分?如何进行系统拆分?拆分后不用 Dubbo 可以吗?

为什么要进行系统拆分?如何进行系统拆分?拆分后不用 Dubbo 可以吗?为什么要将系统进行拆分?要是不拆分,一个大系统几十万行代码,20 个人维护一份代码,简直是悲剧啊。代码经常改着改着就冲突了,各种代码冲突和合并要处理,非常耗费时间;经常我改动了我的代码,你调用了我的,导致你的代码也得重新测试,麻烦的要死;然后每次发布都是几十万行代码的系统一起发布,大家得一起提心吊胆准备上线,几十万行代码的上线,可能每次上线都要做很多的检查,很多异常问题的处理,简直是又麻烦又痛苦;而且如果我现在打算把技术升级到最新的

2021-04-11 16:16:31 48

原创 【JavaP6大纲】Dubbo篇:Dubbo 用到哪些设计模式?

Dubbo 用到哪些设计模式?Dubbo 框架在初始化和通信过程中使用了多种设计模式,可灵活控制类加载、权限控制等功能。工厂模式Provider 在 export 服务时,会调用 ServiceConfig 的 export 方法。ServiceConfig中有个字段:private static final Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();D

2021-04-11 16:15:44 166

原创 【JavaP6大纲】Dubbo篇:Dubbo SPI 和 Java SPI 区别?

Dubbo SPI 和 Java SPI 区别?spi 是啥?spi,简单来说,就是 service provider interface ,说白了是什么意思呢,比如你有个接口,现在这个接口有 3 个实现类,那么在系统运行的时候对这个接口到底选择哪个实现类呢?这就需要 spi 了,需要根据指定的配置或者是默认的配置,去找到对应的实现类加载进来,然后用这个实现类的实例对象。举个栗子。你有一个接口 A。A1/A2/A3 分别是接口 A 的不同实现。你通过配置 接口 A = 实现 A2 ,那么在系统实际运行的

2021-04-09 10:09:14 256

原创 【JavaP6大纲】Dubbo篇:Dubbo特性?

Dubbo特性?透明远程调用:就像调用本地方法一样调用远程方法;只需简单配置,没有任何 API 侵入负载均衡机制:Client 端 LB,可在内网替代 F5 等硬件负载均衡器容错重试机制:服务 Mock 数据,重试次数、超时机制等自动注册发现:注册中心基于接口名查询服务提 供者的 IP 地址,并且能够平滑添加或删除服务提供者性能日志监控:Monitor 统计服务的调用次调和调用时间的监控中心服务治理中心:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等手动配置自动治理中心:无,比

2021-04-09 10:08:33 232

原创 【JavaP6大纲】Dubbo篇:如何自己设计一个类似 Dubbo 的 RPC 框架?

如何自己设计一个类似 Dubbo 的 RPC 框架?上来你的服务就得去注册中心注册吧,你是不是得有个注册中心,保留各个服务的信息,可以用 zookeeper 来做,对吧。然后你的消费者需要去注册中心拿对应的服务信息吧,对吧,而且每个服务可能会存在于多台机器上。接着你就该发起一次请求了,咋发起?当然是基于动态代理了,你面向接口获取到一个动态代理,这个动态代理就是接口在本地的一个代理,然后这个代理会找到服务对应的机器地址。然后找哪个机器发送请求?那肯定得有个负载均衡算法了,比如最简单的可以随机轮询是不是

2021-04-09 10:07:53 246

原创 【JavaP6大纲】Dubbo篇:分布式服务接口请求的顺序性如何保证?

分布式服务接口请求的顺序性如何保证?服务 A 调用服务 B,先插入再删除。好,结果俩请求过去了,落在不同机器上,可能插入请求因为某些原因执行慢了一些,导致删除请求先执行了,此时因为没数据所以啥效果也没有;结果这个时候插入请求过来了,好,数据插入进去了,那就尴尬了。本来应该是 “先插入 -> 再删除”,这条数据应该没了,结果现在 “先删除 -> 再插入”,数据还存在。首先,一般来说,个人建议是,你们从业务逻辑上设计的这个系统最好是不需要这种顺序性的保证,因为一旦引入顺序性保障,比如使用分布式锁

2021-04-08 17:12:32 117 1

原创 【JavaP6大纲】Dubbo篇:如何基于 Dubbo 进行服务治理、服务降级、失败重试以及超时重试?

如何基于 Dubbo 进行服务治理、服务降级、失败重试以及超时重试?服务治理调用链路自动生成一个大型的分布式系统,或者说是用现在流行的微服务架构来说吧,分布式系统由大量的服务组成。那么这些服务之间互相是如何调用的?调用链路是啥?说实话,几乎到后面没人搞的清楚了,因为服务实在太多了,可能几百个甚至几千个服务。那就需要基于 dubbo 做的分布式系统中,对各个服务之间的调用自动记录下来,然后自动将各个服务之间的依赖关系和调用链路生成出来,做成一张图,显示出来,大家才可以看到对吧。服务访问压力以

2021-04-08 11:19:29 146 9

原创 【JavaP6大纲】Dubbo篇:Dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?

Dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?负载均衡:1、Random LoadBalance,随机(默认的负载均衡策略)是加权随机算法的具体实现,可以完全随机,也可以按权重设置随机概率。2、RoundRobin LoadBalance,轮循。可以轮询和加权轮询。存在响应慢的提供者会累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。跟运维同学申请机器,有的时候,我们运气好,正好公司资源比较充足,刚刚有一批热气腾腾、刚刚做

2021-04-08 11:03:00 1174 17

原创 【JavaP6大纲】Dubbo篇:Dubbo 支持哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?

Dubbo 支持哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?Dubbo协议:dubbo 缺省协议 采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况,不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。连接个数:单连接连接方式:长连接传输协议:TCP传输方式:NIO异步传输序列化:Hessian 二进制序列化适用范围:传入传出参数数据包较小(建议小于100K),消费者比

2021-04-08 10:57:09 1352 17

原创 【JavaP6大纲】MySQL篇:传播行为

传播行为?Spring支持7中事务传播行为一个场景:假设外层方法里面包含二个新增用户和新增角色的方法,二个方法后面还会抛一个异常。propagation_required(需要传播):当前没有事务则新建事务,有则加入当前事务。外围方法未开启事务,插入用户表和用户角色表的方法在自己的事务中独立运行,外围方法异常不影响内部插入,所以两条记录都新增成功。外围方法开启事务,内部方法加入外围方法事务,外围方法回滚,内部方法也要回滚,所以两个记录都插入失败。propagation_supports(支持传播

2021-04-08 10:46:54 96 1

原创 【JavaP6大纲】Dubbo篇:Dubbo 的工作原理?注册中心挂了可以继续通信吗?

Dubbo 的工作原理?注册中心挂了可以继续通信吗?第一步:provider 向注册中心去注册第二步:consumer 从注册中心订阅服务,注册中心会通知 consumer 注册好的服务第三步:consumer 调用 provider第四步:consumer 和 provider 都异步通知监控中心服务注册与发现1、Provider(提供者)绑定指定端口并启动服务2、供者连接注册中心,并发本机 IP、端口、应用信息和提供服务信息发送至注册中心存储3、Consumer(消费者),连接注册中心

2021-04-08 10:44:53 850 11

原创 【JavaP6大纲】Java基础篇:CAS,ABA,volatile特性

CAS,ABA,volatile特性?CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。如果内存地址里面的值和A的值是一样的,那么就将内存里面的值更新成B。CAS是通过无限循环来获取数据的,若果在第一轮循环中,a线程获取地址里面的值被b线程修改了,那么a线程需要自旋,到下次循环才有可能机会执行。ABA 问题:CAS算法实现一个重要前提需要取出内存中的某时刻的数据并在当下时刻比较并交换,那么在这个时间差类会导致数据的变化。比如,一个线程one从内存位置V中取出A,这个时候另外一

2021-04-08 10:21:58 1072 12

原创 【JavaP6大纲】Java基础篇:为什么jdk8以后HashMap会使用红黑树优化?

为什么jdk8以后HashMap会使用红黑树优化?在Jdk1.8版本后,Java对HashMap做了改进,在链表长度超过8且数组长度大于64时,将后面的数据存在红黑树中,以加快检索速度。为什么是使用红黑树而不是AVL树,AVL树是完全平衡二叉树阿?在CurrentHashMap中是加锁了的,实际上是读写锁,如果写冲突就会等待,如果插入时间过长必然等待时间更长,而红黑树相对AVL树他的插入更快!在AVL树中,从根到任何叶子的最短路径和最长路径之间的差异最多为1。在红黑树中,差异可以是2倍。在AVL树中

2021-04-08 10:21:17 1637 16

jdk,tomcat,mysql,rabbitmq部署文档和视频.zip

1.jdk和常用工具教程 2.redis安装启动 3.rabbitmq 4.mysql数据库安装部署 5.tomcat部署 企业级实战安装教程

2021-07-21

国产化达梦数据库20多个pdf.zip

最全的国产化达梦数据库文档:企业真实开发,运维人员使用的文档 DM8_SQL语言使用手册 DM8安装手册 DM8程序员手册 DM8系统管理员手册 DM8_dexp和dimp使用手册.pdf DM8_Disql使用手册.pdf DM8_dmdbchk使用手册.pdf DM8_Linux服务脚本使用手册.pdf DM8备份与还原.pdf DM8大规模并行处理MPP.pdf DM8共享存储集群.pdf DM8集群代理使用手册.pdf DM8数据守护与读写分离集群V4.0.pdf DM8系统包使用手册.pdf DM8作业系统使用手册.pdf

2021-07-21

深入理解jvm虚拟机(快速入门JVM.ppt)

深入介绍jvm,

2019-02-27

P6级付费专栏文档.zip

挑战月薪25k。设计模式实现,框架源码解读,分布式微服务解决方案,海量数据高并发解决方案,中间件,自动化构建与部署,性能调优与故障排除。该资源是我所有付费专栏的文档,里面有我所有付费专栏的博文。

2021-02-22

Java学习PDF.zip

二十多个PDF文档,Java学习的,你看着办吧,反正都是免费分享的

2020-05-08

Java中高级面试题(月薪过万).pdf

前一段时间居然有人拿着我分享到群里的文档拿到咸鱼上去卖,真的气愤,这里我直接上传一个文档,关于面试的,都是我花了个把月统计的,大概200多页的,都是实际面试经常容易被问到的,看完这个文档你要是拿不到月薪过万,你来找我。

2019-12-20

菜鸟虚怀项目笔试题(1).docx

都是代码编程,菜鸟虚怀项目组的面试题,有多线程,还有几题懒的写,也不知道对不对。

2019-09-05

JUC线程高级

JUC线程高级,

2019-02-27

MySQL高级脑图

主要内容二大主题:join查询,索引与数据处理 join查询:sql的执行顺序,七大join语句 索引与数据处理:索引是什么?索引结构,索引分类,explain是什么,能干什么怎么用,各字段名称介绍,Case,索引生效,批量数据脚本:插入1000万条数据

2019-02-22

x86架构下Linux安装MySQL,Redis,Mongodb,jdk,tomcat视频.zip

x86架构下Linux安装MySQL,Redis,Mongodb,jdk,tomcat真实安装

2021-05-01

国产化数据库:达梦数据库安装,配置,使用,设计

DM8系统管理员手册.pdf,

2020-06-22

GC垃圾回收

GC垃圾回收

2019-02-27

docker常用命令.doc

docker常用命令,安装docker,镜像,容器,仓库,数据券,网络,定制镜像,Docker compose,Docker machine,Docker swarm

2020-09-22

JAVASE知识脑图

花了好几天整理了一份javase知识脑图,一共有15章,写的有些细,在我的博客中也有分布

2018-12-03

Mysql高级:锁

主要二个主题:锁机制和全局机制 锁机制:概述,三锁:表锁和行锁,页锁

2019-02-22

菜鸟面试

发表于 2019-09-05 最后回复 2020-08-02

JAVA CAS 单点登录 登录成功后 不跳转指定URL

发表于 2019-04-11 最后回复 2019-04-11

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

TA关注的人 TA的粉丝

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