摘要:
SpringBoot中的Scheduled定时任务是Spring Boot中非常常用的特性,用来执行一些比如日切或者日终对账这种定时任务 下面说说使用时要注意的Scheduled的几个特性 Scheduled的执行方式 Scheduled按照顺序执行,对于某个task未做配置的话只会起一个线程去执行 阅读全文
摘要:
最近看了Spring in Action,了解了一下WebSocket和Stomp协议相关技术,并搭建了一个项目。网上的例子不完整或者描述不清,所以自己记录一下以作备忘。 一.配置 Spring Boot项目搭建完成后,基于Spring Boot一切皆配置的概念,添加WebSocket支持十分简单。 阅读全文
摘要:
EventLoop是什么 如果你去百度EventLoop,肯定会百度到很多关于JavaScript,NodeJS的文章,是的,这两种语言的事件机制就依赖于EventLoop,但是EventLoop到底是什么,可以先思考2个问题: 一般情况下,当我们要实现令一个线程不断处理任务,都是选择使用while 阅读全文
摘要:
近日学习Netty,在看书和实践的时候对于书上只言片语的那些话不是十分懂,导致尝试写例子的时候遭遇各种不顺,比如decoder和encoder还有HttpObjectAggregator的添加顺序,研究了一番之后和大家分享一下自己的理解,希望后来人可以少走弯路。 模型浅析 简单描述下ChannelH 阅读全文
摘要:
Netty中的伪共享 先说为什么知道这个概念吧,期初看Netty源码的时候,看到了NioEventLoop的构建,其中有这么一句代码: private static Queue<Runnable> newTaskQueue0(int maxPendingTasks) { // This event 阅读全文
摘要:
根据进程名杀死进程 ps -ef | grep process_name | grep -v grep | awk '{print $2}' | xargs kill -9 docker拉取镜像 docker pull localhost:5000/v2/moyu-eureka-server:lat 阅读全文
摘要:
题目 题目地址:https://leetcode-cn.com/problems/count-number-of-teams/ n 名士兵站成一排。每个士兵都有一个 独一无二 的评分 rating 。 每 3 个士兵可以组成一个作战单位,分组规则如下: 从队伍中选出下标分别为 i、j、k 的 3 名 阅读全文
摘要:
操作系统:Centos7.3 一.依赖安装 首先安装相关依赖: yum install -y gcc openssl-devel popt-devel yum -y install libnl libnl-devel yum install -y libnfnetlink-devel 基本依赖就安装 阅读全文
摘要:
前言 之前一篇文章简单介绍了NIO,并附了一个简单的例子,但是自己试一下就会知道,简单的使用NIO是无法满足开发需要的,因为NIO处理的思路和日常servlet加spring中习惯的一连接一线程有很大不同。 NIO与多线程 上篇那个例子实现了一个简单的NIO,但是实际使用中我们不可能仅仅在单线程下使 阅读全文
摘要:
近日学习Netty,在看书和实践的时候对于书上只言片语的那些话不是十分懂,导致尝试写例子的时候遭遇各种不顺,比如decoder和encoder还有HttpObjectAggregator的添加顺序,研究了一番之后和大家分享一下自己的理解,希望后来人可以少走弯路。 IO与NIO的区别 IO是Input 阅读全文
摘要:
Java编译期注解处理器 Java编译期注解处理器,Annotation Processing Tool,简称APT,是Java提供给开发者的用于在编译期对注解进行处理的一系列API,这类API的使用被广泛的用于各种框架,如dubbo,lombok等。 Java的注解处理一般分为2种,最常见也是最显 阅读全文
摘要:
之前公司要做技术分享,因为Git虽然看似简单,但是实际上是使用较多而且较为重要的一个工具,所以做了一下大概的总结。 因为新来的同事问了一个问题,紧急版本要拉hotfix分支修改,但是hotfix分支如何优雅的合并到各个分支上去呢?尤其是hotfix修改的位置比较敏感的情况下。 所以顺带也研究了一下这 阅读全文
摘要:
介绍 将spring boot(cloud)项目发布到docker环境作为镜像,一般常用的一个是com.spotify的docker-maven-plugin这个maven插件,还有一个就是本文介绍的了,本文介绍的jib-maven-plugin是谷歌提供的,且配置较为简单(相对的镜像自定义能力较弱 阅读全文
摘要:
问题的发现 早上上班,运维告警,说账户模块的服务全部CPU以及内存告警,当时正在地铁早高峰,所以他们留下了一台在dump,其他机器立马重启,重启后恢复,上班后立马开始排查。 一开始dump文件没出来,后续运维告知dump也失败了,其实按照结果来看,这个问题要是有dump的话, 当时一眼就能看出来问题 阅读全文
摘要:
问题的发现 最早问题的发现在于用户提的,用户提出他支付时支付失败,过了一会儿再试就好了,于是翻日志,查询到当时duboo调用出现了下类错误: [TraceID:20200527145701489] DEBUG c.y.c.s.w.s.m.m.a.HandlerMethodAspect - Throw 阅读全文
摘要:
问题的发现 发现当然还是运维大哥因为发现告警,包括自己邮箱也一堆告警,然后运维大哥做了dump以及jstack后立马重启,重启后暂时解决。 问题的排查 有dump和jstack记录,当然是好分析的,先分析这两个,原因就比较明显了: dump记录拉到本地用java自带的工具查看,发现大量netty的M 阅读全文
摘要:
修改后的源码仓库地址:GitHub. : 改造原因 原有的xxl-job使用自己实现的http协议进行注册以及调度等,与目前框架中本身的注册中心格格不入,会影响健康检查、日志处理、问题排查。 技术栈统一。避免执行器内包含两套注册逻辑。 提高分布式健壮性,原有的服务注册以及发现等功能较弱,且与实际应用 阅读全文
摘要:
研究这个问题的起因 起因是一次面试,一次面试某电商网站,前面问到缓存,分布式,业务这些,还相谈甚欢。然后面试官突然甩出一句:“了解dubbo吗?dubbo是长连接还是短连接?”。当时我主要接触了解学习的还是spring cloud,dubbo作为知名的分布式rpc框架,只是有一定了解,并且连接这一块 阅读全文
摘要:
数据库扩容随着架构的演进 数据库扩容一般都是随着系统建设一步步演进的,所以这里随着系统的演进,一一介绍扩容的方案。 读写分离 一开始肯定是一个数据库,但是压力上来了之后,最容易做的就是读写分离,即1主多从,主机负责写,从机负责读,像mysql就提供类似功能,通过配置实现master-slaver的模 阅读全文
摘要:
负载均衡算法 负载均衡算法,一般在分布式场景的中大量使用,负载均衡一般分为调用方负载均衡,和服务方负载均衡,spring cloud中的ribbon就是使用的调用方负载均衡,而通过nginx的配置来进行负载均衡,明显更像是服务端的负载均衡。但是原理是一致的,算法的目的就是在一个服务器集合中,选择其中 阅读全文