- 博客(7)
- 收藏
- 关注
原创 如何设计可以动态扩容缩容的分库分表方案
如何设计可以动态扩容缩容的分库分表方案?(1)选择一个数据库中间件,调研、学习、测试(2)设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,3个库每个库4个表(3)基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写(4)完成单库单表到分库分表的迁移,双写方案(5)线上系统开始基于分库分表对外提供服务(6)扩容了,扩容成...
2019-09-15 21:42:25 753
原创 如何把系统不停机迁移到分库分表的?
假设,你现有有一个单库单表的系统,在线上在跑,假设单表有600万数据3个库,每个库里分了4个表,每个表要放50万的数据量假设你已经选择了一个分库分表的数据库中间件,sharding-jdbc,mycat,都可以(1)停机迁移方案我先给你说一个最low的方案,就是很简单,大家伙儿凌晨12点开始运维,网站或者app挂个公告,说0点到早上6点进行运维,无法访问。。。。。。接着到0点,停机,系统...
2019-09-15 21:39:55 927
原创 【Mybatis】 -- 架构分层 + 缓存机制
一、mybatis的架构分层与模块划分mybatis整体架构分类:接口层:与用户应用打交道最多,核心对象是sqlSession;是上层应用和myBatis打交道的桥梁;接口层定义了很多对数据库操作的方法,接口层在收到调用请求的时候,会调用核心处理层的响应模块来完成具体的数据库操作。核心处理层:跟数据库操作相关的动作都是在此完成把接口中传入的参数解析并映射成jdbc类型解析...
2019-09-08 10:18:49 642
原创 如何设计一个支持高并发的系统架构
架构设计层面(1)系统拆分,将一个系统拆分为多个子系统,用dubbo来搞。然后每个系统连一个数据库,这样本来就一个库,现在多个数据库,不也可以抗高并发么。(2)缓存,必须得用缓存。大部分的高并发场景,都是读多写少,那你完全可以在数据库和缓存里都写一份,然后读的时候大量走缓存不就得了。毕竟人家redis轻轻松松单机几万的并发啊。没问题的。所以你可以考虑考虑你的项目里,那些承载主要请求的读场景,...
2019-09-07 15:41:37 1495
原创 【Dubbo】 -- 工作原理
dubbo的十层分层第一层:service层,接口层,给服务提供者和消费者来实现的第二层:config层,配置层,主要是对dubbo进行各种配置的第三层:proxy层,服务代理层,透明生成客户端的stub和服务单的skeleton第四层:registry层,服务注册层,负责服务的注册与发现第五层:cluster层,集群层,封装多个服务提供者的路由以及负载均衡,将多个实例组合成一个服务第...
2019-09-05 17:30:42 775
原创 【java并发】 --wait与notify原理
重量级锁通过对象内部的监视器(monitor)实现,其中monitor的本质是依赖于底层操作系统的Mutex Lock实现,操作系统实现线程之间的切换需要从用户态到内核态的切换,切换成本非常高。前面我们在讲Java对象头的时候,讲到了monitor这个对象,在hotspot虚拟机中,通过ObjectMonitor类来实现monitor。他的锁的获取过程的体现会简单很多.wait 和notif...
2019-09-04 17:28:40 4906 5
原创 【Nginx】
Nginx高性能的反向代理服务器正向代理:代理客户端反向代理:代理服务端http服务器服务端监听一个端口,当client发起一个请求的时候,服务端会根据请求返回相应的资源eg: apache ,nginx,tomcat,jetty静态服务器只返回静态资源,本身不具备解析jsp,servlet等资源的能力,但可以依赖第三方模块来做动态解析的补充apache(早期,并发量扛不住) , ...
2019-09-01 21:44:44 288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人