自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦灸舞的博客

路漫漫其修远兮

  • 博客(50)
  • 资源 (2)
  • 收藏
  • 关注

原创 分布式事务

分布式事务前言一、理论模型二阶段提交三阶段提交二、解决方案最终一致性方案前言以下类容来自书籍《Spring Cloud Alibaba 微服务原理与实战》在单点服务中数据库事务需要满足ACID特性,即:原子性、一致性、隔离性、持久性。而在微服务架构中,存在多个服务和相应的多个数据库,那么如何保证事务一致性就是分布式事务索要解决的问题。一、理论模型在X/Open组织定义的分布式事务标准中,保存三个角色:AP(Application 应用程序)、RM(Resource Manager 资源管

2021-08-08 21:35:56 348

原创 微服务限流与熔断-Sentinel

文章目录前言限流算法计数器算法滑动窗口算法令牌桶限流算法漏桶限流算法使用SpringCloud集成Sentinel使用Sentinel Dashboard资源清洗集成nacos实现动态流控规则前言以下类容来自书籍《Spring Cloud Alibaba 微服务原理与实战》限流算法计数器算法指定周期内累加访问次数,访问次数达到阈值出发限流,到达下一个周期时,反问次数清零。该算法的临界问题:当第一分钟的最后一秒和第二分钟的第一秒访问量分别有100,那么在2秒内,访问量达到了200,这与预期的限

2021-07-25 22:12:38 548 1

原创 Dubbo使用Nacos注册中心

目录前言一、基本使用服务端依赖配置文件实现类客户端依赖配置文件调用服务端二、原理浅析前言以下类容来自书籍《Spring Cloud Alibaba 微服务原理与实战》一、基本使用这里nacos的安装就不写了服务端依赖<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifact

2021-07-11 22:25:34 1702 1

原创 XXL-JOB任务调度

XXL-JOB前言一、简介二、如何使用1.引入库2.读入数据总结功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言前段时间工作中用到了XXL-JOB,所以想着写一篇博客记录一下,比较懒,拖了很久。。。一、简介二、如何使

2021-06-26 23:33:03 1953 3

原创 Spring Cloud Netflix-微服务网关(Zuul)

文章目录前言简介二、使用步骤1.引入库2.读入数据总结前言以下类容来自书籍《Spring Cloud与Docker微服务架构实战(第2版)》简介上图中,客户端二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')i

2021-05-31 00:10:15 381 4

原创 Spring Cloud Netflix-微服务容错(Hystrix)

文章目录前言简介雪崩效应断路器实现容错1.引入库2.读入数据总结前言以下类容来自书籍《Spring Cloud与Docker微服务架构实战(第2版)》简介容错,顾名思义是指当微服务出错时可以有一个兜底的方案,从而不会使整体服务无法工作雪崩效应上图服务D是服务C的提供者,服务C是服务A、B的提供者。当服务D故障,会导致C调用失败,紧接着会导致服务A、B调用失败。断路器实现容错1.引入库代码如下(示例):import numpy as npimport pandas as pdi

2021-05-09 19:05:16 152 2

原创 Spring Cloud Netflix-声明式REST调用(Feign)

文章目录前言简介基本使用基于Http Basic认证的接口前言以下类容来自书籍《Spring Cloud与Docker微服务架构实战(第2版)》简介Feign可以帮助我们更便捷、优雅的调用HTTP API,可实现多参数接口调用基本使用以下是在服务消费端操作添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-

2021-05-04 18:55:45 158

原创 Spring Cloud Netflix-客户端负载均衡(Ribbon)

目录前言简介架构服务消费者整合Ribbon引入依赖@LoadBalanced前言以下类容来自书籍《Spring Cloud与Docker微服务架构实战(第2版)》简介负载均衡并不陌生,就是将请求分摊到不同的服务提供者实例上。Ribbon就是Netflix发布的负载均衡器,Eureka为其提供服务提供者的地址后,Ribbon可基于某种负载均衡算法(随机、轮询、hash等)向服务提供者发送请求。架构多个服务提供者将服务地址注册在Eureka Server上,Ribbon在Eureka Ser

2021-04-29 23:44:51 757 3

原创 Spring Cloud Netflix-微服务注册与发现(Eureka)

微服务注册与发现(Eureka)目录微服务注册与发现(Eureka)前言Eureka简介架构2.读入数据总结前言以下类容来自书籍《Spring Cloud与Docker微服务架构实战(第2版)》Eureka简介Eureka是一个服务发现组件,基于REST的服务,包含了server和client两部分。在springcloud之下的一个子项目,用于注册微服务的注册与发现。架构上面是Eureka的架构图Eureka本身也是一个服务,也可以是一个集群。图中的Application Serv

2021-04-26 23:36:43 157 1

原创 线程池的使用及原理浅析

什么是线程池线程池是一个存放线程并利用存放的线程来执行业务线程的容器,降低了频繁创建和销毁线程的性能开销和时间开销。线程池的使用ExecutorService service=Executors.newFixedThreadPool(3);//1ExecutorService service=Executors.newCachedThreadPool();//2ExecutorService service=Executors.newSingleThreadExecutor();//3E

2021-03-26 01:06:45 90

原创 ConcurrentHashMap的扩容与数据迁移

扩容的条件while (s >= (long)(sc = sizeCtl) && (tab = table) != null && (n = tab.length) < MAXIMUM_CAPACITY) {//1 int rs = resizeStamp(n);//2 if (sc < 0) {//3 if (

2021-03-21 23:04:51 1404

原创 ConcurrentHashMap初始化和分片计数

ConcurrentHashMap在JDK1.7和 JDK1.8的变化JDK1.7时,ConcurrentHashMap是一个Segment数组,对Segment数组中的元素进行加锁,数据结构如下在JDK1.8中,取消了Segment,而直接使用Node数组,对Node数组的元素进行加锁。并增加红黑树(单向链表转红黑树)降低查询的时间复杂度。初始化数组final V putVal(K key, V value, boolean onlyIfAbsent) { if (k

2021-03-18 14:58:00 687

原创 zookeeper的watcher监听

watcher的使用

2021-03-13 22:47:06 130

原创 Zookeeper的leader选举和数据同步

在zookeeper的集群中,客户端会随机连接到一个节点。如果是读请求,就直接在该节点读取数据;如果是写请求,则这个请求会被转发到leader节点提交事务,然后leader节点会广播事务,若所有节点超过半数写入成功,则请求会被提交。...

2021-03-08 08:11:07 446 3

原创 zookeeper的分布式锁

源码地址:https://gitee.com/pengzhang_master/curator-zookeeper-demo.git基于 Curator 实现zookeeper的分布式锁

2021-03-04 01:28:28 204

原创 zookeeper的使用及Demo级RPC通信

Demo级RPC通信这是基于netty的Demo级RPC通信小项目,为后面zookeeper的使用做铺垫。netty的简介

2021-02-28 02:38:21 177

原创 Dubbo的服务调用流程

如果要实现服务的消费,那么应该需要实现下面的过程生成远程服务的代理 获得目标服务的url地址 实现远程网络通信 实现负载均衡 实现集群容错服务的消费@Reference()的初始化是在ReferenceConfig.get()->init()->createProxy(map)。createProxycreateProxy(Map<String, String> map)这个方法主要做了下面这些事情。判断是否为本地调用,如果是则使用injvm协议进行调用

2021-02-17 20:27:03 811 1

原创 Dubbo服务注册流程

目录getRegistryregistryFactorycreateRegistryZookeeperRegistryZookeeperRegistry.doRegister在之前的发布流程的RegistryProtocol.export中看到了服务注册流程。从export方法中抽离出来的部分代码。@Override public <T> Exporter<T> export(final Invoker<T> originInvo

2021-02-15 20:23:04 1744 1

原创 Dubbo服务发布原理

目录ServiceBean中服务暴露过程afterPropertiesSetonApplicationEventexportSpring的自定义扩展标签由xsd后缀的文件及spring.schemas(自定义标签)、spring.handlers及DubboNamespaceHandler(NamespaceHandler注册标签的命名空间,这个文件和类类似SPI机制)、以及DubboBeanDefinitionParser(标签解析类)组成。我们可以在resources/META-IN

2021-02-14 20:49:44 301

原创 Dubbo中的SPI机制

Dubbo SPI的DemoDubbo 的 SPI 扩展机制,有两个规则:1、需要在 resource 目录下配置 META-INF/dubbo 或者 META-INF/dubbo/internal 或者 META-INF/services,并基于 SPI 接口去创建一个文件2、文件名称和接口名称保持一致,文件内容和 SPI 有差异,内容是 KEY 对应 ValueDubbo中的接口org.apache.dubbo.rpc.Protocol,有多种通讯协议实现,如下图,可以看到org.apa

2021-02-12 13:33:21 971

原创 springboot自动装配中的SPI机制

springboot的自动装配SpringBootApplication 本质上是由 3 个注解组成,分别是1. @Configuration2. @EnableAutoConfiguration3. @ComponentScan@Configuration是 JavaConfig形式的基于 Spring IOC 容器的配置类使用的一种注解。@ComponentScan 这个注解是大家接触得最多的了,相当于 xml 配置文件中的<context:component-scan>。

2021-02-10 17:47:42 943

原创 JDK的SPI机制

SPI的全称是Service Provider Interface, 直译过来就是"服务提供接口",为了降低耦合,实现在模块装配的时候动态指定具体实现类的一种服务发现机制。JDK中的SPI参考博客https://www.cnblogs.com/oskyhg/p/10800051.html要使用Java SPI,需要遵循如下约定: 1、当服务提供者提供了接口的一种具体实现后,在jar包的META-INF/services目录下创建一个以“接口全限定名”为命名的文件,内容为实现类的全限定.

2021-02-10 14:56:02 1099 3

原创 Dubbo基础篇

项目搭建Dubbo Spring Cloud

2021-02-06 16:10:45 237

原创 MySQL事务与锁

数据库的事务事务的定义事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。它是数据库最小的工作单元,是不可以再分的;它可能包含了一个或者一系列的 DML 语句,包括 insert delete update。事务的四大特性原子性,Atomicity,也就是我们刚才说的不可再分,也就意味着我们对数据库的一系列的操作,要么都是成功,要么都是失败,不可能出现部分成功或者部分失败的情况。以转账的场景为例,一个账户的余额减少,对应一个账户的增加,这两个一定是同

2021-01-27 00:05:39 80

原创 MySQL索引原理与使用原则

索引是什么数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引类型在 InnoDB 里面,索引类型有三种,普通索引、唯一索引(主键索引是特殊的唯一索引)、全文索引。普通(Normal):也叫非唯一索引,是最普通的索引,没有任何的限制。 唯一(Unique):唯一索引要求键值不能重复。另外需要注意的是,主键索引是一种特殊的唯一索引,它还多了一个限制条件,要求键值不能为空。主键索引用 primay key创建。 全文(Fulltext):

2021-01-24 17:46:48 128

原创 redis原理篇

发布订阅模式订阅频道首先,我们有很多的频道(channel),我们也可以把这个频道理解成 queue。订阅者可以订阅一个或者多个频道。消息的发布者(生产者)可以给指定的频道发布消息。只要有消息到达了频道,所有订阅了这个频道的订阅者都会收到这条消息。需要注意的注意是,发出去的消息不会被持久化,因为它已经从队列里面移除了,所以消费者只能收到它开始订阅这个频道之后发布的消息。订阅者订阅频道:可以一次订阅多个,比如这个客户端订阅了 3 个频道:subscribe channel-1 channel-

2021-01-20 23:23:18 47

原创 redis基础篇

目录基本操作Redis基本数据类型String字符串操作命令应用场景Hash哈希操作命令应用场景List列表操作命令应用场景set集合操作命令应用场景Zset 有序集合操作命令应用场景基本操作默认有 16 个库(0-15),可以在配置文件中修改,默认使用第一个 db0。切换数据库:select 0清空当前数据库:flushdb清空所有数据库:flushall存值:set qingshan 2673取值:get .

2021-01-19 01:26:56 158

原创 kafka的架构及原理

架构Topic 生产者指定topic消息发送到kafka,消费者拉取指定的topic Partition topic之下的分区,用于将消息进行分流 Replica 副本,在集群环境中,用于消息的备份,实现数据的高可用 segment Partition之下的切分,kafka的数据是存放在*.log文件中,如果数据量越来越大,那么检索效率会越来越低,所以以段(segment)的方式来存储,默认大小1G Consumer Group 消费者组,消费同一个topic的消费...

2021-01-17 21:48:22 1073

原创 K8S篇-K8S的搭建

K8S核心组件和架构图K8S也叫Kubernetes,是一种容器编排工具K8S的最小操作单位是Pod,Pod中有一个或多个Container;Pod是ReplicaSet通过selector来进行管理;ReplicaSet之上是由Deployment进行管理。Label将Pod进行分门别类,具有相同label的Pod成为一个Service一个机器成为一个节点node,一个node上可以允许多个Pod,多个node组成一个集群。下面是一个K8S集群的图中各个组件的含义01

2020-12-16 22:36:41 429 2

原创 docker篇-docker的持久化、docker的网络和docker实战

目录docker数据持久化mysqltomcatdocker数据持久化mysql创建mysql数据库的container:docker run -d --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 mysql此时进入容器:docker exec -it mysql01 bash查看数据保存目录cd /var/lib/mysql/docker volume ls查看容器在宿主机上的挂载点此时会发现有很多挂载点,删除...

2020-11-30 18:50:44 317

原创 docker篇-win10安装centos虚拟机及docker的基本使用

win10安装centos虚拟机安装环境 win10 64位 VirtualBox-6.0.12-133076-Win [已上传到网盘的“上课课件/virtualbox”目录] vagrant_2.2.6_x86_64 [已上传到网盘的“上课课件/vagrant”目录] centos7 [已上传到网盘的“上课课件”目录] XShell6下载安装vagrant和VirtualBoxVagrant官网:https://www.vagrantup....

2020-11-21 20:01:25 1481

原创 JNI----helloworld篇

创建java类HelloJNI.java放在com目录下package com;public class HelloJNI { static { System.loadLibrary("hello"); } private native void sayHello(); public static void main(String[]...

2019-04-06 15:36:05 281

原创 JVM——java内存区域

原文地址:http://www.mamicode.com/info-detail-2140204.htmljava虚拟机内存管理线程独占区之程序计数器程序计数器是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依...

2019-03-24 20:35:56 94

原创 logstash无法启动解决方案

使用yum install安装完logstash后,执行systemctl status logstash.service无法启动报错如下:could not find java; set JAVA_HOME or ensure java is in PATH其实该服务器的java环境以及配合好了,但是启动时报找不到java环境变量。所以在启动文件中加入环境变量。如下图...

2019-02-13 18:11:34 3363

原创 服务器挂载磁盘并在服务器之间共享挂载的磁盘

参考文章:https://blog.csdn.net/csdn565973850/article/details/78615543在172.16.104.60上挂载磁盘(磁盘分区已做好)#查看机器所挂硬盘个数及分区情况fdisk -l#将磁盘挂载在/data目录上mount /dev/mapper/mpatha1 /data#查看目录挂载情况lsblk -f挂载...

2019-01-28 17:35:02 3485 1

原创 ELK快速入门实战

初识ELKELK优点          安装配置简单          集中 收集 统一管理           实时索引          日志可视化展示          集群扩展容易ELK的三大组件Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful 风格接口,多数据源,自动搜索...

2019-01-21 17:20:27 507

原创 CentOS7使用firewalld打开关闭防火墙与端口

1、firewalld的基本使用启动: systemctl start firewalld关闭: systemctl stop firewalld查看状态: systemctl status firewalld 开机禁用  : systemctl disable firewalld开机启用  : systemctl enable firewalld2.systemctl是C...

2019-01-20 00:02:35 101

原创 SpringBoot Centos7 jar包自启方法

第一种来源于:https://www.cnblogs.com/zhyg/p/5821684.htmlSpring boot 应用服务安装部署(maven工程)1.首先在maven工程的pom文件中引入以下标签并保存&lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt...

2018-12-05 21:28:28 1005

转载 spring boot引入外部jar包

https://blog.csdn.net/lwwzm0813/article/details/81901247

2018-10-17 18:56:53 1390

原创 JAVA消息中间件——spring jms

目录 spring jms理论singleconnectionfactory和CachingConnectionFactory的区别spring  jms演示队列模式主题模式spring jms理论 singleconnectionfactory和CachingConnectionFactory的区别1、SingleConnectionFactory:对...

2018-10-08 00:17:55 392

apache-maven-3.3.9-bin百度网盘地址.txt

apache-maven-3.3.9-bin百度网盘下载,有需要的可以下载。

2019-06-21

ELK百度网盘地址.txt

资源包括elasticsearch-6.6.0.rpm、kibana-6.6.0-x86_64.rpm、logstash-6.6.0.rpm、sentinl-v6.6.0.zip

2019-06-21

空空如也

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

TA关注的人

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