lemon的专栏

treasure everything you give me

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

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

2019-01-28 00:25:06

阅读数 79

评论数 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

阅读数 95

评论数 0

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

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

2019-01-02 17:14:28

阅读数 124

评论数 0

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

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

2018-12-02 17:15:25

阅读数 147

评论数 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

阅读数 155

评论数 0

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

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

2018-11-20 21:04:14

阅读数 200

评论数 0

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

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

2018-11-18 18:12:03

阅读数 324

评论数 0

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

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

2018-11-17 15:48:28

阅读数 315

评论数 0

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

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

2018-08-14 20:30:46

阅读数 2369

评论数 3

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

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

2018-06-17 15:47:32

阅读数 3089

评论数 0

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

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

2018-06-04 10:19:37

阅读数 1401

评论数 0

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

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

2018-05-26 15:18:37

阅读数 661

评论数 0

砥砺前行!

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

2018-03-19 01:26:30

阅读数 484

评论数 0

深入理解java SPI机制

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

2018-02-17 18:05:17

阅读数 5384

评论数 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

阅读数 631

评论数 1

java网络编程—Reactor

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

2017-10-20 00:18:34

阅读数 256

评论数 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

阅读数 1409

评论数 0

[分布式监控CAT] Client端—定制化SDK\各开源监控产品对比

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

2017-10-18 18:20:32

阅读数 1611

评论数 0

图解java并发(上)

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

2017-10-10 14:17:32

阅读数 572

评论数 1

[分布式监控CAT] Server端源码解析——消息消费\报表处理\展示

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

2017-09-15 18:03:49

阅读数 1755

评论数 0

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