精彩博客

一直使用AtomicInteger?试一试FieldUpdater

1. 背景 在进入正题之前,这里先提出一个问题,如何在多线程中去对一个数字进行+1操作?这个问题非常简单,哪怕是Java的初学者都能回答上来,使用AtomicXXX,比如有一个int类型的自加,那么你...

10/10 10:45
868
5
设计模式 - 单例模式之多线程调试与破坏单例

前言 在之前的 设计模式 - 单例模式(详解)看看和你理解的是否一样? 一文中,我们提到了通过Idea 开发工具进行多线程调试、单例模式的暴力破坏的问题;由于篇幅原因,现在单独开一篇文章进...

10/10 09:09
525
1
SpringCloud——使用Ribbon做负载均衡

Ribbon负载均衡 一、简介 1:什么是负载均衡 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵...

10/09 23:07
551
1
分布式秒杀

一般在具体的业务中,平台方会发布秒杀席位个数,秒杀的时间段,让各个商家报名,将自己的产品参与秒杀活动。这里将同事画的一张图放上来,大致是这么一个流程。关于秒杀原理可以参考单机秒杀...

10/09 17:30
1K
4
关于深夜技术事故纪实录的若干问题回复

前一段时间写了一篇文章《凌晨1点突发致命生产事故,人工多线程来破局!》,只是一篇生产事故的记实文章,没想到在圈内流传甚广,其中有程序员对其中的细节有点疑惑,刚好国庆可以和大家再进...

10/09 11:42
484
2
Spring Boot 2.x基础教程:Swagger接口分类与各元素排序问题详解

之前通过Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档一文,我们学习了如何使用Swagger为Spring Boot项目自动生成API文档,有不少用户留言问了关于文档内容的组织以及排序问题。...

10/09 09:36
714
4
漫谈 GOF 设计模式在 Spring 框架中的实现

原文地址:梁桂钊的博客 博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。 漫谈 GOF 设计模式在 Spring 框架中的实现...

10/09 01:39
421
1
Redis 的多线程版本比 Redis 本身要快 5 倍

如果我告诉您有一个 Redis 的分支版本,它的性能比原生的 Redis 快 5 倍,而且延迟却降低近 5 倍,你会不会想了解一下这个项目?而如果您不再需要哨兵节点并且您的副本可以接受读取和写入,这...

10/08 18:52
10.3K
11
Kafka日志存储详解

在前面的文章中,我们对kafka的基本使用方式和架构原理进行了介绍,本文则主要介绍kafka中日志的存储原理,主要内容包括kafka日志存储格式、日志文件的管理方式、日志索引文件的格式和日志压...

10/08 09:25
704
1
使用jenkins的jacoco插件快速实现统计单元测试覆盖率

安装jenkins wget http://mirrors.jenkins.io/war-stable/2.176.4/jenkins.war java -jar jenkins.war 参考 通过java方式安装jenkins jenkins可选插件为空的解决方式或jenkins不能联网 安装g...

10/07 21:32
318
0
Spring Boot 2.x基础教程:JSR-303实现请求参数校验

请求参数的校验是很多新手开发非常容易犯错,或存在较多改进点的常见场景。比较常见的问题主要表现在以下几个方面: 仅依靠前端框架解决参数校验,缺失服务端的校验。这种情况常见于需要同时...

10/07 12:54
603
0
RocketMQ主从同步若干问题答疑

1、初识主从同步 主从同步基本实现过程如下图所示: RocketMQ 的主从同步机制如下: 首先启动Master并在指定端口监听; 客户端启动,主动连接Master,建立TCP连接; 客户端以每隔5s的间隔时间...

10/07 10:29
191
0
Spring 源码(九)@Autowired注解实现原理(Spring Bean的自动装配)

@Autowired注解的实现过程,其实就是Spring Bean的自动装配过程。通过看@Autowired源码注释部分我们可以看到@Autowired的实现是通过AutowiredAnnotationBeanPostProcessor后置处理器中实现的...

10/01 16:48
1K
3
高性能异步批量ping的golang实现

一个监控项目有个需求,会对一批域名全国的边缘节点进行探测,这里包括,丢包率,http 响应时间,探测频率大概时间是2min 一个周期。这里的域名大概有几百个甚至上千。由于是golang 写的调度...

09/30 22:42
768
3
Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档

随着前后端分离架构和微服务架构的流行,我们使用Spring Boot来构建RESTful API项目的场景越来越多。通常我们的一个RESTful API就有可能要服务于多个不同的开发人员或开发团队:IOS开发、And...

09/30 09:29
1K
0
Spring 源码(八)循环依赖

