自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序新视界

每一步成长都与你分享。公众号:程序新视界

  • 博客(942)
  • 资源 (11)
  • 问答 (4)
  • 收藏
  • 关注

原创 周末,再来聊聊学习、生活与环境

又到周末了,刚整理完几篇技术文章,设置好了定时发送。趁着兴头未尽,再写篇文章跟大家聊聊生活、学习与环境。当然,这些还是以自己的生活为主线,产生的一些感想。朋友说,你是一个会享受孤独的人一次,和朋友吃饭,朋友说:你是一个会享受孤独的人。当时一愣,后来仔细想想的确如此。可能周围充斥着这样人,所以才没有觉察到。无论在朋友圈或是公众号,看到太多这样会享受孤独的人。比如,一位每周末都会坐在电脑前思考并输入技术架构思想的朋友;一位为了面试准备了半年题库的朋友;一位周末早上出门,咖啡馆坐一天写文章的朋友。而且还有

2021-08-29 14:33:04 338 4

原创 03 网络面经:你真的了解Cookie和Session吗?

在初级面试中,关于Cookie和Session的区别是一个高频的面试题。如果只是机械的回答一下它们的区别,那你可能真的不了解Cookie和Session,就更别说灵活运用了。这篇文章带你从Cookie和Session的初级应用到高级应用捋一遍,看看有多少不知道的内容。什么是Cookie?我们知道HTTP协议是无状态的,一次请求完成,不会持久化请求与相应的信息。那么,在购物车、用户登录状态、页面个性化设置等场景下,就无法识别特定用户的信息。这时Cookie就出现了。Cookie是客户端保存用户信息的一

2021-08-26 07:25:48 398

原创 02 网络面经:一个TCP连接可以发送多少个HTTP请求?

一个TCP连接可以发送多少个HTTP请求?就这这个问题,我们聊聊TCP、HTTP以及浏览器之间的关系和对请求处理的优化。TCP与HTTP的渊源我们知道TCP协议对应于传输层,HTTP协议对应于应用层。WEB项目中,HTTP协议是建立在TCP的基础上的。最初浏览器从服务器加载一个网页,会发起一个HTTP请求,这时需要先建立一个TCP连接。当本次数据请求完毕之后,会立刻断开TCP连接。但随着时间的推理,HTML网页内容越来越复杂,不仅有内容,还有JS、CSS和图片资源,每个资源的请求都建立一次TCP连接

2021-08-25 09:27:43 3471 9

原创 01网络面经:你每天都用的HTTP协议,到底是什么鬼?

作为开发人员,每天都在使用HTTP协议,但是否详细了解过一下该协议的构成及特性吗?本文就带大家全面的梳理一下。先来看一下本篇文章涉及到的知识点脑图。脑图原文件可在公众号【程序新视界】内回复“http”获得。下面,看具体关于HTTP协议的介绍。HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议,是万维网的数据通信的基础。HTTP协议基本格式:协议://服务器IP:[端口]/路径/[?查询

2021-08-24 07:52:27 394

原创 07篇 Nacos客户端是如何实现实例获取的负载均衡呢?

学习不用那么功利,二师兄带你从更高维度轻松阅读源码~前面我们讲了Nacos客户端如何获取实例列表,如何进行缓存处理,以及如何订阅实例列表的变更。在获取到一个实例列表之后,你是否想过一个问题:如果实例列表有100个实例,Nacos客户端是如何从中选择一个呢?这篇文章,就带大家从源码层面分析一下,Nacos客户端采用了如何的算法来从实例列表中获取一个实例进行请求的。也可以称作是Nacos客户端的负载均衡算法。单个实例获取NamingService不仅提供了获取实例列表的方法,也提供了获取单个实例的方.

2021-08-23 07:31:57 972

原创 翻看了上百篇技术号文章,写技术的越来越少了

周末了,写篇文章跟大家闲聊一下。上午花了三四个小时,看完了公众号里的文章,有一些感想,就写篇文章跟大家聊聊。内容关于三方面:聊聊公众号内容的阅读,聊聊总结的Java技术栈,聊聊技术学习的感悟。阅读的小习惯个人有一个小习惯,公众号收到的文章不会单纯让它放哪里,会定时去阅读或清理。但随着关注的技术号越来越多,再也没时间去一篇篇看了,基本上都是集中阅读。集中阅读有两个好处:第一,如果按照公众号新的推送模式,推送一条,马上阅读,整块的时间反而被碎片化了,而且难以分辨当前推送文章的质量如何,点开只是一时脑热

