自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

何哥的博客

Bug工程师,面向浏览器编程

  • 博客(212)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java架构师学习小目标

前言:本Java服务端菜鸟目前需要加强的五大方向,Leetcode算法,多线程高并发,Mysql性能优化,微服务架构设计,JVM优化思路,解决方案,框架源码原理和开源大项目参与。一、LeetCode算法题LeetCode常用算法和大厂历年真题二、多线程并发编程和NIO线程安全和线程池同步异步死锁reentrantLock锁读写锁可重入锁Lock接口和个Synchronized区别volatile关键字的作用nio阻塞和非阻塞Netty异步高性能的通信框架...

2020-09-23 00:04:05 351

原创 MySQL慢查询优化

前言:在应用开发的早期,数据量少,程序猿开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时候这些有问题的SQL慢查询就是整个系统性能的瓶颈。一、SQL慢查询简介1.1、什么是SQL慢查询?这里指的是MySQL慢查询,具体指运行时间超过long_query_time值的SQL。我们常听常见的MySQL中有二进制日志binlog、中继日志relaylog、重做回滚日志redolog、undolog等。针对慢查询,还有一种慢查询日.

2021-10-11 23:51:46 207

原创 了解MySQL索引优化,一篇就够了

前言:相信大家都知道索引可以大大提高MySQL的检索速度,但是真正在平时工作中写SQL,真的会考虑到这条SQL如何能够用上索引提升执行效率?本篇博客详细的介绍了索引优化的20个原则,只要在工作中能够随时应用到,相信你写出的SQL能够命中索引,效率杠杠的。一、索引的分类1.1、普通索引、主键索引和唯一索引1.2、聚集索引和非聚集索引1.3、联合索引最左匹配原则1.4、索引覆盖和回表1.5、前缀索引1.6、索引合并1.7、索引下推二、索引优化规则查询的条...

2021-09-30 01:39:43 54

原创 日常工作中如何做MySQL优化?

前提:当有人问你如何对数据库进行优化时,很多人第一反应想到的就是SQL优化,如何创建索引,如何改写SQL,他们把数据库优化与SQL优化划上了等号。当然这不能算是完全错误的回答,只不过思考的角度稍微片面了些,太“程序员思维”化了,没有站在更高层次来思考回答。那今天我们就将视角拔高,站在架构的角度来聊聊这一问题,数据库优化可以从哪些维度入手?正如上图所示,数据库优化可以从架构优化,硬件优化,DB优化,SQL优化四个维度入手。此上而下,位置越靠前优化越明显,对数据库的性能提升越高。我们常说的SQL优化反而

2021-09-29 01:30:07 63 1

原创 SpringBoot快速集成Kafak

前言:Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Apache Kafka与传统消息系统相比,有以下不同: 它被设计为一个分布式系统,易于向外扩展; 它同时为发布和订阅提供高吞吐量; 它支持多订阅者,当失败时能自动平衡消费者; 它将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。 一、Kaf

2021-09-28 01:27:49 61

原创 Kafka百万级吞吐量的秘密

前言:我们都知道 Kafka 是基于磁盘进行存储的,但 Kafka 官方又称其具有高性能、高吞吐、低延时的特点,其吞吐量动辄几十上百万。小伙伴们是不是有点困惑了,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间。那 Kafka 又是怎么做到其吞吐量动辄几十上百万的呢?Kafka 高性能,是多方面协同的结果,包括宏观架构、分布式 partition 存储、ISR 数据同步、以及“无所不用其极”的高效利用磁盘和操作系统特性。一、磁盘顺序读写磁盘的顺序读写的情况下,磁盘的顺序读写速度和

2021-09-24 16:59:56 208

原创 Kafak快速入门攻略

一、Kafka简介1.1、Kafak概述1.2、Kafak诞生背景我们先看看 Kafka 官网给自己下的定义:Apache Kafka is an open-source distributed event streaming platform.翻译成中文就是:Apache Kafka 是一个开源的分布式流处理平台。Kafka 不是一个消息系统吗?为什么被称为分布式的流处理平台呢?这两者是一回事吗?一定有读者会有这样的疑问,要解释这个问题,需要先从 Kafka 的诞生背景

2021-09-24 00:07:03 105

原创 SpringBoot快速集成JPA

前言:一说JavaWeb,很多小伙伴都知道SSH,这个H代表的就是Hibernate框架,可是什么又是JPA呢?相信许多刚入门的小伙伴听说过但不是特别清楚,首先JPA的全称叫做Java Persistence API,JPA是一个基于O/R映射的标准规范,在这个规范中,JPA只定义标准规则,不提供实现,使用者则需要按照规范中定义的方式来使用。目前JPA的主要实现有Hibernate、EclipseLink、OpenJPA等,事实上,由于Hibernate在数据访问解决技术领域的霸主地位,JPA的标准基本是由

