
架构
文章平均质量分 76
Java全栈研发大联盟
好记性不如烂笔头,好好学
展开
-
服务预热问题
一、什么是服务预热?所谓服务预热,就是在服务启动完成到对外提供服务之前,针对特定场景提供一些初始化准备操作,比如线程池预热、缓存预热、数据库预热、web预热和jvm预热等等,需要注意的是,预热操作需要在应用真正对外提供服务之前完成,那么我们就可以基于框架的事件或者扩展点来完成这个操作,比如ContextRefreshedEvent和ApplicationReadyEvent事件,InitializingBean和ApplicationContextAware扩展点,以及@PostConstruct和ini原创 2022-04-09 11:40:14 · 3019 阅读 · 0 评论 -
分布式锁的3种实现方式
有这3种方式:基于数据库实现的分布式锁基于Redis实现的分布式锁基于Zookeeper实现的分布式锁基于数据库的分布式锁实现分布式锁最“简单”的方式就是直接创建一张锁表,通过操作表数据来实现加锁、解锁。我们可以创建这样一张表CREATE TABLE `myLock` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `method_name` varchar(100) NOT NULL DEFAULT '' COMMENT '锁原创 2022-04-08 16:44:34 · 145 阅读 · 0 评论 -
面试官:“来说说常用的高并发限流方案吧!”
Hello大家好,端午节到了,放松娱乐之余,也别忘了给自己充充电啊,这不,小慕今天就和大家一起学习学习高并发情况下的“限流策略”!为啥要做流量控制呢?以下图为例,可以看出上游的A、B服务直接依赖了下游的基础服务C、D和E,对于A,B服务都依赖的基础服务D这种场景,服务A和B其实处于某种竞争关系,如果服务A的并发阈值设置过大,当流量高峰期来临,有可能直接拖垮基础服务D从而影响到服务B,即雪崩效应。限流即流量控制,或者高大上一点,叫做流量整形,限流的目的是在遇到流量高峰期或者流量突...原创 2021-06-16 13:03:16 · 865 阅读 · 1 评论 -
Java全栈进阶宝典之系列总结
我打算把写过的公众号推文都汇总在这个目录栏之下,方便查阅和总结,现在就开始吧!原创 2021-06-13 19:56:38 · 1529 阅读 · 2 评论 -
听说你还不懂什么是CAP理论?我来带你一起研究
靓仔靓女们,nice to meet you! 进阶之路一直在路上。凡是做过分布式系统开发经验的同学,都应该对CAP理论有一个深刻的掌握,那今天我们一起来学学什么是CAP理论,Fighting。一、CAP理论概述一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。那可能就有人不同意了,为啥只能满足其中的两项呢?为啥非要让我在“一致性”,“可用性”和“分区...原创 2021-05-27 12:50:14 · 577 阅读 · 0 评论 -
Eureka和Zookeeper到底有什么区别?
今天风和日丽,阳光高照,虽然是周末,但是小慕仍然来到了公司肝文,不为别的,就为了让关注我的靓仔靓女们有东西值得看。(快夸我勤快,哈哈)。 话说天气现在越来越热起来了,于是我穿上了我的凉皮鞋,被同事吐槽是罗马战士的战靴,看图,反正我是觉得挺好看的,Great!废话不多说了,我们看看今天要学习的内容吧,eureka和zookeeper有什么区别? 当年我入职半年以后,曾经有领导找我谈话的时候,曾经就问我这两者有什么区别。当时我没回答上来,后来我就专门查资料去搞明白这两者的区别是啥...原创 2021-05-27 12:48:44 · 490 阅读 · 3 评论 -
都2021年了,你还不懂幂等性问题的解决方案?
hello,大家好,很抱歉昨天没有发推文,因为昨天在学习自媒体运营的知识,耽搁了,不过今天给大家补上了。 记得上次领导找我谈话,你懂的,先唠嗑唠嗑XXX, 然后顺便考察了我一个问题,幂等性问题是如何解决的? 我一想,这种问题不是面试宝典里经常有的吗,于是小慕果不其然的答出来了7种解决思路啦,接下来小慕就给大家分享一下我是怎么回答领导的提问的。方案一:前端做校验在用户点击完提交按钮后,我们可以把按钮设置为不可用或者隐藏状态。 前端限制比较简单,但有个致命错误,如...原创 2021-05-27 12:46:51 · 592 阅读 · 2 评论 -
你们当时是如何把系统不停机迁移到分库分表的?
1、面试题现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表(也就是单库)动态切换到“分库分表”上?2、面试官心里分析你看看,你现在已经明白为啥要分库分表了,你也知道常用的分库分表中间件了,你也设计好你们如何分库分表的方案了(水平拆分、垂直拆分、分表),那问题来了,你接下来该怎么把你那个单库单表的系统给迁移到分库分表上去?所以这都是一环扣一环的,就是看你有没有全流...原创 2020-01-21 08:50:42 · 1828 阅读 · 0 评论 -
分布式事务问题以及解决方案
分布式系统的事务,如下图,在员工系统里面首先调用本系统的接口来网员工数据表里面插入一条数据,然后通过远程调用财务系统和请假系统的接口来分别往财务数据表和请假数据表里面各插入一条数据! 如果发生了异常,比如说第一步插入员工数据没问题,第二步插入财务数据(比如给张三账户添加1000块钱)也没问题,但是在第三步插入请假数据的时候出异常了,这个时候事务回滚只能回滚“员工系统”自己系统的数据,如果要想回滚“...原创 2020-01-19 15:24:56 · 1505 阅读 · 0 评论 -
终于有人把“TCC分布式事务”实现原理讲明白了
之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下。很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用。所以这篇文章,就用大白话+手工绘图,并结合一个电商系统的案例实践,来给大家讲清楚到底什么是 TCC 分布式事务一、业务场景介绍咱们先来看看业务场景,假设你现在有一个电商系统,里面有一个支付订单的场景。那对一个订单支付之后,我们需要做下面...转载 2020-01-19 15:18:21 · 1791 阅读 · 0 评论 -
集群部署时的分布式session问题
首先说一下分布式session问题是什么?如下图所示,假如用户浏览器第一次发送请求(假设是写数据的请求)的时候,请求被分配到左边的服务器上面,然后往左边服务器的session里面存数据。然后用户浏览器第二次发送请求(假设是读数据的请求)的时候,请求被分配到右边的服务器上面,然后到右边服务器的session里面去取数据,肯定是取不到的。原因就是两边服务器的session数据不是一致的,不是同步的...原创 2020-01-16 16:39:57 · 1482 阅读 · 0 评论 -
Springboot + redis + 注解 + 拦截器来实现接口幂等性校验
一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处理重复回调普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次等等二、常见解决方案唯一索引 – 防止新增脏数据token机制 – 防止页面重复提交悲观锁...转载 2020-01-15 12:57:19 · 1568 阅读 · 0 评论 -
Mycat读写分离、主从切换、分库分表的操作记录
系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。下面就针对Mycat的基础知识和应用做一总结性梳理,这些内容有的是从网上收集的,有的是自己做的测试验证信息,如有错误,烦请谅解和指出!一、My...转载 2019-10-16 17:27:43 · 601 阅读 · 0 评论 -
zookeeper基础
Zookeeper什么是Zookeeper?Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以...原创 2018-10-02 16:28:40 · 532 阅读 · 0 评论 -
Nginx学习(一)
Nginx实现高可用nginx入门什么是nginx?nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,所以现在很多知名的公司都在使用nginx。反向代理服务器有哪些?Nginx、lvs、F5(硬件)...原创 2018-09-25 17:47:24 · 1168 阅读 · 0 评论 -
Nginx在linux下的安装部署
Nginx在linux下的安装部署2 Nginx下载1)pcrehttp://www.pcre.org/2)nginxhttp://nginx.org/3 Nginx安装3.1 安装前的准备1)准备 pcre-8.12.tar.gz。该文件为正则表达式库。让nginx支持rewrite需要安装这个库。2)准备 nginx-1.8.1.tar.gz。该文件为nginx的linux版...原创 2018-09-25 18:38:48 · 494 阅读 · 0 评论 -
Dubbo基础
什么是Dubbo?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用,说白了就是个远程服务调用的分布式框架。告别Web Service模式中的wsdl,以服务者与消费者的方式在dubbo...原创 2018-10-03 17:23:58 · 594 阅读 · 0 评论 -
dubbo高级
Dubbo-admin管理平台搭建步骤:将dubbo-admin.zip 解压到webapps目录下修改dubbo.properties zk注册中心连接地址连接信息启动tomcat即可遇到的问题:在Windows环境下启动tomcat不成功,其实是tomcat环境变量没有配置的原因,跟dubbo-admin无关。...原创 2018-10-04 09:06:46 · 538 阅读 · 0 评论 -
跨域问题详解
发生跨域的三个必要条件大白话解释:所谓跨域其实就是浏览器对某些请求进行拦截,不允许访问,所以浏览器就是一个中间桥梁一样,它说让你通过就让你通过。它说不让你通过那就不让你通过。发生跨域的三个必要条件:也许你不假思索的就能回答出 不同协议,不同域名,不同端口。没有问题,但并不准确,我更倾向于把这三个叫 跨域的三要素,那什么是跨域形成的必要条件呢?浏览器限制: 即浏览器对跨域行为进行检测和阻止......原创 2019-08-27 17:19:52 · 1702 阅读 · 0 评论 -
集群情况下Session共享解决方案
集群情况下session会产生什么原因?因为Session存放在JVM内存中,集群的话多个JVM不会共享Session共享解决方案1.nginx或者haproxy做的负载均衡)用Nginx 做的负载均衡可以添加ip_hash这个配置,用haproxy做的负载均衡可以用 balance source这个配置。从而使同一个ip的请求发到同一台服务器。(这个ip是你的电脑或者手机或者pad...原创 2018-09-26 10:31:08 · 1252 阅读 · 0 评论