2021-08-21 12:26:08 433 1

原创 06篇 Nacos Client本地缓存及故障转移

学习不用那么功利,二师兄带你从更高维度轻松阅读源码~本篇文章我们来通过源码分析一下Nacos的本地缓存及故障转移功能,涉及到核心类为ServiceInfoHolder和FailoverReactor。ServiceInfoHolder功能概述ServiceInfoHolder类,顾名思义,服务信息的持有者。前面文章已经多次涉及到ServiceInfoHolder类,比如每次客户端从注册中心获取新的服务信息时都会调用该类的processServiceInfo方法来进行本地化的处理,包括更新缓存服务、.

2021-08-18 07:12:12 3382

原创 双重检查锁,原来是这样演变来的,你了解吗

在看Nacos的源代码时,发现多处都使用了“双重检查锁”的机制,算是非常好的实践案例。这篇文章就着案例来分析一下双重检查锁的使用以及优势所在,目的就是让你的代码格调更加高一个层次。同时,基于单例模式,讲解一下双重检查锁的演变过程。Nacos中的双重检查锁在Nacos的InstancesChangeNotifier类中,有这样一个方法:private final Map<String, ConcurrentHashSet<EventListener>> listenerMap

2021-08-17 07:24:31 888 2

原创 05篇 Nacos Client服务订阅之事件机制剖析

学习不用那么功利,二师兄带你从更高维度轻松阅读源码~上篇文章,我们分析了Nacos客户端订阅的核心流程:Nacos客户端通过一个定时任务,每6秒从注册中心获取实例列表,当发现实例发生变化时,发布变更事件,订阅者进行业务处理,然后更新内存中和本地的缓存中的实例。这篇文章为服务订阅的第二篇,我们重点来分析,定时任务获取到最新实例列表之后,整个事件机制是如何处理的。回顾整个流程先回顾一下客户端服务订阅的基本流程:在第一步调用subscribe方法时,会订阅一个EventListener事件。而在定.

2021-08-16 07:43:34 933

原创 04篇 Nacos Client服务订阅机制之【核心流程】

学习不用那么功利,二师兄带你从更高维度轻松阅读源码~说起Nacos的服务订阅机制,对此不了解的朋友,可能感觉非常神秘,这篇文章就大家深入浅出的了解一下Nacos 2.0客户端的订阅实现。由于涉及到的内容比较多,就分几篇来讲,本篇为第一篇。Nacos订阅概述Nacos的订阅机制,如果用一句话来描述就是:Nacos客户端通过一个定时任务,每6秒从注册中心获取实例列表,当发现实例发生变化时,发布变更事件,订阅者进行业务处理。该更新实例的更新实例,该更新本地缓存的更新本地缓存。上图画出了订阅方法的主线.

2021-08-12 07:28:14 2549

原创 03篇 Nacos Client服务发现源码分析

学习不用那么功利,二师兄带你从更高维度轻松阅读源码~本篇带大家通过源码层面分析一下Nacos Client的服务发现的路程,事实可能并不像你想象的那样简单。Nacos服务发现直观的看,Nacos客户端的服务发现,就是封装参数、调用服务端接口、获得返回实例列表。但细化这个流程,会发现不仅包括了通过NamingService获取服务列表,在获取服务列表的过程中还涉及到通信协议(Http or gRPC)、订阅流程、故障转移逻辑等。下面我们根据服务发现来捋一下相关的流程。先说入口程序,依旧是在Na.

2021-08-10 07:21:52 537

原创 IntelliJ Idea如何将设置tab设置为4个空格

在阅读Nacos源码时,想提交贡献一些源码,但发现经过本地IDE修改之后,空行处被修改了,这是因为本地使用的tab进行缩进,而Nacos源码使用的是4个空格。那么,这里就看一下为什么使用4个空格,以及如何设置达到按tab键时,达到输入的是4个空格的效果。为什么将tab设置为4个空格通常IDEA中,可以通过tab键进行缩进,也可以通过4个空格进行缩进。在IDEA中看起来效果一样,但为什么有些代码规范中要求使用4个空格而不是tab呢?这是因为:在不同编辑下4个空格的宽度看起来是一致的,而tab则长短不一

