
服务化中间件
文章平均质量分 71
个人渣记录仅为自己搜索用
不盈利,只为分享,转载.
找到的原版url的,尽量会贴原版url.
如有版权侵犯,请留言删除.
展开
-
线程切换,线程异步,异步线程, 上下文 传递, threadLocal的处理
当代码中, 录制回放单测拦截中使用了threadLocal上下文时. 异步时就需要上下文切换. 如果做的不好,就会导致上下文未清除.上下文就乱了. 第一次是空,后面再使用到该线程时就不为空,就一直是第一次的上下文了. 除非你在finnally里清空掉.TestContext: 单测中使用的上下文 TestContext.getInstance();但是你不知道你当前的接口的后面是不是还要用TestContext.getInstance()// 执行业务逻辑.在异步线程后,肯定是会报错的.原创 2022-10-12 15:45:22 · 510 阅读 · 0 评论 -
service mesh实践落地
0 Kubernetes+Docker+Istio 容器云实践 含各种框架对比1. 阿里云服务之云效之基于Istio的Kubernetes蓝绿发布https://help.aliyun.com/document_detail/101762.html?spm=5176.10695662.1996646101.searchclickresult.4ac23e1eEXMMn1&...原创 2019-11-20 10:09:19 · 224 阅读 · 0 评论 -
分布式自增 id 的高阶
1. 雪花算法的致命问题是什么 时间倒退2. docker 中无法配置硬件 id3.同一秒并发太多.解决方案: 2. work 值每次重启的时候增加. %2^xxx 1. 如果时间倒退那么就增加 worker值.[ phil 自创 ] 或者 记录上一次时间,时间倒退直接抛错. 传统解决方案,百度也是. 3原创 2017-09-23 00:06:02 · 1664 阅读 · 1 评论 -
dubbo 获取application和ip 打印日志,以便排查问题.
(1) 服务消费方dubbo 获取application和ip 打印日志,以便排查问题.. 让对方有针对的去具体某个机器上去排查.xxxService.xxx();// 远程调用booleanisConsumerSide = RpcContext.getContext().isConsumerSide(); // 本端是否原创 2015-03-09 18:25:01 · 17987 阅读 · 1 评论 -
gRPC服务发现&负载均衡 本身是单机的非分布式,需要简单开发
原文: gRPC服务发现&负载均衡构建高可用、高性能的通信服务,通常采用服务注册与发现、负载均衡和容错处理等机制实现。根据负载均衡实现所在的位置不同,通常可分为以下三种解决方案:1、集中式LB(Proxy Model)在服务消费者和服务提供者之间有一个独立的LB,通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy等实现。LB上有所有服务的地址映射表,通常由转载 2018-01-23 21:42:46 · 781 阅读 · 0 评论 -
dubbo 的线程和连接模型 (长连接复用的两种形式)
本文业务表现博文:稳定性 耗时 监控原因分析-- dubbo rpc 框架 的线程池,io 连接模型. 客户端,服务端原因剖析: 共用连接,出现了排队现象,所以慢了.需要打印 zipkin 日志.把时间点传到下游,遇到耗时高的才打印日志. 或者各处自己打印日志. 后续日志预处理时多行转列.dubbo 基于 netty,minnay.以 netty 为基准 : *分为连接层 *处理层....原创 2017-08-22 18:38:17 · 10227 阅读 · 1 评论 -
日志查询服务,对日志结构化改造traceId,调用链路拓扑图,非error相关。
1. mdc 串联所有业务日志2. 按照规范打印uid【鉴权层】,日志层级(入口层,边界io层,内部业务日志)【便于筛选入口日志,找到对应的TraceId】,日志类型(相当于不同的表,pv日志,事件流类型,业务日志1,业务日志规范2)3. 把日志系统改造成留 生命周期事件流系统,需要业务方打印实体id即entityId,或者 会议id作为生命主题。[其实不合适,因为都是int值,不知道含义,就和...原创 2018-04-09 11:34:15 · 4627 阅读 · 0 评论 -
rpc框架核心要素
1.最简单。 1. 序列化 2. 远程调用协议 3. 通用client2.和原生程序结合紧密 1. 动态反序化。java 不支持泛型形参的方法。 2. 具体类到通用client的映射调用。 这也是动态调用的基础。底层模拟调用。类似dubbo的动态调用,悟空的RpcClientService...原创 2018-04-09 19:10:29 · 706 阅读 · 0 评论 -
负载均衡技术-从远古到现代
1. 远古时代 lvs2. 略微现代 dns ,域名解析. -- 智能dns解析,就近原则3. 内网时代. 阿里的vipServer. 性能层面: 如果过LB的请求量就大到把LB给打挂了怎么办?互联网的流量,尤其是中国互联网的流量,我们要有足够的自信啊,而且参与过春节买票的,春晚修一修抢红包的都能想象得到。 LB虽然可以有standby的方案或者有小规模集群能力,但如果active/sta...转载 2018-05-14 12:20:08 · 299 阅读 · 0 评论 -
thrift 客户端 ,负载均衡 连接池
thrift 客户端 负载均衡https://github.com/yikangfeng/thrift-protocol-clienthttps://github.com/cyfonly/ThriftJ TestThriftJ.Client client = thriftClient.iface(TestThriftJ.Client.class);原创 2017-05-17 23:05:50 · 1988 阅读 · 0 评论 -
java rpc 反序列化 泛型/接口实现/多态/父子类
json 目前只能静态反序列化 泛型参数,不能动态. 不能动态的化就无法做成框架,框架技术.现主流的序列化框架以及他的优缺点框架名称性能排序优点缺点是否推荐Protocal Buffers1序列化快;开源代码侵入性性强,需要相关的配置文件,无法直接使用Java等面向对象编程语言中的对象否Json/fastJson/JackSon2序列化快,小巧,传输数据格式使用范围广,开源夸平台,夸语言对泛型的支...转载 2017-08-09 12:18:13 · 2982 阅读 · 1 评论 -
dubbo 服务的consumer client 调用堆栈 调用链 -- 学习dubbo启动后执行逻辑和代码
重要概念:InvokerInvocationHandler初始化流:ReferenceBean.getObject() (com.alibaba.dubbo.config.spring)ReferenceConfig.createProxy(Map)(3 usages) (com.alibaba.dubbo.config)DubboProtocol.ge原创 2017-08-05 01:10:50 · 1289 阅读 · 0 评论 -
dubbo 服务的调用堆栈-- 学习dubbo启动后执行逻辑和代码
Daemon Thread [DubboServerHandler-10.0.83.144:10871-thread-5] (Suspended (breakpoint at line 270 in TradeCoreRemoteServiceImpl)) TradeCoreRemoteServiceImpl.transfer(TransferRpcParam) line: 27原创 2016-05-13 01:29:45 · 2704 阅读 · 0 评论 -
dubbo 使用 filter 报错解决
dubbo可以用filter实现类似tomcat filter过滤器.实现1.接口请求时间监控. 2.打印输入输出日志(输出日志有应用自己决定) 配置时出现报错.No such extension consumerStaticFilter for filter/com.alibaba.dubbo.rpc.Filterat org.springframework.beans.Ab原创 2015-01-13 20:41:23 · 19473 阅读 · 2 评论 -
在mac的 IntelliJ IDEA 中定制开发 ZooKeeper
1. 找不到 ivy is not available2. /Users/loufei/IdeaProjects/github/zookeeper/build.xml:1260: Execute failed: java.io.IOException: Cannot run program "autoreconf" (in directory "/Users/loufei/Idea原创 2016-10-29 11:52:46 · 3221 阅读 · 0 评论 -
[转]#研发解决方案介绍#Tracing(鹰眼)服务化链路flow监控
[转]#研发解决方案介绍#Tracing(鹰眼)服务化链路flow监控郑昀 最后更新于2014/11/12\原文链接: http://www.cnblogs.com/zhengyun_ustc/p/55solution2.html关键词:GoogleDapper、分布式跟踪、鹰眼、Tracing、HBase、HDFS、本文档适用人员:研发分转载 2016-08-10 17:54:50 · 1605 阅读 · 1 评论 -
何登成-库存热点更新. 有补充语音笔记
from 【阿里在线技术峰会】何登成:AliSQL性能优化与功能突破的演进之路https://yq.aliyun.com/articles/57900同系列,配合起来看,秒杀场景下MySQL的低效--原因和改进.pdf库存热点更新“双十一”时,有很多商品是大家都想去抢购的,库存在数据库内部只是一行标识商品剩余件数的记录,买商品的行为其实是大家在并发的扣减商品记录转载 2017-03-09 11:57:45 · 1549 阅读 · 0 评论 -
rocketmq 延迟队列的实现fei
流程描述:1. producer发消息,设置一个延迟level值. 2. broker 保存消息时替换了topic,和queueId(一个level计算得到一个queueId,并将实际的topic和queueId作为properties保存).3. broker有定时任务(其实是个consumer)消费延迟消息,如果到达延迟时间,将消息取出,改回原来的topic和queueId原创 2016-04-19 13:24:34 · 14781 阅读 · 2 评论 -
一致性 hash的诉求和实现
核心是降低缓存变更时的震荡.实现:简单版. 虚拟节点和真实节点. hashcode 伪随机分布. 可排序.复杂版: 虚拟节点完全有序控制,利用 int 值作为分布条件. key 转成 hashCode 再转成 int.一致性hash与zookeeper实现负载均衡write.blog.youkuaiyun.com/postedit?ref=toolbar原创 2017-05-17 23:13:51 · 298 阅读 · 0 评论 -
HEARTBEAT 原理 HA (high avalable)
HEARTBEAT 软件 安装在对应服务上.然后互相检测.发现某个挂了的时候, 发现自己本地服务未启动,那么启动本地的服务.最核心的还是haresources的配置. 包含了 1.虚拟 ip vip 的迁移. 2.启动什么服务haresources的配置(两台机器配置一样)如下:格式为: 节点名称 虚拟 ip(vip) 其他服务原创 2017-05-18 23:16:08 · 519 阅读 · 0 评论 -
应用迁移,流量切换,数据切换. mysql 同步. 同构,异构两种情况分析.
同构:两边都是mysql,比较简单. 先dump会有一个checkpoint, 然后用这个checkpoint进行数据主从同步.异构:一边是mysql单表,另外一边是mysql 分库分表.先启动触发器,把所有的增删改查 数据都记录下来. 然后dump .然后去确定触发器从哪个id开始执行. insert,delete,update语句. 比较死,但是不需要通过binlog原创 2015-10-08 18:48:01 · 1595 阅读 · 0 评论