循环依赖是指两个或者多个Bean之前相互持有对方。在Spring中循环依赖一般有三种方式: 构造函数循环依赖 setter方法循环依赖 prototype 范围的依赖处理 构造函数循环依赖 在Spring中构造函数...

09/28 15:34
1K
0
手把手实现一条延时消息

前言 近期在维护公司的调度平台,其中有个关键功能那就是定时任务;定时任务大家平时肯定接触的不少,比如 JDK 中的 Timer、ScheduledExecutorService、调度框架 Quartz 等。 通常用于实现 ...

09/27 08:38
4.5K
16
Zookeeper的选举算法和脑裂问题深度讲解

ZK介绍 ZK = zookeeper ZK是微服务解决方案中拥有服务注册发现最为核心的环境,是微服务的基石。作为服务注册发现模块,并不是只有ZK一种产品,目前得到行业认可的还有:Eureka、Consul。 这...

09/24 11:15
2.3K
2
Java没有创新了吗?Java 13提供可提高生产率和效率的功能

Java没有创新了吗? 在其CodeOne会议上,Oracle解释了Java SE 13正式发布后Java的快速发布周期如何带来创新。 在过去的二十多年中,Java编程语言新版本的开发速度相对较慢,仅每隔几年就会进...

09/24 09:45
2.8K
0
Tomcat 应用中并行流带来的类加载问题

本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/f-X3n9cvDyU5f5NYH6mhxQ 作者:肖铭轩、王道环 随着 Java8 的不断流行,越来越多的开发人员使用并行流(parallel)...

09/23 11:41
840
1

没有更多内容

加载失败,请刷新页面

Redis 的多线程版本比 Redis 本身要快 5 倍

如果我告诉您有一个 Redis 的分支版本,它的性能比原生的 Redis 快 5 倍,而且延迟却降低近 5 倍,你会不会想了解一下这个项目?而如果您不再需要哨兵节点并且您的副本可以接受读取和写入,这...

10/08 18:52
10.3K
11
手把手实现一条延时消息

前言 近期在维护公司的调度平台,其中有个关键功能那就是定时任务;定时任务大家平时肯定接触的不少,比如 JDK 中的 Timer、ScheduledExecutorService、调度框架 Quartz 等。 通常用于实现 ...

09/27 08:38
4.5K
16
Zookeeper的选举算法和脑裂问题深度讲解

ZK介绍 ZK = zookeeper ZK是微服务解决方案中拥有服务注册发现最为核心的环境,是微服务的基石。作为服务注册发现模块,并不是只有ZK一种产品,目前得到行业认可的还有:Eureka、Consul。 这...

09/24 11:15
2.3K
2
JDK13新特性详解

JDK8 新特性详解,2014-03-18正式发布 JDK9 新特性详解,2017-09-21正式发布 JDK10新特性详解,2018-03-20正式发布 JDK11新特性详解,2018-09-25正式发布 JDK12新特性详解,2019-03-19正式发...

09/17 14:06
11.2K
14
学会IDEA REST Client后就可以丢掉postman了

前言 接口调试是每个软件开发从业者必不可少的一项技能,一个项目的的完成,可能接口测试调试的时间比真正开发写代码的时间还要多,几乎是每个开发的日常工作项。所谓工欲善其事必先利其器,...

09/11 15:09
7.5K
11
不要小看小小的 emoji 表情

前言 好久没更新了,最近事比较多,或许下个月就会恢复到正常的发文频次。 这篇文章得从一个 emoji 表情开始,我之前bckbet怎么样的一个 IM 项目中有朋友提到希望可以支持 emoji 表情传输。 https://...

09/10 08:22
7.2K
11
Tomcat中的容器是如何处理请求的

前言 上一篇《Tomcat中的连接器是如何设计的》介绍了Tomcat中连接器的设计,我们知道连接器是负责监听网络端口,获取连接请求,然后转换符合Servlet标准的请求,交给容器去处理,那么我们这篇...

09/09 09:49
4.7K
12
基于XXL-JOB和钉钉机器人构建系统监控

概述 ??线上系统挂了,服务异常了,响应超时了;系统运行结果不符合预期。。。 ??用户被影响,甲方爸爸不开心,后果很严重。 ??从某种意义上讲,“在用户遇到问题之前把问题解决,问题...

08/31 22:34
4K
3
解Bug之路-dubbo流量上线时的非平滑问题

前言 笔者最近解决了一个困扰了业务系统很久的问题。这个问题只在发布时出现,每次只影响一两次调用,相较于其它的问题来说,这个问题有点不够受重视。由于种种原因,使得这个问题到了业务必...

