
微服务
文章平均质量分 92
Spring Cloud / Dubbo
Fire Code
Java基础知识点总结:https://www.cnblogs.com/firecode7/
展开
-
Redis持久化
RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。Redis 还可以同时使用 AOF 持久化和 RDB 持久化。 在这种情况下, 当原创 2020-08-19 15:26:19 · 95 阅读 · 0 评论 -
SSO单点登录
一、SSO 简介 单点登录(Single Sign On,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。单点登录解释:一次登录,让其他项目共享登录状态本质:使用特定技术在分布式项目中模拟 HttpSes原创 2020-08-06 22:15:01 · 621 阅读 · 0 评论 -
集群高并发情况下如何保证分布式唯一全局id生成
一、问题1.1 为什么需要分布式全局唯一ID以及分布式ID的业务需求 ? 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店;猫眼电影等产品的系统中数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一 条 数据或消息;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。1.2 ID生成规则部分硬性要求全局唯一:不能出现重复的ID号,既然是唯一标识,这是最基本的要求趋势递增:在MySQL的inn原创 2020-08-03 21:03:45 · 1569 阅读 · 0 评论 -
nginx和netty区别
https://www.php.cn/nginx/422065.html原创 2020-08-02 23:31:52 · 1772 阅读 · 1 评论 -
Spring Cloud Alibaba Seata处理分布式事务
一、分布式事务问题1.1 分布式之后单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证, 但是全局的数据一致性问题没法保证。1.2 分布式前单机单库没这个问题,从1:1 -> 1:N -> N: N,到微服务。总结:**微服务中一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题。**即对一次业务操作部分微服务数据源更新成功,部分微原创 2020-08-02 23:13:03 · 528 阅读 · 0 评论 -
关于Spring Cloud各种组件的停更/升级/替换
以前:现在:原创 2020-07-30 19:54:22 · 358 阅读 · 1 评论 -
Spring Cloud Alibaba Sentinel实现熔断与限流
一、简介官网 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。是一个轻量级的流量控制、熔断降级Java库。(类似Hystrix)1.1 Sentinel主要特性:1.2 解决微服务中的问题:服务雪崩服务降级服务熔断服务限流1.3 sentinel组件由2部分组成核心库(Java 客户端):不依赖任何框架/原创 2020-07-30 22:44:18 · 317 阅读 · 0 评论 -
Solr 数据检索
一、简介 Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。原创 2020-07-28 21:34:47 · 228 阅读 · 0 评论 -
Spring Cloud Alibaba Nacos服务注册和配置中心
一、简介1.1 Spring Cloud alibabaSpring Cloud Netflix项目进入维护模式 将模块置于维护模式,意味着Spring Cloud团队将不会再向模块添加新功能。我们将修复block级别的bug以及安全问题,我们也会考虑并审查社区的小型pull request.我们打算继续支持这些模块,直到Greenwich版本被普遍采用至少一年。于是便出现了Spring Cloud alibaba。功能:服务限流降级:默认支持Servlet、Feign、 RestTemp原创 2020-07-27 22:10:03 · 677 阅读 · 0 评论 -
Spring Cloud Sleuth分布式请求链路追踪
一、简介官网介绍及源码 在微服务框架中, 一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每个前段请求都会形成一复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin。一个分布式系统的完整调用链路:表示一条请求链路,一条链路通过Trace ld唯一标识,Span标识发起的请求信息,各span通过原创 2020-07-26 17:31:17 · 519 阅读 · 0 评论 -
Spring Cloud和Dubbo的区别
1.SpringCloud和DubboSpringCloud和Dubbo都是现在主流的微服务架构SpringCloud是Apache旗下的Spring体系下的微服务解决方案Dubbo是阿里系的分布式服务治理框架 从技术维度上,其实SpringCloud远远的超过Dubbo,Dubbo本身只是实现了服务治理,而SpringCloud现在以及有21个子项目以后还会更多所以其实很多人都会说Dubbo和SpringCloud是不公平的但是由于RPC以及注册中心元数据等原因,在技术选型的时候我们只能二者原创 2020-07-26 11:40:04 · 1529 阅读 · 0 评论 -
Spring Cloud Stream消息驱动
一、简介Spring Cloud Stream中文指导手册 官方定义Spring Cloud Stream是一个构建消息驱动微服务的框架。 应用程序通过inputs或者outputs与Spring Cloud Stream中binder对象交互,通过我们配置来binding(绑定) 。而Spring Cloud Stream的binder对象负责与消息中间件交互。所以,我们只需要搞清楚如何与Spring Cloud Stream交互就可以方便使用消息驱动的方式。 通过使用Spring Integr原创 2020-07-23 20:45:37 · 238 阅读 · 0 评论 -
RabbitMQ 安装配置
注意:所选择的Erlang 与 RabbitMQ版本要对照,详情参考官方版本对照表。一、简介1.1 RabbitMQ MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信, 直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。原创 2020-07-21 23:13:03 · 358 阅读 · 0 评论 -
Spring Cloud Bus 消息总线
一、简介重要概念:总线 在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题, 并让系统中所有微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例,都可以方便地广播一些需要让其他连接在该主题 上的实例都知道的消息。 分布式自动刷新配置功能,Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新。解决单独使用Spring Cloud Config需要向每一个客户端服务单独发送POS原创 2020-07-21 21:04:23 · 220 阅读 · 0 评论 -
Eureka注册中心
什么是服务治理Spring Cloud封装了Netlix 公司开发的Eureka模块来实现服务治理在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用负载均衡、容错等,实现服务发现与注册。什么是服务注册与发现Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器它是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到Eureka Server并维持心跳连接。这样系原创 2020-07-01 10:58:28 · 229 阅读 · 0 评论 -
Spring Cloud 整合Zookeeper解决jar包冲突
启动后问题解决办法:取出Spring Cloud自带版本Zookeeper,添加自己使用版本依赖即可 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> <!--排除zk原创 2020-07-07 09:49:19 · 640 阅读 · 0 评论 -
Zookeeper安装使用
简介 ZooKeeper 是一个高可用的分布式数据管理不系统协调框架。基于对 Paxos 算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得 ZooKeeper 解决很多分布式问题。 Zookeeper 保证了CP(数据一致性和分区容错性) 当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用。也就是说,服务注册功能对可用性的要求要高于一致性。但是zk会出现这样一种情况,当master节点因为网络故障与其他原创 2020-07-07 11:40:27 · 189 阅读 · 0 评论 -
Consul注册中心
简介Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面。 这些功能可以根据需要单独使用,也可以一起使用以构建完整的服务网格。 Consul需要一个数据平面,并支持代理和本机集成模型。 Consul附带了一个简单的内置代理,因此一切都可以直接使用,还支持Envoy等第三方代理集成。满足CP原则,即数据一致性和分区容错性,缺失了高可用的特点。Consul的主要特点服务发现:Consul的客户端可以注册服务,例如api或mysql,其他客户端可以使用Consul来发现给定原创 2020-07-08 12:57:43 · 317 阅读 · 0 评论 -
分布式CAP定理
什么是CAP原则 CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。 CAP由Eric Brewer在2000年PODC会议上提出。该猜想在提出两年后被证明成立,成为我们熟知的CAP定理。C 数据一致性(Consistency):也叫做数据原子性系统在执行某项操作后仍然处于一致的状态。在分布式系统中,更新操作执行成功后所有的用户都应该读到最新的值,这样的系统原创 2020-07-08 14:28:21 · 362 阅读 · 0 评论 -
Ribbon 负载均衡
简介 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件 提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出LoadBalancer (简称LB)后面所有的机器, Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。原创 2020-07-10 19:43:10 · 210 阅读 · 0 评论 -
OpenFeign
简介 Feign是一 个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。 Feign旨在使编写Java Http客户端变得更容易。前面在使用Ribbon+ RestTem原创 2020-07-11 22:05:06 · 149 阅读 · 0 评论 -
Hystrix断路器
分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。 如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”. 对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是,这些应原创 2020-07-12 21:17:41 · 192 阅读 · 0 评论 -
Gateway网关
一、简介 Spring Cloud Gateway 使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架 Gateway是在Spring生态系统之上构建的API网关服务,于Spring 5, Spring Boot 2和Project Reactor等技术。SpringCloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最新高性能版本进行集原创 2020-07-17 21:54:04 · 1177 阅读 · 0 评论 -
Spring Cloud Config分布式配置中心
一、简介1.1 分布式系统面临的配置问题 微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。如果没有的话,我们每个微服务自己带着一个application.yml, 上百个配置文件的管理…特别繁琐。所以Spring Cloud提供了ConfigServer来解决这个问题。1.2 Spring Cloud Config Spring Cloud Con原创 2020-07-19 22:27:00 · 152 阅读 · 0 评论