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