08/27 14:09
4.7K
24
测试人员为什么要深入到项目实现中去

(“马蜂窝技术”公众号原创内容,ID: mfwtech) 一个项目从需求确定到最后上线,通常来说流程是这样的: 「测试」作为一个项目质量保证角色,在上面的整个流程中均有参与。而用例设计、项目...

08/26 10:42
2.6K
2
Tomcat中的连接器是如何设计的

上期回顾 上一篇文章《Tomcat在SpringBoot中是如何启动的》从main方法启动说起,窥探了SpringBoot是如何启动Tomcat的,在分析Tomcat中我们重点提到了,Tomcat主要包括2个组件,连接器(Conne...

08/26 08:51
4.1K
11
Spring如何解决循环依赖的问题

在关于Spring的面试中,我们经常会被问到一个问题,就是Spring是如何解决循环依赖的问题的。这个问题算是关于Spring的一个高频面试题,因为如果不刻意研读,相信即使读过源码,面试者也不一定...

08/22 23:25
6K
17
公司为什么需要建立一套统一的开发框架?

一、起因:野蛮生长 近十年,中国互联网发展的速度越来越快,互联网科技颠覆了越来越多的传统行业,我们的衣食住行随着互联网科技的进步,发生了翻天覆地的变化。在这个大潮中,越来越多新兴...

08/22 10:31
13.1K
18
如何参与一个顶级bckbet怎么样项目

前言 最近个人事情比较多(搬家、换工作、短暂休息)所以一直也没有顾得上博客更新,恰好最近收到一封邮件提醒了我。 也是时候写一篇文章来聊聊参与bckbet怎么样项目的事(最近也确实进入了笔荒期)。...

08/20 08:36
5.6K
17
颠覆微服务认知:深入思考微服务的七个主流观点

原文地址:梁桂钊的博客 博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。 一、逃离单体系统,拥抱微服务? 单体系统...

08/14 07:53
7K
24
一次难得的分库分表实践

背景 前不久发过两篇关于分表的文章: 一次分表踩坑实践的探讨 分表后需要注意的二三事 从标题可以看得出来,当时我们只做了分表;还是由于业务发展,截止到现在也做了分库,目前看来都还比较...

08/08 08:33
8.5K
16
Soul高可用网关:配置缓存三大同步策略

前言 网关是流量请求的入口,在微服务架构中承担了非常重要的角色,网关高可用的重要性不言而喻。在使用网关的过程中,为了满足业务诉求,经常需要变更配置,比如流控规则、路由规则等等。因...

08/05 18:08
2.2K
7
RocketMQ为什么要保证订阅关系的一致性?

微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 前段时间有个朋友向我提了一个问题,他说在搭建 RocketMQ 集群过程中遇到了关于消费订阅的...

07/30 13:45
3.1K
4
支撑马蜂窝会员体系全面升级背后的架构设计

流量红利正逐渐走向终结,这已经不再是什么秘密。后互联网时代,如何维系住用户群,提升用户在平台上的体验是整个行业都需要考虑的事情。正是出于这一原因,现在全行业都在关注会员体系的搭建...

07/26 14:27
5K
12
GitOps 与 ChatOps 的落地实践

前言 说到 GitOps 和 ChatOps ,那就不得不谈到 DevOps 。 DevOps 作为一种文化,旨在促进开发、测试和运维人员之间的沟通与协作。而促进合作的方式,往往是使用一系列工具,完成这三个角色的...

07/19 17:31
1K
1

没有更多内容

加载失败,请刷新页面

Elasticsearch7笔记

Elasticsearch7与之前版本最大的区别就是舍弃了type的概念,默认的type为"_doc"。 先建索引 PUT /shop dynamic,推荐用strict dynamic设为true时,新增字段的文档写入时,Mapping同时被更新 ...

今天 11:50
9
0
聊聊nacos server的PushService

序 本文主要研究一下nacos server的PushService PushService nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/push/PushService.java @Component public class PushService imp...

今天 11:34
8
0
Spring DestorySingleton流程

?第一节介绍Spring启动(链接)时,介绍AbstractApplicationContext的过销毁过程,主要是调用了内部的destroyBeans方法,这节便来介绍bean的销毁过程。 一.销毁流程 destroyBeans方法内部委托...

今天 11:22
8
0
Springboot之初入江湖

Hello,各位小伙伴大家好,我是小栈君。 今天的分享主题是关于Springboot主题分享,其实在写这个系列主题之前有想过一些关于分享技术的顺序问题,因为我在创建“IT干货栈”这个公众号之初就是...

今天 11:15
8
0
bash常见特殊符号及含义

文章转载自:bash常见特殊符号及含义 bash命令和shell脚本编程中,一些特殊字符具有特殊含义。不了解的人往往认为其晦涩难懂神秘如符文,而掌握其含义则能在使用过程中起到事半功倍的效果。 ...

今天 11:08
16
0
什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?

线程调度器是一个操作系统服务,它负责为 Runnable 状态的线程分配 CPU 时间。 一旦我们创建一个线程并启动它,它的执行便依赖于线程调度器的实现。同上一个问题,线程调度并不受到 Java 虚拟...

今天 11:02
3
0
Ubuntu的ls命令卡住

文章转载自:Ubuntu的ls命令卡住 昨天让某人自行探索设置PATH环境变量,今天告诉我账号异常,具体表现是bitwise登录后sftp栏无法显示文件。做一些不懂原理的操作,接着出现自己无法解决的奇怪...

今天 11:01
3
0
BeginnersBook Java IO 教程

来源:ApacheCN BeginnersBook 翻译项目 译者:飞龙 协议:CC BY-NC-SA 4.0 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并...

今天 10:59
11
0
不要移除WordPress的dashicons.min.css文件

转载请注明文章出处:不要移除WordPress的dashicons.min.css文件 类似于代码重构,不要轻易移除看似“没用”的代码。轻易更改不熟悉的东西,可能会引入更多的问题,从而更加折腾。本人前几天...

今天 10:57
2
0
Spring Boot 2.X(六):Spring Boot 集成 Redis

Redis 简介 什么是 Redis Redis 是目前使用的非常广泛的免费bckbet怎么样内存数据库,是一个高性能的 key-value 数据库。 Redis 与其他 key-value 缓存(如 Memcached )相比有以下三个特点: 1.Redis...

今天 08:45
12
0
Windows安装MySQL8

Windows安装MySQL8 1. 解压zip包到安装目录 解压在C:\mysql 2. 添加MySQL的bin目录路径到PATH环境变量,分号+bin文件的位置 3. 配置初始化的my.ini文件,在安装根目录下C:\mysql\添加 my.ini...

今天 00:52
11
0
Maven配置插件来更改项目编译compile的jdk版本

Maven配置插件来更改项目编译compile的jdk版本 在pom.xml中添加如下代码 org.apache.maven.plugins maven-compiler-plugin

昨天 23:10
6
0
聊聊nacos client的PushReceiver

序 本文主要研究一下nacos client的PushReceiver PushReceiver nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/naming/core/PushReceiver.java public class PushReceiver imp...

昨天 22:44
15
0
修改hosts文件提示没有权限保存怎么办

很多在保存时候提示没有权限,请与管理员联系! 1.找到hosts文件,右击后点击属性 2.点击安全 3.点击编辑按钮 4.修改当前登录系统用户权限(允许全部勾上,点击应用即可)

昨天 22:42
5
0
phpStudy 配置虚拟域名

1.点击其他选项菜单,找到站点域名设置 2.点击新增,填写相关信息并保存。 3.打开hosts文件。(a.其他选项菜单->打开hosts;b.在C:\Windows\System32\drivers\etc打开) 4.重启phpStudy ,在浏览...

昨天 22:34
2
0
Vertx Metrics 监控可视化记录

简介 Vertx结合Dropwizard Metrics对服务的各项指标提供度量监控,因参考文章编写详细,本文对实践Metrics 监控可视化记录 参考资料 官方资料: https://vertx.io/docs/vertx-dropwizard-met...

昨天 22:26
7
0
PriorityQueue自定义排序函数的用法

简单地一个例子: import java.util.Comparator; import java.util.PriorityQueue; import java.util.Random; public class Main { public static void main(String args[]) { Priority......

昨天 22:20
8
0
Maven基础

Maven基础 1. 坐标 Maven坐标主要组成(GAV),确定一个jar包的位置 groupId:定义当前Maven组织名称 artifactId:定义实际项目名称 version:定义当前项目的当前版本 2. 坐标的查找 访问http:...

昨天 21:55
3
0
PriorityQueue详解

PriorityQueue使用跟普通队列一样,唯一区别是PriorityQueue会根据排序规则决定谁在队头,谁在队尾。 往队列中添加可比较的对象String : import java.util.PriorityQueue; public class Mai...

昨天 21:34
11
0
BeginnersBook Java 示例

来源:ApacheCN BeginnersBook 翻译项目 译者:飞龙 协议:CC BY-NC-SA 4.0 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并...

昨天 20:56
16
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部