2021-08-06 15:57:06 12211

原创 Java中定时任务的6种实现方式,你知道几种?

几乎在所有的项目中,定时任务的使用都是不可或缺的,如果使用不当甚至会造成资损。还记得多年前在做金融系统时,出款业务是通过定时任务对外打款,当时由于银行接口处理能力有限,外加定时任务使用不当,导致发出大量重复出款请求。还好在后面环节将交易卡在了系统内部,未发生资损。所以,系统的学习一下定时任务,是非常有必要的。这篇文章就带大家整体梳理学习一下Java领域中常见的几种定时任务实现。线程等待实现先从最原始最简单的方式来讲解。可以先创建一个thread,然后让它在while循环里一直运行着,通过sleep方法

2021-08-05 07:37:06 68299 9

原创 《跟二师兄学Nacos》02篇 Nacos的临时与持久化实例,傻傻分不清?

学习不用那么功利,二师兄带你从更高维度轻松阅读源码~本篇文章Nacos核心逻辑篇,给大家讲解一下「临时实例」与「持久化实例」的区别及运用场景。Nacos的临时实例与持久化实例在Nacos Client进行实例注册时,我们知道是通过Instance对象来携带实例的基本信息的。在Instance中有一个ephemeral字段,用来表示该实例是临时实例,还是持久化实例。public class Instance implements Serializable { /** *.

2021-08-05 07:33:53 1948

原创 Protocol Buffers,一款比xml快100倍的序列化框架

我们通常习惯用Json、XML等形式的数据存储格式,但相信还有很多人没有听说过Protocol Buffer(简称protobuf)。protobuf是Google开源的一个语言无关、平台无关的通信协议,其小巧、高效和友好的兼容性设计,使其被广泛使用。性能比Json、XML真的强太多了!而且,随着微服务架构的流行,RPC框架也成为服务框架的重要组成部分。在很多RPC的设计中,都采用了高性能的编解码技术,而protobuf就属于其中的佼佼者。也就说,要想深入了解微服务架构中的RPC环节底层实现,设计出高效

2021-08-03 07:35:11 581

原创 你有没有觉得学得越多,越觉得自己菜?

前些天,一位带团队的朋友发来一条消息:“你有时候学得多了,会不会觉得学无止境,然后就有点迷茫了?”。我说是的,而且这种感觉非常强烈。朋友之所以发出这样的感慨是因为在面试,想看看自己的身价与能力。面试的结果就是被虐的很惨,于是开始恶补知识,在此期间才发出这样的感慨。对于我而已,有这样强烈的感觉不是因为面试,而是因为在不断的学习新框架,同时还在阅读Nacos源码。学得越多发现自己不会的越多,源码阅读的越深,发现涉及的知识面越多,自己不懂的越多。知识是一个无底洞自从项目中引入了Spring Cloud,感

2021-08-01 13:28:45 3429 27

原创 分布式系统的“脑裂”到底是个什么玩意?

目前大多数项目都在往分布式上发展,一旦系统采用分布式系统,便会引入更多复杂场景和解决方案。比如,当你在系统中使用了Elasticsearch、ZooKeeper集群时,你是否了解过集群的“脑裂”现象?又是否知道它们是如何解决脑裂问题的?如果这些都还未了解,那么你对分布式的了解过于表象了,推荐你读一读这篇文章。下面就以zookeeper为例,带大家了解一下分布式系统中的脑裂现象及如何解决。什么是脑裂?在Elasticsearch、ZooKeeper这些集群环境中,有一个共同的特点,就是它们有一个“大脑

2021-07-29 07:19:17 2347 1

原创 《跟二师兄学Nacos吧》EXT-04篇 Nacos竟然是这样使用代理模式的?

学习不用那么功利,二师兄带你从更高维度轻松阅读源码~随着对Nacos源码的深入阅读,感觉越来越有意思了,大量的设计模式和基础知识点都在其中被运用。不论你是否阅读源码,都值得借鉴一下Nacos的运用案例。今天这篇文章,给大家介绍一下Nacos Client中对代理模式的运用。阅读这篇文章,你可以不懂Nacos源码,但能够学到代理模式的运用;如果你准备阅读Nacos源码,不仅可以学到代理模式的案例,还可以更加深刻的感知到Nacos中的设计思想。代理模式简介通俗的来讲,代理模式就是让别人(代理)帮忙做.

2021-07-28 07:22:21 479

原创 使用了synchronized,竟然还有线程安全问题!

实战中受过的伤,才能领悟的更透彻,二师兄带你分析实战案例。线程安全问题一直是系统亘古不变的痛点。这不,最近在项目中发了一个错误使用线程同步的案例。表面上看已经使用了同步机制,一切岁月静好,但实际上线程同步却毫无作用。关于线程安全的问题,基本上就是在挖坑与填坑之间博弈,这也是为什么面试中线程安全必不可少的原因。下面,就来给大家分析一下这个案例。有隐患的代码先看一个脱敏的代码实例。代码要处理的业务逻辑很简单,就是多线程访问一个单例对象的成员变量,对其进行自增处理。SyncTest类实现了Runna.

2021-07-26 06:50:59 604

原创 《跟二师兄学Nacos吧》EXT-03篇 Nacos中此处为什么采用反射机制?

学习不用那么功利,二师兄带你从更高维度轻松阅读源码~大家可能看到过很多写Java反射机制的文章,但如果在阅读源码的过程中,遇到反射机制的使用,你是否想过为什么要这么用吗?这篇文章就带大家来看看Nacos中对Java反射机制的一处实践案例。这篇文章既属于知识点的分析,也属于Nacos设计层面的分析。Nacos中反射机制实践先来介绍一下Nacos反射机制使用的背景。nacos-client项目中,可以通过NacosFactory获得NamingService,然后基于NamingService来进.

2021-07-23 06:44:35 357 7

原创 《跟二师兄学Nacos吧》EXT-02篇 面试官问工厂模式,你理解的对吗?

学习不用那么功利,二师兄带你一起轻松读源码~在上篇文章中,我们学习了Nacos中是如何灵活运用《简单工厂模式》的。而设计模式在面试过程中也经常会出现。当面试官问到:说说工厂模式是如何实现的?他问的工厂模式指的是什么?这篇文章属于扩展篇的扩展,我们基于简单工厂模式,再来聊聊工厂模式。工厂方法模式先来回答上面的问题,如果笼统的讲工厂模式,通常包括:简单工厂/静态工厂、工厂方法模式和抽象工厂模式。上节讲了简单工厂模式,而抽象工厂模式一般应用在比较复杂的大型应用中,也不太常见。因此,如果工厂模式只是指.

2021-07-21 06:36:08 386

原创 《跟二师兄学Nacos吧》EXT-01篇 看看Nacos是怎么活学活用简单工厂模式的!

学习不用那么功利,二师兄带你一起轻松读源码~番外篇简介Nacos源码分析系列文章,在开篇已经提到过,写作的目标有两个:第一,能够系统的学习Nacos知识;第二,能够基于Nacos学到涉及到的知识点或面。为了方便大家学习,相对应的文章标题会有所区别,Nacos原理部分命名按照正常编号进行。而番外篇,也就是技术点的讲解则会在文章编号上添加“EXT-”的前缀。这样,如果大家只想学习Nacos原理知识,则可跳过EXT前缀的文章。这篇文章我们来看看Nacos Client中对工厂模式的使用。这里分两个步骤.

2021-07-19 07:25:11 388 2

原创 《跟二师兄学Nacos吧》第1篇 Nacos客户端服务注册源码分析

开篇构想在此之前,已经写了十多篇Nacos的文章,感觉Nacos还值得更深入的学习一下。于是萌生了写一个Nacos源码系列专栏的文章。写作的目标呢,有两个:第一,能够系统的学习Nacos知识;第二,能够基于Nacos学到涉及到的知识点或面;展现形式呢,也有两个:第一,单篇足够简单且又有价值;第二,发现代码中的新颖之处;源码版本信息目前在生产实践中建议大家采用1.4.2版本,但作为技术研究,本系列文章会基于2.0.2版本来仅仅讲解。这是两个跨度比较大的版本,建议大家配合源码进行学习。关于源码拉取,

2021-07-16 07:45:24 657 2

原创 Git如何checkout远程tag

拉取项目执行命令git clone:git clone git@github.com:secbr/nacos.git查看远程tag执行命令git tag:appledeMacBook-Pro-2:nacos apple$ git tag0.2.10.2.1-RC10.3.00.3.0-RC10.4.0...此时可找到需要拉取的tag名称。checkout需要的tag执行命令git checkout:(base) appledeMacBook-Pro-2:nacos app

2021-07-15 15:00:15 13798 1

原创 如何启用Spring Boot Actuator的所有Endpoints

概述本文将介绍如何启用Spring Boot Actuator的所有Endpoints。首先从maven依赖开始,然后讲解如何通过配置文件来控制Endpoint(后称作端点)。最后再学习一下如何确保端点的安全。其中Spring Boot 1.x和Spring Boot 2.x在Actuator的端点配置上会有一定的区别。当出现区别时,会进行提示。引入依赖要使用Spring Boot Actuator需要先在项目中引入对应的依赖:<dependency> <groupId&

2021-07-14 18:51:32 2149 1

原创 SpringBoot2.x系列教程(七十一)Spring Boot Actuator,每一个端点都有案例

前言在微服务系统架构中,服务的监控是必不可少的。目前大多数微服务应用又是基于Spring Cloud系列,也可以说是基于Spring Boot系列的。此时使用Spring Boot Actuator来进行微服务的监控,不仅功能全面,而且非常方便。在上篇文章《Spring Boot Actuator集成,难的是灵活运用!》中我们已经介绍了如何将Actuator集成到Spring Boot项目中,并且介绍了如何自定义Endpoint(端点)。有朋友留言说不够深入,那么,本篇文章呢,我们将介绍Actuator

2021-07-13 22:50:08 505

原创 VisualVM导入dump提示“不是有效的核心dump”

通过VisualVM导入dump时提示“不是有效的核心dump”:导致错误的原因是:尝试打开的文件是Head Dump,而不是Core Dump。解决方法依次选择文件、装入:在装入页面选择文件格式为:“堆Dump(*.hprof,*.*)”此时再选择对应的文件,即可正常显示了。程序新视界公众号“程序新视界”,一个让你软实力、硬技术同步提升的平台,提供海量资料博主简介:《SpringBoot技术内幕》技术图书作者,酷爱钻研技术,写技术干货文章。公众号:「程序新视界」,博主的公

2021-07-13 13:55:24 3798

原创 SpringBoot2.x系列教程(七十)Spring Boot Actuator集成及自定义Endpoint详解

前言曾经看到Spring Boot Actuator这个框架时,一直在想,它到底有什么作用呢?虽然知道它提供了很多端点,有助于应用程序的监控和管理,但如果没有直接的实践案例,还是很难有说服力的。直到上篇文章《微服务架构:Nacos本地缓存 PK 微服务优雅下线》中讲到可以利用其中Actuator定义的端点来达到微服务的优雅下线效果,才发现Actuator是真的很有用。那么本文便基于Spring Boot系统如何集成Actuator,如何使用,以及如何自定义一个端点(Endpoint)来展开。Spri

2021-07-12 07:00:13 1047

原创 “精通”,不是为了面试,而是为了个人品牌

前言最近几个月一直在招人,几乎天天看简历,周周面试人。识别人才的能力也在逐步提升,这期间发现很多人在技术学习和运用方面走入了误区,因此特意写这篇文章来聊聊此事。文中提到的一些观点和内容,也曾多次在晨会时跟小伙伴们提起。如果你想在技术领域梳理个人品牌,独树一帜,可以读读这篇文章。精通意味着什么?写简历时,大家通常都会写几项「精通」的技术来撑门面,但何谓精通?精通的基本定义是:深刻地理解,熟练地掌握。对照一下,你简历上写的技术栈是否达到了这个层次?就本人而言,面试的时候基本上是不会准备面试题的,而面试题

2021-07-11 08:11:53 513 16

原创 微服务架构:Nacos本地缓存 PK 微服务优雅下线

前言在上篇文章《微服务:剖析一下源码,Nacos的健康检查竟如此简单》中讲了当微服务突然挂掉的解放方案:调整健康检查周期和故障请求重试。朋友看了文章,建议再聊聊正常关闭服务时如何让微服务优雅下线。为什么说是优雅下线?我们知道在分布式应用中为了满足CAP原则中的A(可用性),像Nacos、Eureka等注册中心的客户端都会进行实例列表的缓存。当正常关闭应用时,虽然可以主动调用注册中心进行注销,但这些客户端缓存的实例列表还是要等一段时间才会失效。上述情况就有可能导致服务请求到已经被关闭的实例上,虽然通过重

2021-07-07 07:48:18 2673 10

原创 微服务:剖析一下源码,Nacos的健康检查竟如此简单

前言前面我们多次提到Nacos的健康检查,比如《微服务之:服务挂的太干脆,Nacos还没反应过来,怎么办?》一文中还对健康检查进行了自定义调优。那么,Nacos的健康检查和心跳机制到底是如何实现的呢?在项目实践中是否又可以参考Nacos的健康检查机制,运用于其他地方呢?这篇文章,就带大家来揭开Nacos健康检查机制的面纱。Nacos的健康检查Nacos中临时实例基于心跳上报方式维持活性,基本的健康检查流程基本如下:Nacos客户端会维护一个定时任务,每隔5秒发送一次心跳请求,以确保自己处于活跃状态。

2021-07-05 07:05:33 778

原创 微服务之:服务挂的太干脆,Nacos还没反应过来,怎么办?

前言我们知道通过Nacos等注册中心可以实现微服务的治理。但引入了Nacos之后,真的就像理想中那样所有服务都由Nacos来完美的管理了吗?Too young,too simple!今天这篇文章就跟大家聊聊,当服务异常宕机,Nacos还未反应过来时,可能会发生的状况以及现有的解决方案。Nacos的健康检查故事还要从Nacos对服务实例的健康检查说起。Nacos目前支持临时实例使用心跳上报方式维持活性。Nacos客户端会维护一个定时任务,每隔5秒发送一次心跳请求,以确保自己处于活跃状态。Nacos

2021-07-02 07:29:49 4548 2

原创 Nacos服务自动关闭问题汇总

Nacos服务自动关闭在使用Nacos时,有时候会遇到服务自动关闭的情况。这通常涉及到三方面的原因:内存配置、启动方式和关闭方式。下面逐一说明。内存配置导致Nacos关闭Nacos最新版本默认的JVM配置是2G,如果你的服务器配置比较低,在这样的默认配置下会导致OOM情况的发生。startup.sh中配置项:if [[ "${MODE}" == "standalone" ]]; then JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"

2021-06-29 20:54:07 11100 2

原创 Nacos 内存参数修改调优

前言在Spring Cloud项目中我们经常会用到Nacos,但如果只是在测试环境或者微服务数量相对比较少时,采用Nacos默认的JVM配置会浪费很多资源。特别是那些低配置用来研究的服务器。无论是出于生产环境优化所需,还是出于测试环境不浪费资源所需,都需要对默认的JVM进行调整。Nacos内存配置Nacos是基于Spring Boot的项目,所使用的内存参数是在启动命令中进行配置的。而启动命令位于startup.sh(或.cmd)当中:#=============================

2021-06-29 20:49:36 5878 3

原创 微服务之吐槽一下Nacos日志的疯狂输出

前言目前公司系统采用Spring Cloud架构,其中服务注册和发现组件用的Nacos,最近运维抱怨说,磁盘不够用,日志增长的太快。简单排查一下,罪魁祸首竟然是Nacos。按理说Nacos作为服务注册中心,不会应该会产生太多日志的,本身涉及的服务也不多,但几天就会产生1G以上的日志,的确有点疯狂。这篇文章就聊聊Nacos的日志系统。事件背景经过排查,其中输出最多的日志为{nacos.home}/logs/access_log.yyyy-mm-dd.log格式的日志。日志中包含了微服务系统调用Naco

2021-06-29 20:46:34 3679

原创 对象心思过于多变,工厂模式满足不了?用建造者模式啊!

前言我们知道,常见的设计模式通常分为三大类:创建型模式、行为型模式、结构型模式。今天我们来聊聊创建型模式中的建造者模式,关于它的使用场景、优缺点、组成部分、实战实例讲解以及在JDK中的运用。工厂模式我们已经比较熟悉,主要用来将实例化对象提取出来,放到一个类中统一维护和管理,从而达到解耦、提高项目的扩展性和维护性。建造者模式的功能与工厂模式很相似,但侧重点不同。下面我们就来详细了解一下创建者模式。建造者模式简介创建者模式(Builder Pattern),也翻译作构建者模式,也有人通俗的称作生成器模

2021-06-24 07:47:13 557 1

原创 软件架构分层,你的项目处于什么阶段?

前言只要从事软件开发的工作,系统架构是必备知识。有朋友说可能会说,我只是一个搬砖的,怎么会接触到架构知识呢?其实,除了架构的设计者(也就是架构师),作为普通的开发者也是在时刻践行着系统架构的理论。毕竟,再好的架构,都需要码农去实施。只不过当你没有系统了解软件架构时,可能感知不到而已。本篇文章就带大家系统的了解一下软件架构的分层,学习完毕,你就会明白,为什么系统要分层。同时,也能准确的看清楚目前自己系统中采用的是什么样的分层架构。不采用架构分层,行不行?首先我们来思考一个问题,如果一个系统不采用分层架

2021-06-17 07:47:14 3985 8

原创 一篇文章,只用看三遍,终生不忘网络分层

前言如果你对网络分层不太了解,当听到三层协议、五层协议时是不是一头雾水?不知道所谓的层是什么,所谓的协议是什么?甚至对网络通信都知之甚少,那么这篇文章一定能够让你快速学到,如果没有收获就别点赞。网络、通信、协议在深入学习之前,先了解一些基本的概念。网络是什么?网络是用物理链路将工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。这里的物理链路不仅仅指的是我们能够看得到的双绞线、光纤,也可能是无线电波。网络通信,狭义的讲,可以理解为计算机与计算机之间基于网络进行的数据交换。当然,这个

2021-06-12 10:41:09 4243 19

原创 监听器模式和观察者模式的关系,写点你不知道的

前言无论大家在实践中是否自己实现过观察者模式或监听器模式,但肯定间接使用过。比如Spring的事件机制,大多数人肯定都用过,只是没留意而已。今天这篇文章主要围绕观察者模式、监听器模式,以及它们之间的关系展开。不仅用实例介绍它们的使用,而且也会聊一聊Spring事件机制对观察者模式的实践。监听器模式和观察者模式怎么看起来是一样的?先聊聊设计模式为什么要使用监听模式,直接调用不好吗?这我们就要说说设计模式的好处了。设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、

2021-06-07 22:08:14 836 7

原创 Github代码fork之后,如何与原仓库进行同步?

前言我们在使用GitHub时,看到好的项目或想给某个项目做贡献,此时通常会将代码仓库fork到自己的账号下。如果在此期间,如果源仓库的代码发生了变动,就需要与源仓库代码进行同步。本篇文章就带大家实操一下,如何实现这一操作。配置项目的上游仓库首先需要大家将fork的仓库代码clone到本地,后面的所有操作都是基于本地代码库来进行操作的。比如,可以通过git clone先将fork的代码下载到本地:git clone git@github.com:secbr/nacos.git后续的一步步操作,都是

2021-06-03 07:14:37 1476 1

技术顾问协议模板,word版本

技术顾问协议模板,word版本

2022-08-01

从Drools规则引擎到风控反洗钱系统v0.3.2.pdf

从Drools规则引擎到风控反洗钱系统v0.3.2.pdf ,此版本文档在不断刚更新升级中。

2017-08-22

从Drools规则引擎到风控反洗钱系统V0.2.3

从Drools规则引擎到风控反洗钱系统V0.2.3

2017-08-03

springboot集成drools实现重新加载规则

springboot集成drools实现重新加载规则

2017-08-02

drools calendar 使用demo

drools calendar 使用demo

2017-07-28

drools集成springboot demo

drools集成springboot demo

2017-07-18

建模工具StarUML的使用手册

StarUML的使用手册

2017-05-19

node-v4.5.0-linux-x64.tar.xz

官网下载是在太慢,好不容易下载下来了,索性分享在这里。

2016-11-08

kie-drools 6.4.0 依赖jar包

kie-drools 6.4.0 依赖jar包

2016-09-09

pdf格式文件阅读器

pdf格式文件阅读器pdf格式文件阅读器

2011-06-22

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除