自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张硕的博客

大厂求才若渴,Java方向有意者请私信我,base南京

原创 读《微服务设计模式》

成功地开发基于微服务架构的应用软件,需要掌握一系列全新的架构思想和实践。 在这本独特的书籍中,微服务架构的先驱、Java 开发者社区的意见领袖 Chris Richardson 收集、分类并解释了 44 个架构设计模式,这些模式用来解决诸如服务拆分、事务管理、查询和跨服务通信等难题。 本书将教...

2020-06-21 23:01:25 54 0

原创 读《徐远的投资课》

周末、阴天,看了段永平的一些资料、阅读了他公开的言论(博客、媒体访谈等),对“价值投资、StopDoingList、“安全边际”等理念想加深认识,于是便找到了这个投资入门课——徐远的投资课。 ...

2020-05-31 19:30:21 498 4

原创 读《格鲁夫给经理人的第一课》

2020-04-17 22:29:13 110 2

原创 深入理解监控系统——Prometheus核心特点

接触过各式各样的监控,开源的CAT、zipkin、pinpoint等等,并深度二次开发过;也接触过收费的听云监控。深知各类监控的亮点与局限,前段时间需要快速落地一套易用、合适,又要有亮点的监控体系,所以接触了prometheus监控体系。Prometheus是CNCF继K8s毕业后的第二个开源项目...

2020-01-26 17:39:56 1760 0

原创 读《大数据之路:阿里巴巴大数据实践》

关于日志采集 数据处理全链路

2019-12-29 20:39:25 170 0

原创 读《学会提问》——少谈些主义,多研究些问题

读《学会提问》——少谈些主义,多研究些问题

2019-12-22 22:11:26 185 0

原创 读《成为技术领导者:掌握全面解决问题的方法》——技术领导力

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数...

2019-11-16 15:23:54 173 0

原创 读《Clean Architecture》架构整洁之道

这个假期读完了CleanArchitecture,此篇文章做个总结。聊一聊我从这本书得到了什么营养:

2019-10-06 14:49:10 271 0

原创 阿里HSF(服务框架)

HSF(服务框架) 简介 高速服务框架 HSF (High-speed Service Framework),是在阿里巴巴内部广泛使用的分布式 RPC 服务框架。 HSF 联通不同的业务系统,解耦系统间的实现依赖。HSF 从分布式应用的层面,统一了服务的发布/调用方式,从而帮助方便、快速的开发分布...

2019-06-02 20:00:28 6958 0

原创 架构设计的深入思考与总结——面向对象设计原则

前言 在翻译了Robert C. Martin 的文章(The Principles of OOD — 面向对象设计原则(SOLID))之后, 接下来详细对每个原则进行剖析,力求吃透每个原则。 SRP:单一职责原则 这个原则是最容易被误解的原则,很多人认为它的含义是:每个模块都应该只做一件事。 -...

2019-01-28 00:25:06 190 0

翻译 The Principles of OOD —Robert C. Martin授权翻译

The Principles of OOD What is object oriented design? What is it all about? What are it’s benefits? What are it’s costs? 什么是面向对象设计?它是怎么一回事?使用它会有什么利弊得...

2019-01-28 00:17:10 213 0

原创 给JDK提的bug单—某系统大量CLOSE_WAIT异常

Oracle沟通细节 提单之后,Oracle跟我联系沟通。截取部分邮件内容,仅供参考。 现象: 某系统上线后TCP closewait状态持续大量增涨,触发告警。 定位过程 两点半,部署了一个节点的问题tag,用来复现问题。 Step1 查看谁与谁的连接产生了大量CLOSE_WAIT,因为系统...

2019-01-02 17:14:28 254 0

原创 架构设计的深入思考与总结——概述

简单来说,软件架构设计=底层实现细节+高层架构信息。所谓底层和高层本身就是一系列组成的连续体,并没有清晰的分界线。 如果架构师只画几张笼统抽象的图,而对底层实现细节没有控制力,这样的架构就是万能的架构,没有任何意义! 我观察到有些架构师只是画几张抽象的图,以为这就是架构设计的全部,当时我感到十...

2018-12-02 17:15:25 257 0

转载 RST及java socket关闭后读写的各种异常

1. RST (Reset) TCP连接的断开有两种方式: 连接正常关闭时双方会发送FIN,经历4次挥手过程; 通过RST包异常退出,此时会丢弃缓冲区内的数据,也不会对RST响应ACK。 java中,调用Socket#close()可以关闭Socket,该方法类似Unix网络编程中的close方法...

2018-11-29 21:23:29 453 0

原创 (DDD)领域驱动设计——认识领域驱动

什么是DDD(Domain-Driven Design)? 什么是领域Domain? 理解DDD,首先要理解领域。 通俗的说,领域就是业务;就是合格的产品经理的需求文档所表达的内容;狭义的说就是你的Business Layer里所有的代码以及产生的影响等等; 严谨的定义是: 一个有边界的业务面,其...

