- 博客(104)
- 资源 (35)
- 收藏
- 关注
原创 Spring Boot 应用可视化监控,一目了然!
1、Spring Boot 应用暴露监控指标Spring Boot 基础就不介绍了,最新的教程和示例源码看这个:https://github.com/javastacks/spring-boot-best-practice首先,添加依赖如下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte.
2021-05-31 14:30:26 374 1
转载 SQL 中的 NULL 原来是这么回事,有意思!
点击关注公众号,Java干货及时送达在日常使用数据库时,你在意过NULL值么?其实,NULL值在数据库中是一个很特殊且有趣的存在,下面我们一起来看看吧;在查询数据库时,如果你想知道一个列(...
2021-05-31 14:06:00 478
转载 把 Redis 当作队列来用,真的合适吗?
点击关注公众号,Java干货及时送达转自公众号:水滴与银弹我经常听到很多人讨论,关于「把 Redis 当作队列来用是否合适」的问题。有些人表示赞成,他们认为 Redis 很轻量,用作队列很...
2021-05-31 14:06:00 204
原创 史上最便捷搭建 Zookeeper 的方法!
作者:不学无数的程序员链接: www.jianshu.com/p/6d349acf48aa什么是 ZooKeeperZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系统中。Zookeeper 有三种运行模式:
2021-05-31 10:46:06 201
原创 SQL 窗口函数是什么?涨见识了!
作者:Eric Fu链接:https://ericfu.me/sql-window-function/窗口函数(Window Function) 是 SQL2003 标准中定义的一项新特性,并在 SQL2011、SQL2016 中又加以完善,添加了若干处拓展。窗口函数不同于我们熟悉的普通函数和聚合函数,它为每行数据进行一次计算:输入多行(一个窗口)、返回一个值。在报表等分析型查询中,窗口函数能优雅地表达某些需求,发挥不可替代的作用。本文首先介绍窗口函数的定义及基本语法,之后将介绍在 DBMS 和大数据.
2021-05-30 17:58:11 272
转载 Spring Boot 应用可视化监控,一目了然!
点击关注公众号,Java干货及时送达1、Spring Boot 应用暴露监控指标首先,添加依赖如下依赖:<dependency><groupId&g...
2021-05-30 14:36:00 244
原创 异步编程的几种方式,你知道几种?
作者:Eric Fu链接:https://ericfu.me/several-ways-to-aync/近期尝试在搬砖专用语言 Java 上实现异步,起因和过程就不再详述了,总而言之,心中一万头草泥马奔过。但这个过程也没有白白浪费,趁机回顾了一下各种异步编程的实现。这篇文章会涉及到回调、Promise、反应式、async/await、用户态线程等异步编程的实现方案。如果你熟悉它们中的一两种,那应该也能很快理解其他几个。为什么需要异步?操作系统可以看作是个虚拟机(VM),进程生活在操作系统创造的虚拟.
2021-05-30 08:14:47 154
转载 自从在 IDEA 中用了热部署神器 JRebel,开发效率提升了 10 倍!
点击关注公众号,Java干货及时送达来源:https://github.com/judasn/IntelliJ-IDEA-Tutorial/blob/master/jrebel-setup...
2021-05-29 14:36:00 436
原创 全球部署的分布式数据库 YugabyteDB,了解一下?
作者:Eric Fu链接:https://ericfu.me/yugabyte-db-introduction/Yugabyte DB 是一个全球部署的分布式数据库,和国内的 TiDB 和国外的 CockroachDB 类似,也是受到 Spanner 论文启发,所以在很多地方这几个数据库存在不少相似之处。与 Cockroach 类似,Yugabyte 也主打全球分布式的事务数据库——不仅能把节点部署到全球各地,还能完整支持 ACID 事务,这是他最大的卖点。除此以外还有一些独特的特性,比如支持文档数据库
2021-05-29 10:21:12 724
转载 2021 年 5 月中国编程语言排行榜,C++ 超过 Java 没戏了...
点击关注公众号,Java干货及时送达编程语言比例(市场份额)这个月,c/c++的份额又下降了,java的份额又上升了。看了c/c++ 超过 java 没戏了。工资原文链接:https://...
2021-05-28 14:06:00 800
转载 BeanUtils、BeanCopier、Dozer、Orika 哪个性能最强?
点击关注公众号,Java干货及时送达来源:https://albenw.github.io/posts/f6a7daea/背景在分层的代码架构中,层与层之间的对象避免不了要做很多转换、赋值...
2021-05-28 14:06:00 2434
转载 一图秒懂多线程,哈哈哈哈…
一图秒懂多线程多线程编程的理论↓↓↓多线程编程的现实↓↓↓(无声视频)看到这,你什么心情?此时此刻心情”好烦烦“!今天给小伙伴们出几道阿里必问的面试题,测测你能完美的回答几道呢?有没有一种...
2021-05-28 14:06:00 172
原创 别再乱打日志了,这样才是定位 bug 打日志的方式!
概述日常工作中,程序员需要经常处理线上的各种大小故障,如果业务代码没打印日志或者日志打印的不好,会极大的加大了定位问题的难度,使得解决bug的时间变长了。对于那种影响比较大的bug,处理时间是分秒必争的,慢几秒处理完,可能GMV就哗啦啦的掉了很多。一个程序员是否优秀,其中一个判断维度就是:处理线上问题是否快狠准,而其中日志是帮我们快速定位问题的绝佳手段。下面分享一下笔者平时在业务系统里记日志的一些手法和习惯,希望对大家有一些帮助。请统一日志格式日志格式最好是统一的,即方便查看定位问题又方便统计收
2021-05-28 13:50:50 487
原创 分布式事务中的时间戳,老大难了…
本文作者: Eric Fu本文链接: https://ericfu.me/timestamp-in-distributed-trans/时间戳(timestamp)是分布式事务中绕不开的重要概念,有意思的是,现在主流的几个分布式数据库对它的实现都不尽相同,甚至是主要区分点之一。本文聊一聊时间戳的前世今生,为了把讨论集中在主题上,假设读者已经对数据库的 MVCC、2PC、一致性、隔离级别等概念有个基本的了解。为什么需要时间戳?自从 MVCC 被发明出来之后,那个时代的几乎所有数据库都抛弃(或部分抛.
2021-05-28 08:14:02 282
原创 基于 Kubernetes 部署 Zookeeper,太有意思了!
作者:fredalxin地址:https://fredal.xin/deploy-zk-with-k8s随着云原生化流行的大趋势,我们的基础组件也需要逐渐上Kubernetes了。Apache Zookeeper作为目前最流行的分布式协调组件,在我们的微服务架构中负责扮演注册中心的角色。在Kubernetes中运行Zookeeper集群是很有意义的,可以利用其原生的弹性扩缩容、高可用特性。使用StatefulSet部署Zookeeper官方提供了使用statefulSet的方式来部署 Zookee
2021-05-27 15:14:56 473 1
转载 百度开源的分布式 ID 生成器,太强大了!
点击关注公众号,Java干货及时送达来源:https://lilinchao.com/archives/1226.html一、UidGenerator是什么UidGenerator是百度开...
2021-05-27 14:06:00 616
原创 Java 正则表达式处理复杂文本,效率就是高!
一、正则表达式简介1.为什么需要正则表达式?文本的复杂处理2.正则表达式的优势和用途?一种强大而灵活的文本处理工具;大部分编程语言,数据库,文本编辑器,开发环境都支持正则表达式3.正则表达式定义:正如它的名字一样是描述一个规则,通过这个规则可以匹配一类字符串学习正则表达式很大程度上就是学习正则表达式的语法规则二、开发中如何使用?开发中使用正则表达式的流程:分析所要匹配的数据,写出测试用的典型数据在工具软件中进行匹配测试在程序中调用通过测试的正则表达式三、正则表达式
2021-05-27 08:24:27 615
原创 如何打日志才能方便排查问题?
作者:琴水玉来源:https://cnblogs.com/lovesqcc/p/4319594.html在程序中打错误日志的主要目标是为更好地排查问题和解决问题提供重要线索和指导。但是在实际中打的错误日志内容和格式变化多样,错误提示上可能残缺不全、没有相关背景、不明其义,使得排查解决问题成为非常不方便或者耗时的操作。而实际上,如果编程的时候稍加用心,就会减少排查问题的很多无用功。 在阐述如何编写有效的错误日志之前,了解错误是怎么产生的,非常重要。错误是如何炼成的对于当前系统来说, 错误的产生由三个
2021-05-26 13:18:00 738
转载 还在手写 Nginx 配置?试试这款可视化配置神器,太强了!
点击关注公众号,Java干货及时送达转自公众号:逛逛GitHubNginx 是前后端开发工程师必须掌握的神器。该神器有很多使用场景,比如反向代理、负载均衡、动静分离、跨域等等。把 Ngin...
2021-05-26 10:36:00 197
转载 终于把 TCP 与 UDP 协议整明白了!
点击关注公众号,Java干货及时送达网络编程有三个要素,分别是IP地址、端口号和通信协议,那本文主要讲述的是TCP与UDP这两种通信协议,以及编程的实现。首先,我们需要了解一下IP地址、端...
2021-05-26 10:36:00 188
原创 为什么 HashMap 并发时会引起死循环?
今天研读Java并发容器和框架时,看到为什么要使用ConcurrentHashMap时,其中有一个原因是:线程不安全的HashMap, HashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表形成环形数据结构,查找时会陷入死循环。纠起原因看了其他的博客,都比较抽象,所以这里以图形的方式展示一下,希望支持!1)当往HashMap中添加元素时,会引起HashMap容器的扩容,原理不再解释,直接附源代码,如下:/** * * 往表中添加元素,如果插入元素之后,表
2021-05-26 08:31:29 190
原创 Spring 为什么会有 FactoryBean?
作者:叁滴水博客:https://blog.csdn.net/qq_30285985/前言常说 spring 的核心是 ioc,ioc 的核心是 BeanFactory。然而在 spring 中还有一个很容易让人混淆的词FactoryBean。本文通过一些 mybatis 源码来讲述其区别,请大家参考。另外,关注公众号Java技术栈,在后台回复:面试,可以获取我整理的 Java、Spring 系列面试题和答案,非常齐全。一、为什么会有FactoryBean?BeanFactory是在学习 IOC
2021-05-25 14:26:09 1258 5
转载 RabbitMQ 中的 7 种队列模式,写得太好了!
点击关注公众号,Java干货及时送达七种模式介绍与应用场景简单模式(Hello World)做最简单的事情,一个生产者对应一个消费者,RabbitMQ相当于一个消息代理,负责将A的消息转发...
2021-05-25 14:06:00 130
转载 细数 ThreadLocal 三大坑,内存泄露仅是小儿科!
点击关注公众号,Java干货及时送达本文转自公众号:苦味代码我在参加Code Review的时候不止一次听到有同学说:我写的这个上下文工具没问题,在线上跑了好久了。其实这种想法是有问题的,...
2021-05-25 14:06:00 232
原创 常用 Git 使用技巧,收藏了~
作者: Escape来源: https://www.escapelife.site/posts/f6ffe82b.html只有在遇到问题的时候,才体会到技巧带来的好处!常见企业工作流程主要介绍,企业中常用的 Git 工作流程!Git Flow主干分支稳定分支开发分支补丁分支修改分支Github Flow创建分支添加提交提交 PR 请求讨论和评估代码部署检测合并代码Gitlab Flow带生产分支带环境分支带发布分支日常使用最佳实践总结日常工作中
2021-05-25 09:09:57 167
原创 别再用 kill -9 了,这才是微服务上下线的正确姿势!
作者:fredalxin地址:https://fredal.xin/graceful-soa-updown对于微服务来说,服务的优雅上下线是必要的。就上线来说,如果组件或者容器没有启动成功,就不应该对外暴露服务,对于下线来说,如果机器已经停机了,就应该保证服务已下线,如此可避免上游流量进入不健康的机器。优雅下线基础下线(Spring/SpringBoot/内置容器)首先JVM本身是支持通过shutdownHook的方式优雅停机的。Runtime.getRuntime().addShutdownH
2021-05-24 17:14:53 161
转载 PageHelper 分页无效的坑。。。
点击关注公众号,Java干货及时送达1.问题阿里巴巴Java开发手册:1.1.PageHelper先开启分页,后对list数据操作@OverridepublicPageInfo<...
2021-05-24 14:06:00 809
转载 图解 Kafka,画得太好了!
点击关注公众号,Java干货及时送达Kafka 是主流的消息流系统,其中的概念还是比较多的,下面通过图示的方式来梳理一下 Kafka 的核心概念,以便在我们的头脑中有一个清晰的认识。基础K...
2021-05-24 14:06:00 168
原创 深入了解 zookeeper 的 watcher 机制!
作者:fredalxin地址:https://fredal.xin/zookeeper-watcher我们可以使用 zookeeper 作为注册中心来实现服务的注册与发现,curator 框架提供了 curator-x-discovery 扩展实现了开箱即用的服务注册发现,但更多时候我们还是选择自己去实现,那这个时候我们需要额外关注 zookeeper 的 1 个特性,即 wathcer。在微服务场景中,watcher 机制主要提供了服务通知功能,比如 Instance1 这个实例在 Service1
2021-05-24 08:21:56 299
原创 Spring Boot 2.5 重磅发布,黑暗模式太炸了!
前言距离上次的 Spring Boot 2.4.5 版本发布刚好一个月左右,Spring Boot 又发新版本了!Spring Boot 又一次性发布了 3 个版本:Spring Boot 2.5.0Spring Boot 2.4.6Spring Boot 2.2.13.RELEASE在这次发布的 3 个版本中,Spring Boot 2.5 毫无疑问是最重大的一个版本,也是近半年发布的最大版本,上一个 Spring Boot 2.4 版本还是在半年之前。本文重点介绍下 Spring B
2021-05-23 14:44:05 1011
原创 Spring Cloud Eureka 与 Ribbon 是怎么做服务发现的?
作者:fredalxin地址:https://fredal.xin/how-eureka-and-ribbon-discover-service本文基于 spring cloud dalston,同时文章较长,请选择舒服姿势进行阅读。Eureka 与 Ribbon 是什么?和服务发现什么关系?Eureka 与 Ribbon 都是 Netflix 提供的微服务组件,分别用于服务注册与发现、负载均衡。同时,这两者均属于 spring cloud netflix 体系,和 spring cloud 无缝集
2021-05-23 08:38:48 184
原创 什么?Spring Boot CommandLineRunner 有坑!?
使用场景在应用程序开发过程中,往往我们需要在容器启动的时候执行一些操作。Spring Boot中提供了CommandLineRunner和ApplicationRunner两个接口来实现这样的需求。两个接口的不同参数不同,其他大体相同,可根据实际需求选择合适的接口使用。CommandLineRunner接口中run方法的参数为String数组,ApplicationRunner中run方法的参数为ApplicationArguments。特殊的场景在启动项目时,有时候我们所做的操作可能不是一次
2021-05-22 19:49:47 935
转载 一条 update 语句引起的事故,这回让开发长长记性!!
点击关注公众号,Java干货及时送达一、前言最近经常碰到开发误删除误更新数据,这不,他们又给我找了个麻烦,我们来看下整个过程。二、过程由于开发需要在生产环节中修复数据,需要执行120条SQ...
2021-05-22 14:36:00 199
原创 关于 websocket 跨域的一个奇怪问题…
作者:fredalxin地址:https://fredal.xin/websocket-cors-problem最近在建设websocket长连接网关,过程中遇到一件比较奇怪的事情,做下简单的记录。需求十分的简单,websocket网关在做权限校验的时候期望复用现有登录逻辑的jwt-token。如下图所示,sso与websocket网关属于不同的二级域名,登录的jwt-token cookie的domain设置为*.xx.com。所以我们的期望是浏览器与websocket网关进行handshark请
2021-05-22 08:16:27 326
原创 电商金额计算的 4 个坑,千万注意了!
作者:叁滴水来源:https://blog.csdn.net/qq_30285985/前言电商项目开发时肯定少不了金额计算,金额计算时有很多让人坑人的地方,在此记录,以免被坑。1、多精度计算问题多精度不能直接计算,会存在经度缺失的问题。public static void main (String[] args) { double num1 = 1; double num2 = 31.2; double num3 = 323.03; System.out.println (num
2021-05-21 20:20:29 286
转载 k8s 和 Docker 到底是什么关系?
点击关注公众号,Java干货及时送达这篇文章主要介绍了k8s和Docker关系简单说明,本文利用图文讲解的很透彻,有需要的同学可以研究下最近项目用到kubernetes(以下简称k8s,k...
2021-05-21 14:06:00 3778
原创 Kubernetes 是怎么实现服务发现的?
作者:fredalxin地址:https://fredal.xin/kubertnetes-discovery我们来说说 kubernetes 的服务发现。那么首先这个大前提是同主机通信以及跨主机通信都是 ok 的,即同一 kubernetes 集群中各个 pod 都是互通的。这点是由更底层的方案实现,包括 docker0/CNI 网桥、flannel vxlan/host-gw 模式等,在此篇就不展开讲了。在各 pod 都互通的前提下,我们可以通过访问 podIp 来调用 pod 上的资源,那么离服
2021-05-21 08:11:15 362
原创 自适应限流都用什么牛逼工具?
作者:fredalxin地址:https://fredal.xin/netflix-concuurency-limits作为应对高并发的手段之一,限流并不是一个新鲜的话题了。从Guava的Ratelimiter到Hystrix,以及Sentinel都可作为限流的工具。自适应限流一般的限流常常需要指定一个固定值(qps)作为限流开关的阈值,这个值一是靠经验判断,二是靠通过大量的测试数据得出。但这个阈值,在流量激增、系统自动伸缩或者某某commit了一段有毒代码后就有可能变得不那么合适了。并且一般业务方
2021-05-20 14:55:25 293
转载 别再用 kill -9 了,这才是微服务上下线的正确姿势!
点击关注公众号,Java干货及时送达作者:fredalxin地址:https://fredal.xin/graceful-soa-updown对于微服务来说,服务的优雅上下线是必要的。就上...
2021-05-20 14:06:00 353
转载 为什么新生代不用标记清除算法?
点击关注公众号,Java干货及时送达本文转自公众号:安琪拉的博客杭州某写字楼,安琪拉穿着新买的19.9的皮鞋走进玻璃隔间办公室,准备迎接一场新的表演。面试官 :看你简历上有些熟悉JVM,是...
2021-05-20 14:06:00 623
《Java开发手册(嵩山版)》.pdf
2020-08-03
10道Java高级必备的Netty面试题!
2020-03-06
7道消息队列ActiveMQ面试题!
2020-03-06
史上最全 Java 多线程面试题及答案
2019-02-01
20 道 Spring Boot 面试题
2019-02-01
阿里巴巴的《Java开发手册》最新版:黄山版
2023-10-24
史上最全 40 道 Dubbo 面试题及答案
2019-02-01
区块链:将如何重新定义世界
2017-09-25
区块链定义未来金融与经济新格局
2017-09-25
腾讯区块链方案白皮书
2017-09-25
区块链技术指南
2017-09-19
JavaEE开发的颠覆者 Spring Boot实战(源码)
2017-09-19
JDK8代码实践,简单易懂
2017-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人