2021-09-23 01:50:08 71

原创 GitHub第三方登录快速接入

前言:现在很多网站和App都支持第三方登录功能,这里以GitHub第三方登录举例,因为注册应用申请ID比微信和QQ简单。目前市面上主流的第三方登录协议就是 OAuth2.0, 例如 QQ,微信,微博等等。 所以只要搞明白大概流程,那么接入其他供应商的第三方登录也是小菜一碟了。一、OAuth 2.0说到第三方登录,不得不提的一个知识点就是 oauth 2.0。OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用.

2021-09-22 17:15:19 52

原创 Java设计模式—观察者模式

前言:在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。在软件世界也是这样,例如,Excel 中的数据与折线图、饼状图、柱状图之间的关系;MVC 模式中的模型与视图的关系;事件模型中的事件源与事件处理者。所有这些,如果用观察者模式来实现就非常方便。一、观察者模式简介1.1、观察者模式概述观察者模式(Observer

2021-09-21 19:07:18 47

原创 WebSocket+RabbitMQ实现消息推送系统

一、用户获取新的消息通知有两种模式 上线登录后向系统主动索取 在线时系统向接收者主动推送新消息 设想下,用户的通知消息和新通知提醒数据都放在数据库中,数据库的读写操作频繁。如果消息量大,DB压力较大,可能出现数据瓶颈。这时候就可以引入消息队列RabbitMQ进行流量削峰。向指定用户发送WebSocket消息并处理对方不在线的情况给指定用户发送消息:如果接收者在线,则直接发送消息; 否则将消息存储到redis,等用户上线后主动拉取未读消息。...

2021-09-18 04:10:27 1741

原创 Netty快速入门攻略

一、Netty简介1.1、Netty概述Netty 是一个基于nio的客户、服务器端编程框架,Netty提供异步的,事件驱动的网络应用程序框架和工具,可以快速开发高可用的客户端和服务器。Netty是基于nio的,它封装了jdk的nio,让我们使用起来更加方便灵活。Netty是由jboss提供的一款开源框架,常用于搭建RPC中的TCP服务器、WebSocket服务器,甚至是类似Tomcat的web服务器,反正就是各种网络服务器,在处理高并发的项目中,功能丰富且性能良好,基于Java中NIO的二

2021-09-18 02:33:40 46

原创 WebSocket服务端消息推送

一、Web端实现即时消息推送五种方式股票曲线实时变化,在线IM聊天等等,Web系统里总是能见到消息推送的应用。消息推送用好了能增强用户体验,实现消息推送有N种解决方案。1.1、什么是消息推送消息推送(Push)指运营人员通过自己的产品或第三方工具对用户当前网页或移动设备进行的主动消息推送。用户可以在网页上或移动设备锁定屏幕和通知栏看到push消息通知。以此来实现用户的多层次需求,使得用户能够自己设定所需要的信息频道,得到即时消息,简单说就是一种定制信息的实现方式。我们平时浏览邮箱时突然弹出消息

2021-09-18 01:47:35 604

原创 RabbitMQ快速入门攻略

前言:前不久开发了一个消息通知系统采用了WebSocket+RabbitMQ技术,因为并发量不算大,且RabbitMQ是实现了比较完备的消息队列的功能不用过多开发。这里简单作个RabbitMQ消息队列总结,以后还是要学习学习Kafka消息中间件。一、RabbitMQ简介1.1、RabbitMQ概述RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应

2021-09-16 23:20:41 244 1

原创 Java并发编程:两个线程交替打印0-100的奇偶数

问题描述:两个线程交替打印输出数字,一个线程只打印偶数,另一个只打印奇数方案一:使用synchronized关键字 创建两个线程,一个线程处理偶数,一个线程处理奇数,两个线程之间通过synchronized进行同步,保证count++每次只有一个线程进行操作 为什么两个线程能交替执行,这里很巧的是count从0123...自增过程就是一个奇偶数交替的过程,实际上两个线程都是在不停的尝试(while循环)进入synchronized代码块,如果满足相对应的条件(偶数或是奇数)就打印输出。

2021-09-16 17:14:22 91

原创 Kafka、RocketMQ、Pulsar全方位对比

前言:随着大数据时代的到来,Apache 旗下的 Kafka 一度成为消息队列的代名词,提起消息队列大家自然而然就想到了 Kafka。然而消息队列本身是服务器端解决问题的一种通用方案,它的背后有着一些通用的设计思想和经典模型,这些是消息队列的精髓和灵魂。Kafka 和 RocketMQ 是目前最热门的两种消息中间件,互联网公司应用最为广泛,消息中间件已经成为Java后端工程师必备的一项技能。一、消息队列使用的五种场景简介MQ全称为Message Queue, 消息队列是一种应用程序对应用程序的通信

2021-09-16 02:37:32 124

原创 Java中nio、bio和aio的区别

前言:IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。现在使用NIO的场景越来越多,很多网上的技术框架或逐渐使用NIO技术,譬如Tomcat、Jetty,还有基于nio的网络编程框架Netty。一、什么是NIO?1.1、高并发量引起的问题一个使用传统阻塞I/O的系统,如果还是使用传统的一个请求对应一个线程这种模式,一旦有高并发的大量请求,就会有如下问题:1、线程不够用, 就算使用了线程池复用线程也无济于事;2、阻塞I/O模式下,会有大量的线程被阻塞,..

2021-09-14 01:19:48 95

原创 Java多线程14:CopyOnWriteArrayList 写时复制

前言:我们知道ArrayList是线程不安全的。要实现线程安全的List,我们可以使用Vector,或者使用Collections工具类将List包装成一个SynchronizedList。其实在Java并发包中还有一个CopyOnWriteArrayList可以实现线程安全的List。1、VectorVector这个类是一个非常古老的类了,在JDK1.0的时候便已经存在,其实现安全的手段非常简单所有的方法都加上synchronized关键字,这样保证这个实例的方法同一时刻只能有一个线程访问,所以在

2021-09-14 00:14:21 44

原创 Java多线程13:手写生产者-消费者模式

一、Object的wait、notify和notifyAll方法1.1、wait方法当一个线程调用一个共享变量的wait()方法时,该调用线程会被阻塞挂起(进入waiting状态),直到发生下面几件事情之一才能返回:其他线程调用了该共享对象的notify()或者notifyAll()方法; 其他线程调用了该线程的interrupt()方法,该线程抛出InterruptedException异常返回。另外需要注意的是,如果调用wait()方法的线程没有事先获取该对象的监视器锁,则调用w...

2021-09-12 02:50:15 60

原创 Java多线程12:线程池总结

前言:在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁,这就是"池化资源"技术产生的原因。线程池中的线程是可以重复使用的。一、Java线程池简介1.1、线程池定义线程池(thread pool)顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池

2021-09-11 01:49:13 69

原创 Java多线程11:并发编程的核心AQS

前言:如果你想深入研究Java并发编程的话,那么AQS一定是绕不开的一块知识点,Java并发包很多的同步工具类底层都是基于AQS来实现的,比如我们工作中经常用的Lock工具ReentrantLock、栅栏CountDownLatch、信号量Semaphore等。而且关于AQS的知识点也是面试中经常考察的内容,为了应付面试,深入学习AQS很有必要。...

2021-09-11 00:16:35 201 3

原创 Java多线程10:并发编程的基石CAS机制

前言:synchronized保证了线程安全,但是在某些情况下,却不是一个最优选择,关键在于性能问题。Java中提供了很多原子操作类来保证共享变量操作的原子性。这些原子操作的底层原理都是使用了CAS机制。一、CAS机制简介1.1、悲观锁和乐观锁更新数据方式CAS机制是一种数据更新的方式。在具体讲什么是CAS机制之前,我们先来聊下在多线程环境下,对共享变量进行数据更新的两种模式:悲观锁模式和乐观锁模式。悲观锁更新的方式认为:在更新数据的时候大概率会有其他线程去争夺共享资源,所以悲观锁的做...

2021-09-10 01:13:21 59

原创 Java多线程9:ThreadLocal原理和使用场景

前言:面试官经常会问到 ThreadLocal 是什么?他其实想考察候选人对ThreadLocal的定义、原理和应用场景的了解程度。一、ThreadLocal定义ThreadLocal,线程本地变量,顾名思义,它是每个线程私有的本地变量。通俗点讲,当你创建了一个ThreadLocal变量,每个线程在访问该变量时,都会拷贝一个副本至本地内存,所以多线程下操作ThreadLocal变量时,其实各自都是在操作自己拷贝的副本,互不影响,这样自然而然就避免了线程安全问题。ThreadLocal有点类似

2021-09-09 01:16:12 100

原创 Java多线程8:Volatile原理和使用场景

前言:volatile关键字是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。一个硬币具有两面,volatile不会造成上下文切换的开销,但是它也并能像synchronized那样保证所有场景下的线程安全,因此我们需要在合适的场景下使用volatile机制。大家都应该知道 volatile 的主要作用有两点:保证变量的内存可见性和禁止指令重排序。那么,什么是内存可见性,什么是指令重排序,以及它们涉及了那些机制原理呢?一、基本概念1.1、Java内存模型Java的

2021-09-09 00:42:32 57

原创 Java多线程7:ReentrantReadWriteLock读写锁

1、ReadWriteLock接口简介ReadWriteLock接口是一个单独的接口(未继承Lock接口),该接口提供了获取读锁和写锁的方法。所谓读写锁,是一对相关的锁——读锁和写锁,读锁用于只读操作,写锁用于写入操作。读锁可以由多个线程同时保持,而写锁是独占的,只能由一个线程获取。接口定义public interface ReadWriteLock { /** * Returns the lock used for reading. * * @r

2021-09-07 17:30:58 26

原创 Java多线程6:ReentrantLock同步锁

前言:Java除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁的功能。而且ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。这篇文章主要是从使用的角度来分析一下ReentrantLock。一、Lock接口简介1.1、Lock接口概述在JUC包下面有一个java.util.concurrent.locks包,这个包提供了一系列基础的锁工具,对传统的synchronizd、wait和notif

2021-09-07 17:21:12 407

原创 Java多线程5:synchronized和Lock区别

一、锁类型可重入锁:在执行对象中所有同步方法不用再次获得锁   可中断锁:在等待获取锁过程中可中断   公平锁: 按等待获取锁的线程的等待时间进行获取,等待时间长的具有优先获取锁权利   读写锁:对资源读取和写入的时候拆分为2部分处理,读的时候可以多线程一起读,写的时候必须同步地写线程安全这个概念可能是在多线程编程中提及最多的一个概念了。关于这个概念,我觉得好多人都有一个误区,包括我自己一开始也是这样的。我一开始认为线程安全讲的是某个共享变量线程安全,其实我们所说的线程安全是指某段代

2021-09-06 17:03:29 78 1

原创 Java多线程4:synchronized的使用场景和原理简介

一、synchronized使用1.1 synchronized介绍在多线程并发编程中synchronized一直是元老级角色,很多人都会称呼它为重量级锁。但是,随着Java SE 1.6对synchronized进行了各种优化之后,有些情况下它就并不那么重了。synchronized可以修饰普通方法,静态方法和代码块。当synchronize...

2021-09-06 16:03:15 54

原创 Java多线程3:锁分类总结

一、锁简介1、锁的概念锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,如读写锁)。在以前,Java程序是靠synchronized来实现锁功能的,而在JavaSE5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,他提供了与synchronized关键字类似的同步功能,只是在使用时需要显式的获取锁和释放锁,虽然它缺少了synchronized提供的隐式获取释放锁的便捷性,但是却拥有了锁获取和释放..

2021-09-05 01:09:00 52

原创 Nginx实战:反向代理、负载均衡和动静分离

一、反向代理实战 server { listen 80; server_name www.hs.com; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm;

2021-09-04 02:50:17 89

原创 Nginx快速入门攻略

前言:Nginx常常被我们用来做反向代理或者负载均衡Web服务器,在微服务架构里也在API网关之上用作网关集群的负载均衡。一、Nginx简介1.1、什么是NginxNginx 是一个高性能的 HTTP 和反向代理Web服务器,特点是占用内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好。Nginx是伊戈尔·赛索耶夫为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。Nginx 专为性能优化而.

2021-09-02 00:45:16 81

原创 数据库表设计3:微信、QQ第三方多账号登陆

前言:相比于本地注册,第三方登录一般来说比较方便快捷。因为显著降低了用户的注册或登录成本,从而减少由于本地注册的繁琐性而带来的隐形用户流失,最终提高注册转化率。1. 什么是第三方登录所谓的第三方登录,是说基于用户在第三方平台上已有的账号和密码来快速完成己方应用的登录或者注册的功能。而这里的第三方平台,一般是已经拥有大量用户的平台,国外的比如Facebook,Twitter等,国内的比如微博、微信、QQ等。使用第三方登录后,要求用户补充一些信息(手机号、邮箱等等),如果用户信息已存在,则直接绑

2021-09-01 12:44:54 79

原创 数据库表设计2:用户关注粉丝

前言:在社交类系统中,用户与用户的好友关系的设计必不可少,那么如何设计好友的数据库至关重要,本篇文章带大家学习一下微博相关的设计方案。一、用户好友关系分类基础分析第一步,有一张用户表,表内包含用户的基本信息,比如账号、姓名、性别等信息。这里用tb_user表示用户信息表。ID 用户名1 张三2 李四3 王五4 赵六第二步,需要将用户与用户直接建立好友关系。这里有两种情况:单向好友关系、互为好友关系。- 单向好友关系就是张三在李四的好友列表中,但李四...

2021-09-01 00:06:04 70

原创 数据库表设计1:用户权限管理

前言:权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。1、RBAC简介RBAC(Role-Based Access Control,基于角色的访问控制),通过角色关联用户,角色关联权限,间接的赋予用户的权限。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的

2021-08-30 23:39:06 42 1

原创 Spring Cloud Alibaba 快速入门(八):Sleuth+Zipkin实现微服务调用链路追踪

前言:微服务架构上通过业务来划分服务的,通过REST调用,对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂。为了能够清晰地记录服务的调用链路,方便将来问题的定位,Spring cloud Sleuth组件正是为了解决微服务跟踪而生,产生微服务调用链日志,然后可以结合APM应用性能管理工具进行存储和Web界面展示,比如Skywalking,美团CAT,Pinpoint(当然也.

2021-08-30 15:20:47 75

原创 Spring Cloud Alibaba 快速入门(七):Gateway微服务网关

前言:前面几篇文章我们已经学习了Spring Cloud Alibaba的Nacos注册和配置中心、Ribbon负载均衡、OpenFeign调用、Sentinel流量控制和熔断降级,以及Seata分布式事务。现在该轮到Spring Cloud Gateway 网关组件了。网关的作用是路由转发、权限校验、限流控制等作用。一、为什么使用API 网关我个人理解API 网关就是一个增强版业务nginx,它支持请求转发,负载均衡,统一埋点,限流降级、安全认证等等很多功能,Gateway网关收集所有请求根据路

2021-08-30 00:36:07 520 4

原创 Spring Cloud Alibaba 快速入门(六):Spring Cloud 服务调用迁移为Dubbo

前言:Spring Cloud 默认的服务调用依赖 OpenFeign 或 RestTemplate 使用 REST 进行调用。Spring Cloud Alibaba Dubbo 只需使用 @DubboTransported 注解即可将底层的 Rest 协议无缝切换成 Dubbo RPC 协议,进行 RPC 调用。这一举措让 Spring Cloud 的客户端调用多了一个新的 RPC 选择,实现服务间多种协议的通讯。//RestTemplate方式@Bean@LoadBalanced@Dub.

2021-08-26 17:25:52 84

原创 Spring Cloud Alibaba 快速入门(五):Seata分布式事务简介

1、Seata是什么Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。2、AT 模式前提 基于支持本地 ACID 事务的关系型数据库。 Java 应用,通过 JDBC 访问数据库。 整体机制两阶段提交协议的演变: 一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。 二阶段:

2021-08-25 00:13:02 90

原创 Spring Cloud Alibaba 快速入门(四):Sentinel接口限流和熔断降级

前言:随着微服务的流行,服务和服务之间的稳定性变得越来越重要。阿里开源的Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的“雪崩”效应,为微服务系统提供了稳定性的解决方案。随着Hytrxi进入了维护期,不再提供新功能,Sentinel是一个不错的替代方案。一、服务降级和服务熔断的区别一个分布式应用会依赖多个服务,每个服务可能会存在多个实例,服务依赖的中间件也可能是分布式的,当应用规模足.

2021-08-24 21:52:53 242 1

原创 Spring Cloud Alibaba 快速入门(三):Nacos配置中心集成

一、为什么要使用Nacos配置中心?我们在采用集群部署时 , 如果配置文件需要改变 , 那么传统方法中我们需要将每一台服务器中 的配置文件进行修改 , 可维护性极差 , 修改强度太大。因此我们需要每一台服务器都去读取某一个配置文件 , 需要修改时也可以只是修改一个配置文件便可做到所有服务器同时修改。首先了解下SpringBoot中配置文件的执行顺序:下面就来学习使用Nacos的配置中心来实现配置文件的共用二、Nacos配置中心使用前面已经安装好Nacos了,并且已经注册了四个

2021-08-24 16:14:24 58

Redis可视化工具:RedisDesktopManager1.2.5版本

我们经常要查看Redis中存储的键值对数据,但是每次都执行命令特别麻烦。今天就推荐一个超好用的Redis可视化工具,填好地址和ip即可正常访问,可以很方便地查看当前Redis缓存中的键值对,可以大大提高开发效率。

2019-10-22

空空如也

空空如也

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

TA关注的人 TA的粉丝

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