全链路追踪理论思考


1.前言全链路追踪大体原理是在请求中加上一个agent,然后每个系统都读取这个agent进行日志打印,最后收集日志进行分析。可以使用skywalking,也可以自己通过ThreadLocal自己实现。具体原理后续再做阐述。本文主要解决的是在多线程中,如何保证链路ID继续传递。最简单的办法,在声明线程

Feign Ribbon Hystrix 三者关系


Feign介绍Feign是一款Java语言编写的HttpClient绑定器,在Spring Cloud微服务中用于实现微服务之间的声明式调用。Feign 可以定义请求到其他服务的接口,用于微服务间的调用,不用自己再写http请求,在客户端实现,调用此接口就像远程调用其他服务一样,当请求出错时可以调用

BIO.NIO别再傻傻分不清


Unix网络编程中的五种IO模型:Blocking IO - 阻塞IONoneBlocking IO - 非阻塞IOIO multiplexing - IO多路复用signal driven IO - 信号驱动IOasynchronous IO - 异步IO1.阻塞IO - Blocking IO最

彻底理解 IO 多路复用实现机制


连着两次面试被问到了,一次都没答出来。回来决定怒肝一篇文章,原文写的非常细了,看完再面一定能吊打面试官

分表后某一个用户大量写入的思考


软件工程没有银弹,该堆机器还是要堆的

使用hash+range分库分表的思考


分库分表有垂直和水平两种分法。垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库水平拆分是同一个业务数据量大之后,进行水平拆分。如果订单数据达到了4000万,我们知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太