随笔- 288  评论- 2706  文章- 1 
  2018年10月8日
摘要:去年的时候写过dubbo+zipkin调用链监控,最近看到zipkin2配合brave实现起来会比我之前的实现要简单很多,因为brave将很多交互的内容都封装起来了,不需要自己去写具体的实现,比如如何去构建span,如何去上报数据。 收集器抽象 由于zipkin支持http以及kafka两种方式上报 阅读全文
posted @ 2018-10-08 23:32 min.jiang 阅读 (1107) 评论 (0) 编辑
  2018年8月15日
摘要:Kafka Manager 这里记录下安装过程,以及当时遇到的一些问题。 依赖项 kafka manager依赖两个组件: java8 最新的kafka manager依赖java8,低版本的我没有尝试过。这里不对配置java8做说明 sbt sbt是一个scala项目的构建工具,我们通过下载kaf 阅读全文
posted @ 2018-08-15 14:01 min.jiang 阅读 (228) 评论 (0) 编辑
  2018年5月20日
摘要:案例 我们所熟悉的jbdc是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,提供了一种基准,据此可以构建更高级的工具和接口。 如上图所示,任意的一个数据库厂商只要去实现jdbc的接口,就可以轻松的对接jbdc从而为应用开发人员所服务。 SPI 上面的jdbc的设计理念叫S 阅读全文
posted @ 2018-05-20 02:45 min.jiang 阅读 (790) 评论 (0) 编辑
  2018年4月7日
摘要:目的 之前在github上找了一个开源的项目,改了改缓存的扩展,让其支持在缓存注解上控制缓存失效时间以及多长时间主动在后台刷新缓存以防止缓存失效( Spring Cache扩展:注解失效时间+主动刷新缓存 )。示意图如下: 那篇文章存在两个问题: 所有的配置是建立在修改缓存容器的名称基础上,与传统缓 阅读全文
posted @ 2018-04-07 13:46 min.jiang 阅读 (13058) 评论 (3) 编辑
  2018年1月1日
摘要:背景 目前公司项目中有用到activemq,两台机器上分别通过共享文件方式搭建了master-slave集群,但两台机器之间并未组建broker cluster,而是在客户端通过软负载的方式随机选择一组提供服务来达到集群扩展的目的。 上面的方案主要问题在于需要通过软负载去实现分布式的负载均衡算法,需 阅读全文
posted @ 2018-01-01 11:58 min.jiang 阅读 (7728) 评论 (0) 编辑
  2017年12月2日
摘要:熔断与降级 为什么在RPC环节中有熔断以及降级的需求,详细的原因这里不多解释,从网上搜索一张图做示意。 熔断 我理解熔段主要解决如下几个问题: 当所依赖的对象不稳定时,能够起到快速失败的目的 快速失败后,能够根据一定的算法动态试探所依赖对象是否恢复 比如产品详细页获取产品的好评总数时,由于后端服务异 阅读全文
posted @ 2017-12-02 17:07 min.jiang 阅读 (7770) 评论 (2) 编辑
  2017年11月12日
摘要:代理 代理的意思就是请求者不直接与终端交互,而是通过一个中间者来做请求转发,举几个生活中的代理案例: 翻墙上网 国外有很多网站在国内不能访问,所以就需要利用一个代理中转发请求,达到瞒天过海的目的。 用户炒股 要想投资股票,你只能通过在证券商那开通账户然后,通过在证券商那提供的功能才能实现在上海证券交 阅读全文
posted @ 2017-11-12 15:36 min.jiang 阅读 (2003) 评论 (0) 编辑
  2017年11月8日
摘要:原文链接:https://my.oschina.net/leejun2005/blog/1524687 摘要: 本文主要针对 Java 服务而言 0、背景 经常做后端服务开发的同学,或多或少都遇到过 CPU 负载特别高的问题。尤其是在周末或大半夜,突然群里有人反馈线上机器负载特别高,不熟悉定位流程和 阅读全文
posted @ 2017-11-08 08:13 min.jiang 阅读 (1128) 评论 (0) 编辑
  2017年10月29日
