自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 11 搜索之url搜索和搜索类型

文章目录1 准备数据2 url搜索1 准备数据构建个文章的索引PUT article{ "mappings": { "properties": { "id":{ "type": "long" }, "title":{ "type": "text", "analyzer": "ik_max_word" }, "category":{ "type": "keywor

2020-12-31 16:15:20 3131

原创 15 nacos之配置中心

文章目录1 简单介绍2 Demo案例2 自动刷新3 namespace,group1 简单介绍nacos作为配置中心,给我们提供了三层结果namespace: 可选配置,默认publicgroup: 可选配置,默认DEFAULT_GROUPdataId: 必须根据这三项进行匹配,加载配置在 Nacos Spring Cloud 中,dataId 的完整格式如下:${prefix}-${spring.profiles.active}.${file-extension}pref

2020-12-29 21:35:51 71

原创 14 nacos之服务注册发现

文章目录1 服务注册2 服务发现nacos 服务发现的依赖<!--naocs服务发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>1 服务注册新建一个模块 clo

2020-12-28 22:36:51 121

原创 13 Spring Cloud Alibaba简介和Nacos安装

文章目录1 Spring Cloud Alibaba1.1主要功能:1.2 主要组件1.3 依赖和版本说明2 Nacos2.1 Nacos 介绍1 Spring Cloud AlibabaSpring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring

2020-12-28 21:45:23 121 1

原创 05 Consumer详解

文章目录1 Push和Pull模式1 Push和Pull模式RocketMq中,消费者有两种模式push模式在客户端和服务端建立拦截之后,当服务端有消息时,将消息推送到客户端pull模式客户端不断的轮询请求服务端,来获取新的消息但是在具体实现时,这两个模式都是采用消费者主动拉取的方式,即consumer从broker拉取消息区别push方式,consumer把轮询过程封装了,并注册MessageListener监听器,取到消息后,唤醒MessageListener的c

2020-12-28 20:03:56 291

原创 04 Producer详解

文章目录1 环境准备2 顺序消息4.2.1 顺序消息生产1 环境准备新建一个moudel进行演示: 03-rocket-mq-producer导入依赖2 顺序消息消息有序指的是可以按照消息的发送顺序来消费(FIFO)。RocketMQ可以严格的保证消息有序,可以分为分区有序或者全局有序。顺序消费的原理解析,在默认的情况下消息发送会采取Round Robin轮询方式把消息发送到不同的queue(分区队列);而消费消息的时候从多个queue上拉取消息,这种情况发送和消费是不能保证顺序。但

2020-12-28 16:40:18 473

原创 04 rabbitmq整合springboot

文章目录1 环境准备2 编码2.1 入门:helloworld模式2.2 API介绍12.3 work queue 模式2.4 广播模式2.5 route模式2.6 topic模式1 环境准备springboot已经提供了starter <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amq

2020-12-27 20:00:44 95 1

原创 03 RabbitMQ的路由模式和topic模式

文章目录1 Rabbit中完整的消息传递模型1.1 交换机的类型2 fanout(广播)2.1 介绍2.2 API介绍2.3 代码示例2.3.1 生产者2.3.4 消费者3 路由3.1 介绍3.2 代码演示3.2.1 生产者3.2.2 消费者4 Topic类型的交换机4.1 介绍4.2 代码案例生产者消费者1 Rabbit中完整的消息传递模型RabbitMQ消息传递模型中的核心思想是生产者从不将任何消息直接发送到队列。生产者经常甚至根本不知道是否将消息传递到任何队列。生产者只能将消息发送到交换机。交

2020-12-27 18:11:28 1952 1

原创 02 RabbitMQ的简单模式和Work Queue

文章目录1 环境准备1.1 虚拟主机(Virtual Hosts)和账户创建1.2 父工程搭建2.1 简单模式2.1.1 介绍2.1.2 消息生产2.1.3 消息消费2.1.4 API的几点说明2.2 Work Queue模型2.2.1 介绍2.2.2 代码演示2.2.3 轮询的弊端2.2.4 消息自动确认机制自动确认机制介绍自动确认机制关闭禁止消息队列一次性把数据投递给消费者手动确认消息修改代码1 环境准备rabbitMQ的依赖<!--rabbitmq客户端--><depend

2020-12-26 21:30:17 116

原创 01 RabbitMQ介绍和安装

文章目录1 RabbitMQ介绍1 AMQP 和 JMS1.2 RabbitMQ介绍RabbitMQ 中的相关概念RabbitMQ 的基础架构2 安装2.1 Mac 安装2.2 windows 安装 (todo)2.3 Linux 安装 (todo)1 RabbitMQ介绍1 AMQP 和 JMSMQ是消息通信的模型;实现MQ的大致有两种主流方式:AMQP、JMS。AMQP,即 Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协

2020-12-26 09:57:57 144 2

原创 03 基本样例

文章目录1 环境准备2 发送消息2.1 发送同步消息2.2 发送异步消息2.3 发送单向消息3 消费消息3.1 广播消费模式3.2 集群模式1 环境准备新建一个model : 02-rocket-mq-example导入依赖: 加入了日志依赖<dependencies> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>

2020-12-25 13:05:49 89

原创 02 RocketMq入门

文章目录1 项目搭建2 入门案例2.1 搭建入门案例2.2 入门案例2.2.1 发送消息2.2.2 消费消息2.3 总结发送消息基本步骤消费消息基本步骤1 项目搭建搭建一个父工程,指定依赖的版本<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i

2020-12-24 23:03:34 72

原创 01 RocketMq安装和介绍

文章目录1 MQ介绍1.1 为什么要用MQMQ的优点和缺点1.3 各种MQ产品的比较2 安装3 RocketMq基本概念4 RocketMq基本概念1 MQ介绍1.1 为什么要用MQ消息队列是一种“先进先出”的数据结构。其应用场景主要包含以下3个方面应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。使用消息队列解耦合,系统的耦合性就会

2020-12-24 17:43:10 124 1

原创 17 Spring AOP之代理模式

文章目录1 代理模式介绍1.1 是什么1.2 为什么要使用代理模式呢?1.3 代理模式的特点1.4 代理模式的结构和分类分类模式的结构1.5 实现2 案例演示3 静态代理模式的问题4 动态代理4.1 JDK动态代理4.1.1 API介绍4.1.2 实现5 代理模式的应用场景1 代理模式介绍1.1 是什么在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。代理模式:给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。代理

2020-12-24 14:40:52 129

原创 12 消息驱动SpringCloudStream

文章目录1 概述1.1 什么是消息驱动1 概述1.1 什么是消息驱动屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型(类似hibernate对应各种数据库)官方定义springCloudStream是一个构建消息驱动微服务的框架,应用程序通过inputs或者outputs来与springCloudStream中binder对象交互。通过我们配置来binding(绑定),而SpringcloudStream的binder对象负责与消息中间件交互,所以我们只需要搞清楚如何与spring Cl

2020-12-23 22:47:16 63

原创 11 消息总线SpringCloudBus

文章目录1 简介1.1 什么是总线1.2 基本原理1 简介bus支持两种消息代理:rabbitmq和kafkaspring cloud bus配合springcloud config使用可以实现配置的动态刷新springcloud bus是用来将分布式系统的节点与轻量级消息系统连接起来的框架,它整合了java的事件处理机制和消息中间件的功能,springcloudbus目前支持rabbitmq和kafkaspringcloud bus能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于

2020-12-23 22:12:48 74

原创 10 分布式配置中:Config

文章目录1 概述2 配置中心服务端搭建2.1 准备git仓库2.2 配置中心服务端搭建3 配置中心客户端搭建3.1 bootstrap.yml3.2 配置中心客户端搭建4 客户端之动态刷新配置1 概述springcloud config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环节提供了一个中心化的外部配置。集中管理配置文件不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod允许期间动态调整配置,不再需要在每个服务部署的机器上

2020-12-23 21:46:45 165

原创 09 gateway

文章目录1 简介1.1 特点1.2 三大核心概念1.3 gateway工作流程2 入门配置2.1 网关服务搭建2.2 网关路由配置3 Predicate(断言)4 Filter4.1 如何配置GateWayFilter4.2 自定义全局过滤器GlobalFilter1 简介cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用zuul网关,但是在2.新版本中,zuul一直跳票,springcloud最后自己研发了一个网关代替zuul那就是springcloud gateway,一句话,ga

2020-12-22 21:01:51 127

原创 08 Hystrix服务降级和容错

文章目录1 概述1.1 分布式面临的问题1.2 Hystric是什么1.3 Hystric能干啥1.4 Hystrix重要概念2 服务降级2.1 服务提供者侧服务降级项目搭建服务降级2.2 消费者侧服务降级服务提供者注册到Eureka注册中心搭建服务消费者服务消费者侧服务降级2.3 Feign和Hystrix结合2.4 全局服务降级处理1 概述1.1 分布式面临的问题复杂的分布式中,应用程序有数十个依赖关系,每个依赖关系在某些时候不可避免的会出现失败。服务血崩多个微服务调用的时候,假设A服务

2020-12-21 19:44:06 134 1

原创 07OpenFeign

文章目录1 简介1 简介在前面的学习中,我们使用RestTemplate调用外部接口,如果就学到这里,你可能以后需要编写类似的大量重复代码,格式基本相同,无非参数不一样。有没有更优雅的方式,来对这些代码再次优化呢?这就是我们接下来要学的Feign的功能了。项目主页:githubFeign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。Feign是一个声明式WebService客户端,使用Fe

2020-12-20 09:47:02 112

原创 02 Feign基本注解介绍

文章目录1 @RequestLine1 Feign日志打印2 构建一个API模块大家接触Feign都是通过Spring Cloud,平时使用的均是Spring MVC的注解。但是Feign是完全不依赖SpringMvc的注解的,是可以直接使用的哟。1 @RequestLine// 只能用在方法上@java.lang.annotation.Target(METHOD) @Retention(RUNTIME)public @interface RequestLine { //定义请求方式,请求

2020-12-17 21:04:22 4572

原创 01 Feign概述和入门

文章目录1 引言2 Feign介绍3 入门案例1 引言HTTP客户端,大家都不会感到陌生。Java自己源生的就有java.net包下的HttpURLConnection(虽然不太好用),常见的开源第三方的http客户端:Apache HttpClientOkHttpSpring的RestTemplate(说明:它基于以上三种Client做的包装)FeignJDK源生HttpClient偏于底层且不好用,在Java9之前你几乎可以忽略它;Apache HttpClient凭借着各种优秀

2020-12-16 10:43:55 180

原创 06 负载均衡之Ribbon

文章目录1 Ribbon概述1.1 是什么1.2 能干啥:负载均衡1.3 其他说明新版已经集成了RibbonRestTemplate使用2 Ribbon负载均衡策略2.1 Ribbon负载均衡策略有哪些2.2 如何替换1 Ribbon概述1.1 是什么Spring Cloud Ribbon 是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。简单说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配

2020-12-15 16:49:33 116

原创 05 Consul,zookeeper,Eureka区别

文章目录1 区别2 CAP(分布式系统的三个指标)1.1 Partition tolerance (分区容错性)2.2 Consistency(一致性)2.3. Availability (可用性)1.4 Consistency 和 Availability 的矛盾1.5 关系数据库的缺失1 区别组件名开发语言CAP健康检查对外暴露接口spring cloud集成EurekajavaAP可配支持http已集成consulgoCP支持http / DNS

2020-12-15 11:02:25 136

原创 04 Consul服务注册与发现

文章目录1 Consul简介1.1 安装2 服务提供者注册到consul3 服务消费者注册到consul1 Consul简介Consul是一套开源的分布式服务发现与配置管理系统,由HashiCorp公司用go语言开发的。提供了微服务系统中的服务治理,配置中心,控制总线等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网络,总之Consul提供了一种完整的服务网络解决方法。具有很多优点,包括:基于raft协议,比较简洁;支持健康检查;同时支持http和dns协议,支持跨数

2020-12-15 10:36:43 188

原创 RestTemplate介绍

文章目录1 RestTemplate1.1 简述RestTemplate1.2 入门案例1.2.1 httpclient-provider中提供一个Rest接口1.2.2 httpclient-consumer中消费该接口1.2.3 RestTemplate构造方法1.3 RestTemplate API使用1.4 Get请求1.4.1 请求没有参数1.4.2 带请求参数的参数是在请求路径上的参数在请求路径后面1.5 POST请求1.5.1 postForObjecturl路径带参数参数只放在body里面

2020-12-14 23:09:56 496

原创 03 zookeeper注册中心

文章目录1 服务提供者注册到zk2 服务消费者注册到zk1 服务提供者注册到zk新建一个模块cloud-provider-payment-zk引入依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</a

2020-12-14 18:47:30 136

原创 09 结构型模式之装饰者模式(decorator)

文章目录1 概述1.1 引入1.2 结构2 实现3 总结3.1 使用场景3.2 静态代理和装饰者的区别1 概述1.1 引入我们先来看一个快餐店的例子。快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。如果像上面的类图一样,通过继承的方式实现,最大的弊端就是,会引起类爆炸,比如我们新增炒河粉,就要定义一个炒河粉类继承FastFood,在定义一个鸡蛋炒河粉,培根炒粉;同样如果新增一种配料芝士,就需要在炒

2020-12-13 10:45:53 131

原创 08 结构型模式之适配器模式模式(adaptor)

文章目录1 概述2 类适配器模式3 对象适配器模式1 概述定义将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类适配器模式和对象适配器模式,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。角色适配器模式(Adapter)包含以下主要角色:目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件

2020-12-12 20:52:38 451

原创 07 结构型模式之代理模式(Proxy)

文章目录1 结构型模式2 代理模式介绍2.1 概述2.1 角色3 静态代理4 动态代理4.1 JDK动态代理4.1.1 API介绍4.1.2 演示4.1.3 jdk实现代理分析4.2 CGLIB动态代理5 三种代理的对比5.1 优缺点5.2 使用场景1 结构型模式结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构

2020-12-11 20:16:43 170

原创 06 创建型模式之建造者模式(Builder Pattern)

文章目录1 介绍1.1 概述1.2 结构2 案例实现3 优缺点和使用场景4 模式扩展5 创建者模式对比5.1 工厂方法模式VS建造者模式5.2 抽象工厂模式VS建造者模式1 介绍1.1 概述将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,

2020-12-10 22:00:41 380

原创 05 创建型模式之原型模式(Prototype Pattern)

文章目录1 介绍2 浅克隆(Bitwise Copy)和深克隆(Memberwise Copy)2.1 浅克隆(Bitwise Copy)2.2 深克隆(Bitwise Copy)1 介绍用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。原型模式包含如下角色:抽象原型类:规定了具体原型对象必须实现的的 clone() 方法。具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。访问类:使用具体原型类中的 clone() 方法来复制新的对象。

2020-12-10 20:30:45 86

原创 04 创建型模式之工厂模式(factory Pattern)

文章目录1 案例引入2 简单工厂模式2.1 简单工厂模式角色2.2 改进入门案例3 工厂方法模式3.1 角色3.2 实现3.3 优缺点4 抽象工厂4.1 概念和角色4.2 实现3.3. 优缺点和使用场景1 案例引入需求:设计一个咖啡店点餐系统。设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。定义一个咖啡类Coffee,及其子类AmericanCof

2020-12-10 16:02:24 257

原创 03 创建型模式之单例模式(Singleton Pattern)

文章目录1 介绍1.1 单例模式结构1.2 单例模式的实现1.3 单例模式实现基本要求2 饿汉式2.1 静态变量方式2.2 静态代码块方式3 懒汉式3.1 方式1--线程不安全3.2 方式2--线程安全3.2 方式3--双重检查锁3.4 方式4(静态内部类方式)4 枚举方式实现5 破坏单例模式5.1 序列化方式破坏单例5.1.1 演示5.1.2 解决5.2 反射方式破坏单例5.2.2 解决1 介绍单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创

2020-12-09 17:04:40 164 1

原创 02 软件设计原则

文章目录1 开闭原则(Open-Closed Principle)2 里氏代换原则(Liskov Substitution Principle LSP)3.依赖倒转原则(Dependence Inversion Principle)3.1 依赖倒转原则介绍3.2 案例演示3.2.1 不符合依赖倒转原则3.2.2 符合依赖倒转原则4 接口隔离原则(Interface Segregation Principle)4.1 接口隔离原则介绍4.2 案例演示4.2.1 不符合接口隔离原则4.2.2 符合接口隔离原

2020-12-09 10:24:19 117

原创 01 设计模式介绍

文章目录1 设计模式分类2 UML2.1 类图2.2 类图的表示方法2.2.1 类的表示方法2.2.2 类之间关系的表示方式关联关系聚合关系聚合关系依赖关系继承关系实现关系1 设计模式分类创建型模式用于描述如何创建对象,主要特点就是将对象的创建和使用分离,单例,工厂方法,抽象工厂,建造者等5个模式结构型模式用于描述如何将类或者对象按照某种布局组成更大的结构,代理,桥接,装饰,外观,享元,组合等模式行为型模式用于描述类或者对象之间怎样协作共同完成单个对象无法完成的任务,以及怎样分配职责。模板方

2020-12-08 10:16:19 94

空空如也

空空如也

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

TA关注的人

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