Sunfy Blog

Life is diligent, no pains, no gains.
Viewed Times
Visitors In Total

更优雅的发HTTP请求(RestTemplate)

Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。

RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。 我之前的HTTP开发是......

如何从容应对复杂性

软件的复杂性,是一个很泛的概念。但是一直都是开发过程中的一个难题,本文旨在探讨如何去从容应对复杂性。

一 软件的熵增、构造定律1 熵增定律熵的概念最早起源于物理学,热力学第二定律(又称“熵增定律”),表明了在自然过程中,一个孤立的系统总是从最初的集中、有序的排列状态,趋向于分散、混乱和无序;当熵......

高并发Redis缓存那些事儿

Redis缓存常见问题及相应问题的解决方案 缓存穿透查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询, 失去了缓存保护后端存储的意义。 基本原因 自身业务代码或者数据出现问题。 一些恶意攻击、 爬虫等造成大量空命中。 解决方案1、缓存空对象 12345678910111......

LRU缓存算法的实现

一种常见的页面置换算法

LRULRU(Least Recently Used)是一种常见的页面置换算法,在计算中,所有的文件操作都要放在内存中进行,然而计算机内存大小是固定的,所以我们不可能把所有的文件都加载到内存,因......
LRU

CAS操作分析

Compare And Swap,比较并交换

CASCAS(Compare And Swap,比较并交换),通常值的是一种原子操作,针对一个变量,首先比较它的内存值与某个期望值是否相同,如果相同就给它赋值另一个值。正所谓比较并交换。 if......

深入理解 Java SPI机制

一种服务发现机制,自动加载文件里所定义的类。

SPI ,全称为 Service Provider Interface,是一种服务发现机制。在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类......
SPI

docker-compose 启动容器

docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。 docker-compose 是什么docker-compose 是一个用来把 docker 自动化的东西。有了 docker-compose 你可以把所有繁复的 docker 操作全都一条命令,自动化的完成。 为什么要用 docker-compose,他解决了什么用通俗的语言......

Spring推断构造方法

一个构造方法|多个构造方法

Spring推断构造方法 Spring中的一个bean,需要实例化得到一个对象,而实例化就需要用到构造方法。 一个构造方法一般情况下,一个类只有一个构造方法: 要么是无参的构造方法 要么是有......

如何在Spring生态中玩转RocketMQ?

RocketMQ作为业务消息的首选,在消息和流处理领域被广泛应用

RocketMQ作为业务消息的首选,在消息和流处理领域被广泛应用。而微服务生态Spring框架也是业务开发中最受欢迎的框架,两者的完美契合使得RocketMQ成为Spring Messaging......
MQ

什么是好的错误消息?

讨论一下Java系统中的错误码设计

一 什么是好的错误信息(Error Message)?一个好的Error Message主要包含三个部分: Context: 什么导致了错误?发生错误的时候代码想做什么? The erro......

如何选择分布式事务解决方案?

分布式事务中涉及的参与者分布在异步网络中,参与者通过网络通信来达到分布式一致性,网络通信不可避免出现失败、超时的情况,因此分布式事务的实现比本地事务面临更多的困难。

概述事务是一组不可分组的操作集合,这些操作要么都成功执行,要么都取消执行。最典型的需要事务的场景是银行账户间的转账:假如 A 账户要给 B 账户转账 100 元,那么 A 账户要扣减 100 元......

一文搞懂redis

从方方面面学习了解redis,每一项技术深挖都是一个庞大的体系,学海无涯,共勉。

一 什么是NoSQL?Nosql = not only sql(不仅仅是SQL) 关系型数据库:列+行,同一个表下数据的结构是一样的。 非关系型数据库:数据存储没有固定的格式,并且可以进行横向扩......

并发场景下的幂等问题——分布式锁详解

本文讨论的幂等问题,均为并发场景下的幂等问题。即系统本存在幂等设计,但是在并发场景下失效了

一 摘要本文从钉钉实人认证场景的一例数据重复问题出发,分析了其原因是因为并发导致幂等失效,引出幂等的概念。 针对并发场景下的幂等问题,提出了一种实现幂等可行的方法论,结合通讯录加人业务场景对数据......

为什么 Java 中“1000==1000”为false,而”100==100“为true?

这是一个挺有意思的讨论话题。 如果你运行下面的代码: 1234Integer a = 1000, b = 1000; System.out.println(a == b);//1Integer c = 100, d = 100; System.out.println(c == d);//2 你会得到: 12falsetrue 基本知识:我们知道,如果两个引用指向同一个对象,用==表示它们......

java NPE问题

防止 NPE,是程序员的基本修养。

阿里巴巴代码规范【推荐】方法的返回值可以为 null,不强制返回空集合,或者空对象等,必须添加注释充分 说明什么情况下会返回 null 值。调用方需要进行 null 判断防止 NPE 问题。说明......
NPE

阿里千万实例可观测采集器-iLogtail正式开源

阿里内部可观测数据采集的基础设施

阿里开源可观测数据采集器iLogtail。作为阿里内部可观测数据采集的基础设施,iLogtail承载了阿里巴巴集团、蚂蚁的日志、监控、Trace、事件等多种可观测数据的采集工作。iLogtail......
log