摘要:上下文 记的学英语的时候,总是不记的某个词是什么意思,然后就看不下去了,只能问周围的同学或者老师或者去查词典,他们的建议是通过上下文去推测这个词大概的意思,反正我那会上学时没理解,所以英文一直比较差。 现在英语水平也没提高多少,尽管有点领会。 后来慢慢理解了一些,因为有些词有很多种意思,放在某个场景 阅读全文
posted @ 2017-10-29 02:01 min.jiang 阅读 (1835) 评论 (0) 编辑
  2017年10月23日
摘要:关键资源 关键资源总是有限的,也就意味着处理能力也有限,所以当面对大量业务时,为了保障自己能够有序的提供服务最经济的做法就是限制同一时间处理的事务数。比如银行的工作人员,一个工作人员同时只能为一个客户服务,来多了根本处理不了,不光是一种浪费而且有可以造成混乱的局面导致工作人员无法工作。 网络请求漏斗 阅读全文
posted @ 2017-10-23 02:38 min.jiang 阅读 (2258) 评论 (2) 编辑
  2017年10月8日
摘要:过滤器 字面义上理解的过滤器类似下图,从一堆物品中筛选出符合条件的留下,不符合的丢弃。 GOF 职责链 GOF中有一种设计模式叫职责链,或者叫责任链,常规的UML图如下: 正统的职责链是将一个请求发给第一个接收者,接收者判断是否属于自己能处理的,如果能处理则执行操作并中止请求下发,流程到此为止。如果 阅读全文
posted @ 2017-10-08 00:00 min.jiang 阅读 (1392) 评论 (2) 编辑
  2017年9月30日
摘要:心跳 就是告诉其它人自己还活着。在简易RPC框架中,采用的是TCP长连接,为了确保长连接有效,就需要客户端与服务端之间有一种通知机制告知对方的存活状态。 如何实现 客户端发送心跳消息 在状态空闲的时候定时给服务端发送消息类型为PING消息。 服务端接收心跳消息 捕获通道空闲状态事件,如果接收客户端P 阅读全文
posted @ 2017-09-30 19:22 min.jiang 阅读 (2192) 评论 (0) 编辑
  2017年9月24日
摘要:HTTP协议 客户机与服务端之间的数据交互需要遵守一定的约定,比如协议版本,数据类型,是否有缓存,是否有压缩等,只有在这些约定的基础上才能相互之间愉快的工作。 Netty通信过程中的编解码 这时说的是基于TCP/IP的Netty之间的通信。TCP/IP协议下客户端与服务端之间要进行数据交互,一般需要 阅读全文
posted @ 2017-09-24 21:43 min.jiang 阅读 (1277) 评论 (0) 编辑
  2017年9月10日
摘要:在系统开发过程中,我们一般个人参与的开发都是局部的,自己负责的一部分与其它团队成员的成果组合在一起才能实现用户的完整行为。比如常见的电商系统就有几个主要的流程 商品搜索 购物车 订单 支付 物流 这些模块复杂的足以形成各自的团队,不同团队相互之间依据一定的接口来配合协作。在开发阶段可以基于接口各自独 阅读全文
posted @ 2017-09-10 10:55 min.jiang 阅读 (2853) 评论 (0) 编辑
  2017年8月6日
摘要:本篇主要记录dubbo中关于超时的常见问题,实现原理,解决的问题以及如何在服务降级中体现作用等。 超时问题 为了检查对dubbo超时的理解,尝试回答如下几个问题,如果回答不上来或者不确定那么说明此处需要再多研究研究。 我只是针对个人的理解提问题,并不代表我理解的就是全面深入的,但我的问题如果也回答不 阅读全文
posted @ 2017-08-06 02:16 min.jiang 阅读 (13705) 评论 (2) 编辑