
分布式
bohu83
微信:bohu83
展开
-
apollo 动态监听配置文件
1 默认的@Value 就能自动监听更新。底层也是依赖于ConfigChangeListener。如果配置了一堆数据,不想每次都去动态加载。可以使用ApolloConfigChangeListener原创 2021-06-03 18:54:29 · 4019 阅读 · 0 评论 -
Redisson RList 的性能问题
问题: 使用类似RList<String> list = redisson.getList("list"); 这种情况下,通常的list的遍历操作。还是打log.调用时间都会特别长.打了下日志,看基本上一次list变量都是包含10条记录。就是100ms的耗时。而通常的bucket操作都在10ms以下差距明显。解决:RList并不是一次性将redis中的信息拉取到内存里,而是每次遍历都去redis获取一下,所以在打日志还会取Redis拉取。改成:RBuc...原创 2021-05-21 23:09:11 · 1581 阅读 · 0 评论 -
rocketmq 基础知识及 迁移
一 序 因为要迁移rocketmq 到新集群,梳理下对应的知识点。内容来自于杨开元编写的《rocketmq 实战于原理解析》。二 知识2.1 基础知识 基础概念:Producer、 Consumer、 Broker 和 NameServer配置参数含义:l)namesrvAddr:NamerServer 的地址,可以是多个 。2)brokerClusterName=Cluster 的地址,如果集群机器数比较多,可以分成多个 Cluster,每个 Cluster 供一个业...原创 2020-08-03 19:47:34 · 2497 阅读 · 0 评论 -
.企业级异步业务场景分布式事务设计与实践(2 )
一 序 继续听下孙玄大佬的课,这是第二天学习笔记。问题:1 mq下游消费服务如何保证事务的处理成功?2. 异步场景分布式事务存在性能瓶颈吗?如何优化?二mq下游消费服务如何保证事务的处理成功1. 问题是否需要幂等处理? 删除服务不需要。2. 是否需要去重? 删除不需要,支付需要,因为多节点部署,存在这种可能。需要分布式锁。异步场景分布式事务存在性能瓶颈吗?1)拆分每一步,看是否是可水平扩展,是理论上就不存在性能瓶颈(只是理论,实际上要考虑成本、业务做折中。...原创 2020-07-12 21:04:37 · 280 阅读 · 0 评论 -
彻底解密企业级分布式事务设计与实践-学习笔记
一 序 停了下奈学教育孙玄大佬的课。视频讲了3个小时,要是件立案到1小时就好多了。记一下笔记:二 目录2.1分布式事务的本质1 一次请求涉及多个存储系统 如:多个db,或者db+redis,db+mq,db+es2. 业务场景容忍度:商品+订单+支付业务场景:同步场景、异步场景2.2 普适方法论1. 拆分2. 补偿:前向补偿(retry),后向补偿:这里介绍了Redis多个操作执行事务: 可以使用lua脚本,也可以使用rediss...原创 2020-07-11 11:25:33 · 245 阅读 · 0 评论 -
奈学公开课RocketMq学习笔记二
一 序 本文属于奈学教育rocketmq学习笔记。主讲老师陈东。这节课听了半截,后来的pdf也找不到了。业务场景1、用户下单1)创建订单+减库存2、发布或更新商品信息1)写商品库+更新外置索引二事务消息实现原理2.1分布式事务1、强一致1)一致性协议2、两阶段提交2PC3、三阶段提交3PC4、落地方案 => XA规范1)资源管理器=> 事务参与者2)事务管理器=> 事务协调者5、柔性事务1)最终一致性方案2)TCC(Try-...原创 2020-06-21 17:42:22 · 424 阅读 · 0 评论 -
奈学教育rocketmq学习笔记1
序 本文属于奈学教育rocketmq学习笔记。主讲老师陈东。推荐在线观看,效果更好。1.目录应用场景分析:使用topic管理。概念理解。原创 2020-06-04 22:25:25 · 599 阅读 · 0 评论 -
redisson hincrby 遇到的编码问题
一 问题 老项目的redis 要切换到redis集群,所以客户端从leettuce的RedisAsyncCommands切换到到redisson.一个常见的hash增长:public long hincrby(String key,String field,Long amount){ //新旧代码开关 if( 老的Redis){ ...原创 2020-03-24 11:32:27 · 2541 阅读 · 0 评论 -
Caused by: com.alibaba.dubbo.remoting.RemotingException: Fail to decode request due to: RpcInvocatio
问题:Caused by: com.alibaba.dubbo.remoting.RemotingException: Fail to decode request due to: RpcInvocation [methodName=sync, parameterTypes=null, arguments=null, attachments={path=com.XX.Service, inp...原创 2020-03-20 09:53:46 · 3760 阅读 · 0 评论 -
spring 事务传播级别整理
使用事务 数据库的事务是常见的,相关知识有:事务的特性与隔离级别。网上很多介绍的,本文不展开。实际开发中为了减少使用try{}catch{} 捕获异常,专注于业务,更加常见的做法是使用spring的注解。对于声明式事务,是使 用@Transactional 进行标注的,就是告诉spring什么地方启用数据库事务功能。底层想关的参数与传播级别、超时时间、只读等比较好理解,单独整理...原创 2020-01-08 10:31:06 · 323 阅读 · 0 评论 -
spring 集成redisson
一 背景 一定压力下,Redis的主从结构还是容易出问题,升级到Redis集群模式会提高性能。 如何平滑升级是需要重点考虑的。这里不展开,项目中升级遇到新项目springboot.老项目spring。这里看下如何集成。二 xml 整合首先推荐官网,看懂官网就不用看我啰嗦了。https://github.com/redisson/redisson/wiki/14.-%E...原创 2019-12-24 20:38:44 · 2183 阅读 · 0 评论 -
filebeat 6.7 Linux安装与启动
一 安装:cd 到目标文件目录wgethttps://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.7.1-linux-x86_64.tar.gz--2019-12-19 11:10:40--https://artifacts.elastic.co/downloads/beats/filebeat/filebea...原创 2019-12-19 18:38:45 · 2119 阅读 · 0 评论 -
《redis设计与实现》读书笔记
一 序 在看《redis设计与实现》,书中的版本毕竟是3.0的老一些了,荣有参考意义,代码以3.2版本为准。 字符串是Redis中最为常见的数据存储类型,其底层实现是简单动态字符串sds(simple dynamic string),是可以修改的字符串。Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类...原创 2018-11-08 21:07:35 · 404 阅读 · 0 评论 -
分布式系统调用链监控
一 背景 分布式服务化框架下,由于分布式服务间存在相互依赖,彼此协同来完成各类业务场景。下图是一个典型的业务场景,从前端发起一个请求,到最后的业务完成,需要经过很多环节,这些环节可能都是分布式服务的方式提供,部署在不同的服务器上进行。而在这种复杂的分布式服务场景下,为了定位问题、性能瓶颈查询、异常日志跟踪等,如果没有服务追踪和分析工具的帮助,都是非常困难的。下图来自Google论文da...原创 2018-10-15 20:53:02 · 5420 阅读 · 0 评论 -
redis: AOF Rewrite
本文转载自:http://mysql.taobao.org/monthly/2016/03/05/AOF介绍Redis提供两种持久化机制RDB: 将数据库的快照以二进制的方式保存到磁盘; AOF: 将所有写入命令及相关参数以协议文本的方式写入文件并持久保存磁盘。本文只关心AOF,简单介绍一下:Redis Server将所有写入的命令转换成协议文本的方式写入AOF文件,例如:Serv...转载 2018-09-25 19:01:40 · 1110 阅读 · 0 评论 -
内部排序:快速排序
基本思想设当前待排序的数组无序区为R[low..high],利用分治法可将快速排序的基本思想描述为:分解:在R[low..high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low..pivotpos-1)和R[pivotpos+1..high],并使左边子区间中所有记录的关键字均小于等于基准记录(不妨记为pivot)的关键字pivot.key,右边...原创 2018-04-11 17:29:44 · 318 阅读 · 0 评论 -
几种序列化协议(fastjson,xstream,jackjson,jdk,hessian)相关数据对比
protobuf 还没看,所以暂时没有加入对比,但是已经默认是最快的序列化协议了。测试点:序列化时间反序列化时间bytes大小测试代码:项目随便找一个pojo.我自己找的常见属性,没有严格测试到每一种数据类型。所以测试数据仅供自己学习。package com.daojia.hessian;import java.io.Serializable;import java.util.Date;i...原创 2018-04-09 11:10:04 · 2089 阅读 · 1 评论 -
redis学习笔记(6):数据过期和淘汰策略:
Redis内存淘汰指的是用户存储的一些键被可以被Redis主动地从实例中删除,从而产生读miss的情况,目的是为了更好地使用内存,用一定的缓存miss来换取内存的使用效率。1清理时机为了防止一次性清理大量过期Key导致Redis服务受影响,Redis只在空闲时清理过期Key。Redis过期Key清理的机制对清理的频率和最大时间都有限制,在尽量不影响正常服务的情况下,进行过期Key的清理,以达到长时...原创 2018-03-21 18:27:10 · 564 阅读 · 0 评论 -
redis学习笔记(5):redis集群
目前到家业务规模,还没有使用redis集群。因为整理相关知识,补充此篇。没有亲自动手搭建集群进行测试,命令参考网上帖子。4.1TwemproxyTwemproxy是一个Twitter开源的一个Redis/Memcache代理服务器,使用方法和普通redis无任何区别,设置好它下属的多个redis实例后,使用时在本需要连接redis的地方改为连接twemproxy,它会以一个代理的身份接收请求 并使...原创 2018-03-20 20:08:52 · 355 阅读 · 0 评论 -
redis学习笔记(4):主从切换
4.1 主从切换redis的主从(master-slave)就是为了数据冗余备份、保证数据的安全、提高性能,在这里主要讲解一下其主从切换的两种方式。4.1.1手动切换上篇说过:默认是主从读写分离的(从节点只读)。1)主节点停止:shutdown 也可以找到对应的线程去kill掉2)将从redis设成主redis:slaveof NO ONE3)从变主之后,测试下:set 。可以插入4)原来的主re...原创 2018-03-20 15:38:02 · 1081 阅读 · 0 评论 -
【转】CAP的相对论
背景:之前的《大型网站技术核心原理与案例分析》《大型网站系统与JAVA中间件实践》,类型都差不多,属于偏理论的,我个人觉得《大型网站系统与JAVA中间件实践》这本书干货更多些,前三章跟上本书差不多,主要是从四-七章,分别介绍了服务框架、数据访问层、消息中间件、软负载中心。对应的要看实际落地:dubbo、mq、zookeeper,其中分布式数据库比较复杂,没有代表性开源的,貌似大公司都是自己根据转载 2016-05-04 16:28:24 · 1020 阅读 · 0 评论 -
<从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-第5章zookeeper安装
本文属于分布式系统学习笔记系列,上篇文章整理了整理了第四章ZAB协议。本篇继续梳理第5章。本文介绍:安装zookeeper。一 zookeeper安装1.1下载下载地址:http://mirror.bit.edu.cn/apache/zookeeper1.2上传并解压tar -zxvf zookeeper-3.4.8.tar.gz 这里我找了一台机器,解压过程太原创 2016-05-19 14:13:02 · 854 阅读 · 0 评论 -
<从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-两阶段提交与三阶段提交
一、背景本书第一章的分布式架构,除了单机的acid外,主要是分布式的CAP.参见上一篇转的文章。本篇是第二章的一致性协议部分,分两篇整理。在分布式系统中,为了保证数据的高可用,通常,我们会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上。为了对用户提供正确的增\删\改\差等语义,我们需要保证这些放置在不同物理机器上的副本是一致的。为了解决这种分布式一致性问题原创 2016-05-09 13:45:13 · 2657 阅读 · 0 评论 -
<从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-第5章zookeeper使用
本文属于分布式系统学习笔记系列,上篇文章整理了zookeeper安装,本文继续整理第5章zookeeper使用,只做简单演示。一 使用客户端脚本zkCli.sh执行./zkCli.sh出现以下信息表示连接成功。WatchedEvent state:SyncConnected type:None path:null[zk: localhost:2181(CONNECTED) 0]原创 2016-05-19 17:11:49 · 1206 阅读 · 0 评论 -
<从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-paxos算法
本文属于分布式系统学习笔记系列,上一篇笔记梳理了2阶段、3阶段提交。本文来梳理paxos算法。背景:本书第二章里面作者详细介绍了paxos算法的由来,这里从2.2.3开始。Paxos算法实现的是分布式系统多个结点之上数据的一致性,这个算法有如下特性1.基于消息传递,允许消息传输的丢失,重复,乱序,但是不允许消息被攥改2.在结点数少于半数失效的情况下仍然能正常的工原创 2016-05-09 18:32:54 · 3789 阅读 · 0 评论 -
<从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-zookeeper全局唯一id生成
http://blog.youkuaiyun.com/hengyunabc/article/details/44244951原创 2016-05-20 16:24:12 · 9311 阅读 · 0 评论 -
<从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-zookeeper分布式锁
本文属于分布式系统学习笔记系列,上一篇梳理了第六章的zookeeper使用场景之一全局唯一id 生成,本文继续第六章,介绍分布式锁。原创 2016-05-22 17:52:04 · 1637 阅读 · 0 评论 -
dubbo服务的telnet命令
1连接:测试对应IP和端口下的dubbo服务是否连通,cmd命令如下telnet localhost 20880正常情况下,进入telnet窗口,键入回车进入dubbo命令模式。2查看服务:dubbo>ls3,查看服务详情:4.调用服务:invokeinvoke XxxService.xxxMethod({"pro原创 2016-07-28 16:54:42 · 3165 阅读 · 0 评论 -
爬虫应用-bloomfilter-URL去重
一 序: 小规模的定向爬取,url管理方式比较多,: 1.直接存库 2.md5后存库 或者保存到hashset都能起到类似效果,但是数据量大了之后,上面的方法就扛不住了。二 Bloom Filter详情参考这篇,http://www.cnblogs.com/heaad/archive/2011/01/02/1924195.html Bloom F原创 2017-10-24 13:39:02 · 1213 阅读 · 0 评论 -
【多线程系列二】-master-woker模式:统计单次频率
序:Master-Worker模式是常用的并行设计模式。核心思想是,系统由两个角色组成,Master和Worker,Master负责接收和分配任务,Worker负责处理子任务。任务处理过程中,Master还负责监督任务进展和Worker的健康状态;Master将接收Client提交的任务,并将任务的进展汇总反馈给Client。各角色关系如下图 但是书上给出的demo比较麻烦。原创 2017-10-25 20:16:07 · 502 阅读 · 0 评论 -
netty权威指南 学习笔记http
序 李林峰的《netty权威指南》,从Java的NIO开始介绍,后面介绍TCP粘包拆包。中级篇介绍编解码技术。第10章介绍了HTTP及netty HTTP+XML的技术。因为xml实际使用接口中很少了,所以用json格式来替换下。pom准备: io.netty netty-all 4.1.17.Final commons-logging原创 2017-12-13 21:15:03 · 829 阅读 · 0 评论 -
58到家mq【沈老师 架构师之路:MQ消息整理系列】
序:本文整理自沈老师公众号的mq系列文档:值得推荐下,欢迎大家关注(架构师之路),另外结合到家dmq的李天晨在技术大会分享PPT,比公账号的1分钟系列更加深入,供mq的自研参考,文章有些长,尽量把相关知识点写全。一 mq介绍消息总线(Message Queue),后面是网上的介绍:消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一...原创 2018-02-07 19:09:12 · 974 阅读 · 0 评论 -
redis 相关常见问题
1 redis与常见的key-value NOSQL的区别?为啥redis快? https://blog.youkuaiyun.com/bohu83/article/details/796097592. redis常见数据类型与使用场景?3. redis持久化怎么实现的?优缺点?4.redis 主从复制怎么实现的?5. redis主从切换过程?.6 redis集群如何实现的?7 redis key淘汰策略? ...原创 2018-03-22 20:06:06 · 513 阅读 · 0 评论 -
java学习一致性HASH算法的JAVA实现
下面是程老师博客地址及原文:http://flychao88.iteye.com/blog/1540246一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,...原创 2016-04-11 18:23:11 · 737 阅读 · 0 评论 -
redis学习笔记(1):redis简介
上周运维进行了一次redis的主从切换。线上影响大概2秒。有一些订单收到影响。整理下redis相关的知识点。因为平常封装了jedis,底层机器接触不到。1 简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。全称:REmote DIctionary ServerRedis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以...原创 2018-03-19 15:40:09 · 360 阅读 · 0 评论 -
redis学习笔记2:redis数据类型及使用场景
2.1 数据类型:Redis 数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数...原创 2018-03-19 20:20:18 · 442 阅读 · 0 评论 -
redis学习笔记(3):持久化及主从复制原理
3.1 持久化Redis 提供了多种不同级别的持久化方式:RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重...原创 2018-03-20 14:33:18 · 517 阅读 · 0 评论 -
<从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-ZAB协议
本文属于分布式系统学习笔记系列,上一篇笔记整理了paxos算法,本文属于原书第四章,梳理zookeeper的目标特性及ZAB协议。1、介绍zookeeper1.1ZooKeeper保证一致性特性ZooKeeper是一个典型的分布式数据一致性的解决方案,分布式程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调通知、集群管理、master选举、分布式锁、分布式队列等功能。原创 2016-05-10 23:24:09 · 4648 阅读 · 0 评论