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,需要实例化得到一个对象,而实例化就需要用到构造方法。 一个构造方法一般情况下,一个类只有一个构造方法: 要么是无参的构造方法 要么是有......

RocketMQ基本概念和安装测试

MQ功能比较完备,扩展性佳

MQ优劣相关内容 RocketMQ介绍RocketMQ是阿里巴巴开源的一个消息中间件,在阿里内部历经了双十一等很多高并发场景的考验,能够处理亿万级别的消息。2016年开源后捐赠给Apache,现......
MQ

IDEA导入eclipse项目

IDEA导入eclipse历史项目 打开项目直接打开项目,或者打开一个空白的,导入工程 导入工程 file – new – project from existing sources… module选择eclipse 直接next,一直到finish 依赖配置配置依赖和jar包 File – project structure-选择相应的sdk 移除eclipse配置 Modules:......

SkyWalking简介

分布式系统的应用程序性能监视工具

SkyWalking是什么对于一个大型的几十个、几百个微服务构成的微服务架构系统,通常会遇到下面一些问题,比如: 如何串联整个调用链路,快速定位问题? 如何理清各个微服务之间的依赖关系? 如何......

Redis实现分布式锁

分布式事务解决方案Redis|Zookeepar|MySQL|seate

单体架构先介绍一个很简单的业务场景,简单来说就是一个springBoot工程,然后通过请求一个接口去递减Redis中一个值,可以理解为扣库存或其他类似场景。 如果我们部署的为单体服务,毫无疑问,......

分布式/微服务常见的面试题

分布式/微服务常见的面试题集锦

目录CAP理论,BASE理论 负载均衡算法、类型 分布式架构下,Session共享有什么方案 简述你对RPC、RMI的理解 分布式id生成方案 分布式锁解决方案 分布式事务解决方案 如何实现接口......

MQ常见的面试题

MQ/kafka常见的面试题集锦

目录简述RabbitMQ的架构设计 RabbitMQ如何确保消息发送 ? 消息接收? RabbitMQ事务消息 RabbitMQ死信队列、延时队列 RabbitMQ镜像队列机制 简述kafka架......

Zookeeper常见的面试题

常见的Zookeeper面试题集锦

目录简述ZAB 协议 zk的数据模型和节点类型 简述zk的命名服务、配置管理、集群管理 Zookeeper watch机制 zk和eureka的区别 简述ZAB协议ZAB协议是为分布式协调服务Z......

Redis常见的面试题

常见的Redis面试题集锦

目录Redis的数据结构及使⽤场景 Redis的过期键的删除策略 Redis线程模型、单线程快的原因 简述Redis事务实现 redis集群方案/Redis集群策略 redis主从复制的核心原理......

sentinel简介

分布式系统的流量防卫兵

思考1、当服务访问量达到一定程度,流量扛不住的时候,该如何处理? 2、服务之间相互依赖,当服务A出现响应时间过长,影响到服务B的响应,进而产生连锁反应,直至影响整个依赖链上的所有服务,该如何处理......

如何选择适合的阻塞队列

如何选择适合的阻塞队列

如何选择适合的阻塞队列线程池对于阻塞队列的选择 线程池有很多种,不同种类的线程池会根据自己的特点,来选择适合自己的阻塞队列。 FixedThreadPool(SingleThreadExecu......