2018-11-20 21:04:14 826 0

转载 复杂性应对之道 - 领域建模

最近重构系统,脑子里不停的思考一些问题,为什么很多系统是“一坨”?真的就停留在一坨了吗?真的就甘心接受所谓的一坨吗? 今天偶然发现Frank的文章,跟作者沟通后,以下作为转载,文末点击查看原文。感谢在这个浮躁的氛围中,还有人具备如此珍贵的思考与实践!感谢 为什么要领域建模 维护过企业级业务系统的同...

2018-11-18 18:12:03 450 0

转载 莫言系统腐化——“一坨”真的好吗?

最近重构系统,脑子里不停的思考一些问题,为什么很多系统是“一坨”?真的就停留在一坨了吗?真的就接受所谓的比如一坨吗? 今天偶然发现FrankIs的文章,以下作为转载。感谢在这个浮躁的氛围中,还有人具备如此珍贵的思考与实践!感谢 前言 从业这么多年,接触过银行的应用,Apple的应用,eBay的应用...

2018-11-17 15:48:28 415 0

原创 RedisCluster-Pipeline操作,提升10倍以上响应速度

本文中的代码来自我正在写的分布式缓存框架(主要解决缓存使用中的各种痛点:缓存穿透\redis-cluster pipeline\注解使用等等)。 什么是pipeLine 为什么使用pipeLine ? 管道(pipeline)将客户端 client 与服务器端的交互明确划分为单向的发送请求(S...

2018-08-14 20:30:46 6569 3

原创 对象池——利弊与使用场景

对象池使用 通常我们如此实现一个业务对象池,实现org.apache.commons.pool2.*的一些接口。 /** * @author zhangshuo * */ @Slf4j public class ResourceLoaderFactory extends BasePool...

2018-06-17 15:47:32 6568 0

原创 Hystrix 从入门到深入——运行时修改动态配置

/** * * @author zhangshuo * */ @Component public class DynamicConfigSource implements PolledConfigurationSource { private static final Logger ...

2018-06-04 10:19:37 2582 2

翻译 Hystrix 从入门到深入——一阅读官网

最近项目中有熔断需求,准备花几天深入理解下Hystrix的介绍、使用、源码、原理并做些抽象封装以便工作中使用。 What Is Hystrix? 在分布式系统中,服务与服务之间依赖错综复杂,一种不可避免的情况就是某些服务将会出现失败。Hystrix是一个库,它提供了服务与服务之间的容错...

2018-05-26 15:18:37 2640 0

原创 砥砺前行!

**虽然依旧留在了这个生活多年的二线城市,因为种种原因放弃了所谓的“光环”,加上猎头的添油加醋,内心有时也会无法抵抗的彷徨担忧!但我相信自己可以做的更好,更加投入,更加专注!获得更多的认可与成绩。 ** 加油!努力前行,努力奋斗。我还有很多不懂、一知半解、不精!不断深入学习!Do not go g...

2018-03-19 01:26:30 583 0

原创 深入理解java SPI机制

What? SPI机制(Service Provider Interface)其实源自服务提供者框架(Service Provider Framework,参考【EffectiveJava】page6),是一种将服务接口与服务实现分离以达到解耦、大大提升了程序可扩展性的机制。引入服务提供者就是引...

2018-02-17 18:05:17 13450 0

翻译 mysql explain-output 译文

相关文章: 深入理解Mysql——高性能索引与高性能SQL 深入理解Mysql——锁、事务与并发控制(辟谣) 深入理解Mysql——schema设计与大表alter操作 mysql explain-output 译文 原文 https://dev.mysql.com/doc/ref...

2017-10-26 20:00:31 855 1

原创 java网络编程—Reactor

基本概念: a) 一个TCP连接的套接字对(socket pair)是一个定义该连接的两个端点的四元组:本地IP地址、本地TCP端口、外地地址、外地TCP端口。套接字对唯一标识一个网络上的每个TCP连接。b) 标识每个端口的两个值(IP地址和端口号)通常称为一个套接字。c) 内核(kern...

2017-10-20 00:18:34 320 0

原创 java网络编程—IO及相关原理(上下文切换\多路复用\Reactor\epoll)

相关文章 java网络编程—NIO与Netty(四) java网络编程—NIO与Netty(三) java网络编程—NIO与Netty(二) java网络编程—NIO与Netty(一) java网络编程—基石:五种IO模型及原理(多路复用\epoll) 理解Netty首先要理解N...

2017-10-19 22:40:30 2276 0

原创 深入理解监控系统——CAT Client端定制化SDK 以及选型对比

定制化SDK解决埋点问题SQL相关埋点使用ORM插件-MybatisPlugin效果:Throwable(及其子类)异常上报 使用log日志框架的appender机制 <root level="INFO"> <appender-ref ref=...

2017-10-18 18:20:32 1959 0

原创 图解java并发(上)

为什么要“并发”? 既然聊并发,我们首先会思考为什么要引入这个技术。通常写程序,我们习惯用单线程串行的思维理解程序运行,并写业务逻辑。这样可以减少复杂度,也便于测试,往往当需要性能提升,我们才会想到使用并发。那么这个技术到底能够给我们带来什么呢 充分利用cpu资源 多核处理器的广泛使用背...

2017-10-10 14:17:32 753 1

原创 深入理解监控系统——CAT Server端源码解析(消息消费\报表处理\展示)

前言Server端 (Cat-consumer 用于实时分析从客户端提供的数据\Cat-home 作为用户给用户提供展示的控制端 ,并且Cat-home做展示时,通过对Cat-Consumer的调用获取其他节点的数据,将所有数据汇总展示)consumer、home以及路由中心都是部署在一起...

2017-09-15 18:03:49 2197 0

原创 java网络编程—NIO与Netty(四) ByteBuffer数据处理与零拷贝

相关文章 java网络编程—NIO与Netty(四) java网络编程—NIO与Netty(三) java网络编程—NIO与Netty(二) java网络编程—NIO与Netty(一) java网络编程—基石:五种IO模型及原理(多路复用\epoll)数据容器——ByteBufJD...

2017-08-20 12:39:10 2812 0

原创 java网络编程—NIO与Netty(三)

上两篇文章最为Netty的预备知识,主要介绍了 IO 与 NIO的相关核心知识。 java网络编程—NIO与Netty(一) java网络编程—NIO与Netty(二)接下来开始重点深入解析NettyNetty特点 基于 Java NIO 的异步的和事件驱动的实现 Netty 也包含了一组设计...

2017-08-15 10:42:18 945 0

原创 java网络编程—NIO与Netty(二)

Java NIO:transferFrom与transferTo两个channel间的通信,不需要通过buffer直接进行数据交换。 示例:/** * @author zhangsh */ public class NIOTransferData { public static voi...

2017-08-08 19:07:51 828 3

原创 深入理解Mysql——schema设计与大表alter操作

数据类型 整数与小数类型 整数类型有如下几种: TINYINT(1个字节),SMALLINT(2个字节),MEDIUMINT(3个字节),INT(4个字节),BIGINT(6个字节)。 小数(实数)类型有如下几种: FLOAT4个字节)、DOUBLE(8个字节)、DECIMAL(占用...

2017-08-04 15:07:20 7135 0

原创 深入理解监控系统——CAT Server端源码解析(初始化启动)

CAT服务端初始化 Servlet容器加载、启动CAT目前是使用war包放入Servlet容器(如:tomcat或者jetty,以下假设使用tomcat容器)中的方式部署启动。 熟悉servlet容器的同学应该知道,容器启动时会读取每个Context(可理解为web工程)中的web.xml然后启...

2017-07-28 17:53:44 2934 4

原创 ZooKeeper典型应用——分布式锁

Zookeeper是一个典型的解决分布式数据一致性问题的框架,我们来看看如何使用Zookeeper实现分布式锁。 如果对JDK锁核心实现不理解的,推荐阅读 java并发编程——读写锁ReentrantReadWriteLock java并发编程——ReentrantLock源码(重入锁、...

2017-07-28 17:40:21 2118 0

原创 java并发编程——阻塞队列与非阻塞队列

ArrayBlockingQueueArrayBlockingQueue是一个有界阻塞队列,基于数组、ReentrantLock、Condition实现。 所谓阻塞队列是指,队列满了,则会对生产线程产生阻塞直到有空位可插入; 当队列空了,则会对消费队列产生阻塞直到有新的元素被加入队列。 方法...

2017-07-28 14:55:18 1500 0

原创 java并发编程——ConcurrentHashMap(1.8)

请先阅读ConcurrentHashMap1.7源码阅读,对JDK1.7(1.6中也基本一致)中的ConcurrentHashMap有个大致了解。

2017-07-27 17:49:21 1048 1

翻译 JSR 133 (Java Memory Model) FAQ

JSR 133 (Java Memory Model) FAQ http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#whatismm

2017-06-24 22:43:22 928 7

原创 java内存模型(JMM)与并发

为什么要并发充分利用CPU计算能力随时多核处理器的发展,计算机的计算能力越来越强大。但是,由于磁盘读写、网络IO等这些通信、存储系统与CPU的速度相差多个数量级,我们在应用计算机时,如果单纯的让cpu等待磁盘IO、网络IO便是对cpu的计算能力的浪费。那么如何让CPU的能力充分利用呢,我们自然会想...

2017-06-20 20:40:34 657 0

原创 深入理解监控系统——CAT Client端源码解析

前言Server端 (Cat-consumer 用于实时分析从客户端提供的数据\Cat-home 作为用户给用户提供展示的控制端 ,并且Cat-home做展示时,通过对Cat-Consumer的调用获取其他节点的数据,将所有数据汇总展示 consumer、home以及路由中心都是部署在一起的...

2017-05-04 16:06:46 9218 4

提示
确定要删除当前文章?
取消 删除