分布式程序设计
分布式系统和数据分库分表
小小她爹
If you are stuck,you have to work your own way out(如果你陷入困境,就要自己找解决办法)。
展开
-
关于推荐中的过滤
数据量大的情况下使用布隆过滤器,可以采用的方案包括:方案1: 直接将布隆过滤器的value存起来因为布隆过滤器的value比较大,那么可以选择的key-value存储就要支持value比较大,显然redis不是好的选择,因为redis是单线程,容易阻塞,另外,value大的情况下,容易导致集群的负载不均衡,那么可以选择的有hbase和Rocksdb针对hbase来说,支持多版本比较好,高并发读取的性能其实并不是特别好Rocksdb 只是引擎,现在虽然有Rocksdb Secondary I.原创 2021-08-17 23:43:59 · 200 阅读 · 0 评论 -
性能分析点滴
因为是做java开发,熟悉jvm,单纯的使用系统做性能分析已经很久没做了,07年左右和sun合作做过一项目,对系统性能测试有了一些较深入理解,当时的感觉sun的dtrace是真强啊,linux上还是vmstat,原创 2021-06-04 18:38:14 · 285 阅读 · 0 评论 -
sql解析项目
从传统的数据库来说,分为前端和后端,后端主要是引擎的部分,前端主要是sql解析,分析到执行计划上,本文对开源的sql解析项目做个简单的介绍:1、发现一个sql解析很好的项目,apache顶级项目:calcite,有整体的框架官方地址:https://calcite.apache.org/csdn上一博客解析比较好的项目:https://blog.csdn.net/qxc1281/category_8479654.html2、sql解析知乎上给出的建议:https://ww...原创 2021-04-29 11:40:03 · 413 阅读 · 2 评论 -
docker入门学习
1、基本概念 镜像:用程序员的角度来说,就是一个类 容器:镜像的实例,等同于类的实例 仓库:保存镜像的地方,分共有和私有的区别 问题1:实例数据如何保存 问:如果容器是镜像的实例,那么实例运行的数据保存在什么地方 答:通过传递文件路径,实例的数据保存在宿主主机的文件系统目录中(通过docker的数据管理来与宿主主机文件系统通信),传递过程可以参考文章使用Docker搭建GitLa原创 2017-01-18 11:21:07 · 705 阅读 · 0 评论 -
为什么用dubbo
使用dubbo服务框架的原因原创 2016-03-31 20:51:28 · 6245 阅读 · 0 评论 -
分布式系统的故障治理
分布式系统的故障治理和消息跟踪自己的个人理解。原创 2017-07-26 10:23:18 · 1155 阅读 · 0 评论 -
如何基于DNS进行二个机房的数据中心切换
基于DNS的数据中心切换的简单可行的方案原创 2017-05-11 23:57:47 · 4880 阅读 · 0 评论 -
CAP理论中的P理解
分布式领域CAP理论核心中P的理解原创 2017-04-18 09:23:37 · 5138 阅读 · 0 评论 -
微服务、SOA、消息通信相关资源汇总
如题原创 2017-02-08 14:24:18 · 1249 阅读 · 0 评论 -
dubbo学习总结
使用dubbo的总结原创 2017-02-06 18:02:24 · 522 阅读 · 0 评论 -
数据库分库分表实现结构
数据库分库分表实现结构,主要分为客户端和服务器端,文章简单介绍了各自的优缺点。原创 2016-11-25 17:17:21 · 2461 阅读 · 0 评论 -
ThreadPoolExecutor在一个确定的队列下提交任务,如果执行队列满必须阻塞的解决方法
ThreadPoolExecutor在一个确定的队列下提交任务,如果执行队列满必须阻塞的解决方法翻译 2016-12-01 09:39:17 · 5708 阅读 · 0 评论 -
mysq集群原理之Galera replication
网上介绍的都自己感觉比较乱,总结了下,比较简洁介绍Galera replication for MySQL的实现方案原创 2016-05-17 18:52:21 · 5061 阅读 · 0 评论 -
用消息队列和消息应用状态表来消除分布式事务
转载:http://csrd.aliapp.com/?p=671#more-671由于数据量的巨大,大部分Web应用都需要部署很多个数据库实例。这样,有些用户操作就可能需要去修改多个数据库实例中的数据。传统的解决方法是使用分布式事务保证数据的全局一致性,经典的方法是使用两阶段提交协议。长期以来,分布式事务提供的优雅的全局ACID保证麻醉了应用开发者的心灵,很多人都不敢越雷池一步,想像没有分布式事务的转载 2016-03-22 20:07:50 · 759 阅读 · 0 评论 -
redis分布锁Redisson性能测试
redisson是一个用于连接redis的java客户端工作,相对于jedis,是一个采用异步模型,大量使用netty promise编程的客户端框架。结论:稳定性好,但是并发tps压力支持的不是特别好,可能是使用问题,也可能有优化空间原创 2016-04-06 11:43:36 · 9114 阅读 · 3 评论 -
RabbitMQ集群和消息传递确认机制
集群方案 1. 单一模式: 最简单的情况,非集群模式。 2. 默认的集群模式。 对于Queue来说,消息实体只存在于其中一个节点,A、B两个节点仅有相同的元数据即队列结构。 当消息进入A节点的Queue中后,consumer从B节点拉取时,RabbitMQ会临时在A、B间进行消息传输,把A中的消息实体取出并经过B发送给consumer。 该模式存在一个问题就是当A节点故障后,B节点无法取原创 2016-04-08 18:54:44 · 2745 阅读 · 0 评论 -
RabbitMQ消息的传输控制
rabbitmq读取消息,如何保证业务处理完成后ack而且又不堵塞队列。原创 2016-11-23 16:33:24 · 3574 阅读 · 1 评论 -
大规模IM用户数据分库分表之二叉树分库分表
互联网发展带来来了数据量巨增,单数据无法解决,导致出现了数据库分库和分表,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。但是分库和分表带来的问题是业务数据的一致性,线性可扩展性,管理的复杂性和容错性带来了很大的挑战。 数据分库和分表的核心问题是表的ID唯一,然后根据唯一的ID映射到一个物理存储位置。原创 2016-11-19 19:09:20 · 4936 阅读 · 0 评论