-
RabbitMQ
1.MQ引言1.1 什么是MQMQ(Message Quene) : 翻译为 消息队列,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。1.2 MQ有哪些当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,...…
-
Redis
NoSQL数据库简介技术发展技术分类解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN2、解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis3、解决性能的问题:NoSQL、Java线程、Hadoop、Nginx、MQ、ElasticSearchWeb1.0时代Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。Web2.0时代随着Web2.0的时代的到来,...…
-
ElasticSearch
全文检索概念相当于是有两个步骤:1、索:也就是建立索引,将一段文本进行相关的切分,形成许多词,同时记录出现的位置及次数文本——》切分——-》词 文章出现过 出现多少次2、检索:也就是查询。当我们输入一个关键词后,会去索引中进行搜索,返回符合条件的结果,并通过记录的出现的次数来进行相关度的排序关键词——》索引中—–》符合条件的文章 相关度排序特点全文检索具有以下特点:1、只处理文本,不处理语义比如,搜索“你吃饭了吗?”只会进行文本的搜索,并不会返回“我吃了”。现在像百度,Go...…
-
SpringCloud笔记(十七) SpringCloud Alibaba Seata处理分布式事务
分布式事务问题分布式前单机单库没这个问题分布式之后总结一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题Seata简介是什么Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务官网地址:http://seata.io/zh-cn/能干嘛一个典型的分布式事务过程:1(ID)+3(组件)分布式事务处理过程的-ID+三组件模型Transaction ID XID全局唯一的事务ID3组件概念:Transaction Coo...…
-
SpringCloud笔记(十六) SpringCloud Alibaba Sentinel实现熔断与限流
Sentinel官网:https://github.com/alibaba/Sentinel中文:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D是什么一句话解释,就是之前我们讲解过的Hystrix去哪下https://github.com/alibaba/Sentinel/releases此项目我们使用1.7.0版本能干嘛怎么玩https://spring-cloud-alibaba-group.github.io/g...…
-
SpringCloud笔记(十五) SpringCloud Alibaba Nacos服务注册和配置中心
Nacos简介为什么叫Nacos前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service是什么一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心Nacos:Dynamic Naming and Configuration ServiceNacos就是注册中心+配置中心的组合,Nacos = Eureka+Config+Bus能干嘛替代Eureka做服务注册中心替代Config做服务配置中心去哪下https://github.com/alib...…
-
SpringCloud笔记(十四) SpringCloud Alibaba入门简介
为什么会出现SpringCloud alibabaSpring Cloud Netflix项目进入维护模式。https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now说明:什么是维护模式进入维护模式意味着什么呢?SpringCloud alibaba带来了什么?是什么官网:https://github.com/alibaba/spring-cloud-alibaba/blob/master/READM...…
-
SpringCloud笔记(十三) SpringCloud Sleuth分布式请求链路追踪
概述为什么会出现这个技术?需要解决哪些问题?是什么github地址:https://github.com/spring-cloud/spring-cloud-sleuthSpring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin搭建链路监控步骤zipkin下载SpringCloud从F版起已不需要自己构建Zipkin server了,只需要调用jar包即可。下载地址:https://dl.bintray.com/ope...…
-
SpringCloud笔记(十二) SpringCloud Stream消息驱动
消息驱动概述是什么屏蔽底层消息中间件的差异,降低切换版本,统一消息的编程模型官网官方介绍:https://spring.io/projects/spring-cloud-stream#overviewAPI:https://cloud.spring.io/spring-cloud-static/spring-cloud-stream/3.0.1.RELEASE/reference/html/Spring Cloud Stream中文指导手册:https://m.wang1314.com/d...…
-
SpringCloud笔记(十一) SpringCloud Bus 消息总线
概述是什么Bus支持两种消息代理:RabbitMQ和Kafka能干嘛为何被称为总线RabbitMQ环境配置安装ErlangRabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang。下载地址:http://erlang.org/download/otp_win64_21.3.exe安装步骤安装RabbitMQ下载地址:https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.14/rab...…
-
SpringCloud笔记(十) SpringCloud config分布式配置中心
概述分布式系统面临的配置问题是什么能干嘛 集中管理配置文件 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息 当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置 将配置信息以REST接口的形式暴露。post、curl访问刷新均可….与Github整合配置Config默认使用Git来存储配置文件(也有其它方式,比如支持svn和本地文件,但最推荐的还是Git,而且使用的是http/https访问的形式)官网http...…
-
SpringCloud笔记(九) Gateway网关
概述简介官网上一代zuul 1.X:https://github.com/Netflix/zuul/wiki当前gateway:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/是什么概述总结Spring Cloud Gateway 使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架源码架构:能干嘛 反向代理...…
-
SpringCloud笔记(八) Hystrix断路器
概述分布式系统面临的问题是什么能干嘛 服务降级 服务熔断 接近实时的监控官网资料https://github.com/Netflix/Hystrix/wiki/How-To-UseHystrix官宣,停更进维https://github.com/Netflix/HystrixHystrix重要概念服务降级服务器忙,请稍候再试,不让客户端等待并立刻返回一个友好提示,fallback哪些情况会触发降级 程序运行异常 超时 服务熔断触发服务降级 线程池/信号量打满也会导致服务降级服...…
-
SpringCloud笔记(七) OpenFeign服务接口调用
概述OpenFeign是什么Feign是一个声明式的web服务客户端,让编写web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可GitHub的源码地址:https://github.com/spring-cloud/spring-cloud-openfeign能干嘛Feign和OpenFeign两者区别OpenFeign使用步骤接口+注解:微服务调用接口+@FeignClientFeign在消费端使用建module新建cloud-consumer-feign-order80...…
-
SpringCloud笔记(六) Ribbon负载均衡服务调用
概述什么是Ribbon官网资料官网:https://github.com/Netflix/ribbon/wiki/Getting-StartedRibbon目前也进入维护模式未来替换方案:Loadbalancer能干嘛LB(负载均衡)集中式LB进程内LB一句话:Ribbon=负载均衡+RestTemplate调用Ribbon负载均衡演示架构说明总结:Ribbon其实就是一个软负载均衡的客户端组件,他可以和其他所需请求的客户端结合使用,和eureka结合只是其中的一个实例。POM前面我们讲解...…
-
SpringCloud笔记(五) Consul服务注册与发现
Consul简介官网:https://www.consul.io/intro/index.html是什么能干嘛服务发现提供HTTP和DNS两种发现方式健康监测支持多种协议,HTTP、TCP、Docker、Shell脚本定制化KV存储key , Value的存储方式多数据中心Consul支持多数据中心可视化Web界面去哪下https://www.consul.io/downloads.html怎么玩可以参照官网,也可以参考以下中文网站:https://www.springcloud.cc/s...…
-
SpringCloud笔记(四) Zookeeper服务注册与发现
Eureka停止更新https://github.com/Netflix/eureka/wikiSpringCloud整合Zookeeper代替Eureka注册中心Zookeeperzookeeper是一个分布式协调工具,可以实现注册中心功能。zookeeper服务器取代Eureka服务器,作为服务注册中心。测试以下示例时,需要保证安装了Zookeeper,并启动zookeeper服务器服务提供者建module新建cloud-provider-payment8004模块改pom<?x...…
-
SpringCloud笔记(三) Eureka服务注册与发现
Eureka基础知识什么是服务治理Spring Cloud封装了Netflix 公司开发的Eureka模块来实现服务治理在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。什么是服务注册与发现Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到Eure...…
-
SpringCloud笔记(二) 微服务架构编码构建
微服务架构编码构建现在的代码编写原则:约定 > 配置 > 编码目前先构建一个 订单支付模块的项目,然后慢慢融合进上一讲中所介绍的技术微服务cloud整体聚合父工程Project新建项目这里也可以选择使用Spring Initializr方式创建。此处以maven为例填写项目信息设置Maven版本设置工程名称项目创建好后,可以将src文件夹直接删除,因为我们只是将项目作为一个聚合父工程,并不需要编码工作设置字符编码注解生效激活java编译版本选择File Type过滤这步可以选做...…
-
SpringCloud笔记(一) SpringCloud概述
微服务什么是微服务业界大牛马丁.福勒(Martin Fowler) 这样描述微服务:论文网址: https://martinfowler.com/articles/microservices.html就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style)但通常而言, 微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成...…