- 博客(5)
- 收藏
- 关注
原创 分库分表实战问题
1.分库分表中水平拆分和垂直拆分的区别?水平拆分:将表数据拆分到不同的数据数据库中。垂直拆分:把一个大表拆成多个小表。字段进行拆分。分表:是指的是把表数据拆分到多张表里面。range分发:每个月生成一个新表。如果访问新的数据还好,但是访问旧的数据就麻烦一些。hash分发:平均分配,但是扩容的话会比较麻烦。2.如何让未分库分表的系统,设计成分库分表的系统?1)停机迁移方案2)双写迁移方案修改系统中所有写库的代码,同时让他写老库和新的分库分表的库。单表的数据中取数据,同步
2020-07-21 21:46:18 242
原创 分布式系统常见实战问题解决方案
1.dubbo工作原理1)service层:接口层,给服务提供者和消费者来实现。2)config层:配置层,主要是对dubbo进行配置的3)proxy层:代理层,透明生成生成客户端的stub和服务单的skeleton4)registry层:服务注册层,负责服务的注册和发现5)cluster层:集群层,封装多个服务提供者的路由以及负载均衡,将多个实例组合成一个服务6)monitor层:监控层,对rpc接口的调用次数和调用时间进行监控7)protocol层:远程调用层,封装rpc调用
2020-07-21 20:10:27 506
原创 项目中常见的缓存问题实战
1.redis的线程模型是什么?为什么单线程的redis比多线程的memcached效率要高得多(为什么redis是单线程的但是还可以支撑高并发)?[redis线程模型]redis的server端会有server socket来接收客户端的请求,当准备完毕会放入io多路复用程序,然后通过io多路复用程序压入一个对列中,然后通过文件事件分派器给到链接应答处理器。这时候发送set命令接着放到io多路复用程序,也会压入队列中,同时会有一个wating状态来去监听io多路复用程序,然后上面发送命令的请求从队
2020-07-13 20:01:04 514
原创 分布式引擎-es
1.es的分布式架构原理能说一下么(es是如何实现分布式的啊)?存储数据的基本单位是索引,比如你现在在es中存一些订单数据,你就应该在es中创建一个索引,order_idx,一个索引差不多就是相当于mysql中的一张表。index -> type -> mapping -> document -> field。index:mysql里面一张表type:详单于订单分类。例如一个是实物商品订单type,一个是虚拟商品订单type;很多情况下,一个index里可能就一个type
2020-07-12 17:07:46 307
原创 消息队列常见实战问题
1.如何保证消息队列的高可用?一、rabbitmq的高可用a.单机模式b.普通集群模式(无高可用性) 【连接获取数据方式】创建的queue只会放到一个mq上,消费的时候如果连接的另一个实例。那么需要去存放数据的queue拉取数据。 【设置连接方式】 1)随机 的获取实例连接所有的queue。缺点:有拉取数据的性能问题 2)指定到有queue的mq上。缺点:单实例的性能瓶颈 【事故处理方式】存放了queue的实例宕机了,未开启...
2020-07-12 15:45:38 403
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人