![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【微服务】
文章平均质量分 91
青山师
编码、架构、程序人生;此博客输出内容永久免费,长期分享JAVA开发技术
展开
-
微服务服务间调用组件Feign使用介绍、原理、优化技巧
Feign是一个声明式的Web Service客户端。它让微服务之间的调用变得更简单。Feign具有可插拔式的注解支持,包括Feign 注解和JAX-RS注解。Feign还支持可插拔的编码器和解码器。Spring Cloud增加了对Spring MVC注解的支持,并且也支持Spring WebFlux。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。Feign的基本概念、原理与使用。Feign采用声明式的接口,自动拼接URL、添加参数等工作,简化HTTP客户端的开发。原创 2023-05-20 15:51:28 · 1173 阅读 · 0 评论 -
微服务负载均衡器Ribbon介绍、使用以及原理和源码理解
Ribbon是Netflix开源的客户端负载均衡器,它可以很好的控制HTTP和TCP客户端的行为。Ribbon支持配置客户端添加重试和超时等功能,旨在使客户端更加强健。负载均衡故障检测暂时性错误重试客户端配置化等轮询(RoundRobinRule):轮流选择服务器随机(RandomRule):随机选择服务器重试(RetryRule):在一个配置时间内当选择服务器不成功,则一直尝试该服务器,超过配置时间才尝试其他服务器。原创 2023-05-17 23:23:16 · 1454 阅读 · 0 评论 -
微服务注册中心Eureka原理到源码
Eureka是Netflix开源的一款用于提供服务注册和发现的产品,它提供了完整的服务注册和发现功能,具有容错性,可伸缩性等特性。Eureka包含两个组件:Eureka Server和Eureka Client。Eureka Server提供服务注册服务。各个微服务启动时,会通过Eureka Client向Eureka Server注册自己的信息(例如服务名称、IP地址、端口等)。原创 2023-05-15 18:31:03 · 923 阅读 · 0 评论 -
消息队列如何保证消息可靠性传输
在本文中,我们主要介绍了持久化存储、消息确认机制、重试机制和幂等性处理等机制,以及使用 JAVA 语言和 Apache Kafka、RabbitMQ 进行代码实践的示例。通过上述机制的支持和实践,可以保证消息队列系统的可靠性和稳定性,为各大互联网公司提供高效、稳定的消息传输服务。原创 2023-04-30 11:07:56 · 2997 阅读 · 0 评论 -
RocketMQ 底层实现原理
在 RocketMQ 中,消息的发送过程可以分为三个步骤:1. 生产者发送消息到 Broker;2. Broker 将消息存储到磁盘,并将消息持久化到 CommitLog 和 IndexFile 中;3. 消费者从 Broker 拉取消息并进行消费。原创 2023-04-30 10:59:16 · 2460 阅读 · 0 评论 -
kafka的push、pull分别有什么优缺点
在 Kafka 中,生产者使用 push 模式将消息推送给 Kafka 集群,而消费者则使用 pull 模式从 Kafka 集群中拉取消息。本文对 Kafka 的 push 和 pull 两种模式进行比较,分析其优缺点。Pull 模式是 Kafka 新增的方式,使用该模式时,消费者可以自主选择从哪个分区开始拉取消息,并可以自主控制拉取消息的速度。Kafka 中为消费者维护着一个 offset,表示消费者已经消费的消息序号,当消费者拉取消息时,Kafka 会返回该消费者还没有消费的消息。原创 2023-04-29 15:58:33 · 3146 阅读 · 1 评论 -
MySQL执行计划详解
执行计划是MySQL查询优化器生成的一组指令,用于执行SQL语句。在执行SQL语句时,MySQL会对SQL进行解析、优化、执行三个步骤。在优化阶段,MySQL查询优化器会生成一个执行计划,该计划被称为查询计划或执行计划。执行计划告诉MySQL执行SQL语句的具体步骤,包括表的连接方式、扫描方式、过滤条件等。执行计划是指MySQL根据用户请求所生成的一份查询计划,它决定了MySQL在执行SQL语句时所采取的操作方式,包括表的连接方式、索引的选择、访问方法等,进而影响着查询语句的执行效率。原创 2023-04-19 23:25:05 · 3115 阅读 · 0 评论 -
Redis缓存MySQL数据库存储二者如何保证数据一致性
Redis缓存MySQL数据库存储二者如何保证数据一致性,既可以同步更新缓存,也可以异步更新缓存。同步更新缓存能够保证数据一致性,但会对写操作的性能产生影响;异步更新缓存则能够避免这个问题,但需要引入消息队列,并且也需要考虑缓存更新失败的情况。根据实际情况选择不同的方案即可。原创 2023-04-19 10:10:01 · 782 阅读 · 0 评论 -
Java缓存穿透、击穿、雪崩解决方案
针对缓存穿透、击穿和雪崩问题,我们可以采用布隆过滤器、分布式锁和多级缓存策略等技术手段来进行优化。在实际项目中,需要根据具体情况选择合适的解决方案,并进行适当的调整和配置,以达到最佳的性能和稳定性。原创 2023-04-18 21:03:11 · 900 阅读 · 0 评论 -
Redis主从复制、哨兵、集群原理部署介绍
Redis主从复制是保证Redis数据库高可用性和容错性的重要解决方案之一。Redis哨兵模式是保证Redis数据库高可用性和容错性的重要解决方案之一。Redis 是一款内存数据库,常用于缓存、消息队列等。随着业务的发展和数据的增长,单机 Redis 可能无法满足我们的需求,此时我们需要使用 Redis 集群模式。Redis 集群模式可以将多个 Redis 实例组成一个集群,提供更高的性能和可用性。我们将介绍 Redis 集群模式的核心原理,并通过代码实践演示如何搭建 Redis 集群。原创 2023-04-18 20:20:37 · 961 阅读 · 0 评论 -
Redis分布式锁的实现方式及底层原理
在加锁方法中,我们首先生成了一个随机字符串nonce作为锁的值,并在每个Redis实例上进行原子性的set操作,返回成功加锁的实例数。如果获取到锁的实例数大于等于quorum(即多数节点),并且加锁操作完成的时间小于锁的过期时间expireTime,则表示加锁成功,否则认为加锁失败,触发重试机制。Redlock算法采用多个节点之间互斥的方式获取分布式锁,可以保证在大部分节点正常情况下分布式锁的可靠性,并允许在某些更繁忙或网络质量较差的节点上失败,从而确保分布式锁的稳定性。原创 2023-04-13 20:37:54 · 1168 阅读 · 0 评论 -
SpringCloud微服务技术栈的配置中心SpringCloud Config
随着微服务架构的快速发展,现代化的应用架构越来越依赖于云原生架构、容器化和Kubernetes。在这种背景下,Spring Cloud已经成为了Java开发人员选择构建微服务的首选框架之一。本文将介绍如何使用Spring Cloud Config作为SpringBoot微服务体系结构的配置中心,让您轻松管理配置信息并独立部署。原创 2023-04-13 20:07:45 · 837 阅读 · 0 评论 -
分布式事务处理常用手段及生产实践
在分布式系统架构设计中,如何保证数据的一致性是一个非常重要的问题。实际生产需要根据具体业务场景来选择适合的分布式事务处理方法,以保证系统的可靠性和一致性。原创 2023-04-10 10:07:04 · 554 阅读 · 0 评论 -
从零开始,手把手教你实现基于 Websocket 的微服务
Websocket 协议是为了解决 HTTP 协议缺陷而产生的一种通信协议,它能够在客户端和服务器之间建立持久性的连接,并且允许双向通信。HTTP 协议的请求与响应模式,其实并不适合实时通信的场景。比如聊天室、在线游戏等应用,都需要实时地推送消息到客户端,而 HTTP 协议则需要进行频繁的请求和响应操作,这就会导致网络延迟和更多的带宽消耗。而 Websocket 则是允许服务器主动向客户端发送消息,而不需要客户端发起请求,从而提高了通信效率和实时性。原创 2023-04-09 19:36:58 · 1896 阅读 · 0 评论 -
SpringBoot常见的的面试点
SpringBoot是Spring框架的一个子项目,它可以让开发者更快速、更容易地创建基于Spring的应用程序。SpringBoot通过提供默认的配置和自动化配置来简化Spring应用程序的开发过程,并提供了一系列插件和工具来简化构建、测试和部署Spring应用程序的流程。相对于传统的Spring框架,SpringBoot更加轻量级,启动更快,编写更少的代码就能实现同样的功能。原创 2023-04-09 19:01:08 · 438 阅读 · 0 评论 -
SpringCloud微服务技术栈之网关服务Gateway
在微服务架构中,微服务数量的增加会使得系统中出现大量的服务实例,同时每个服务往往又有多个版本,这些版本需要进行升级、降级等操作。因此,对于这些微服务的调用和路由管理就变成了一个巨大的挑战。Spring Cloud网关服务Gateway可以作为微服务架构中的一个基础设施,通过将API网关方式暴露给服务客户端,从而控制所有的请求流量,并支持许多传输协议,例如HTTP、WebSocket等。原创 2023-04-09 17:16:37 · 1087 阅读 · 0 评论 -
服务雪崩、服务限流、服务熔断和服务降级
在分布式系统中,由于网络延迟、节点宕机等各种原因,会出现一些异常情况,如某个服务的响应时间变慢或者宕机。这时候如果不采取措施,可能导致整个系统的性能下降或者不可用。本文主要介绍如何使用服务雪崩、服务限流、服务熔断和服务降级等技术手段来解决这些异常情况。原创 2023-04-07 23:53:09 · 273 阅读 · 0 评论 -
SpringCloud微服务技术栈的注册中心Eureka
在微服务架构中,服务的数量庞大,而且每个服务可能会有多个实例。此时,需要一个中心化的地方来管理和维护各个服务的相关信息,这就是微服务治理中很重要的一环:服务注册与发现。其中,服务注册是指将提供服务的应用实例注册到注册中心,而服务发现则是指从注册中心中获取服务实例列表并调用服务。本文将介绍SpringCloud微服务技术栈中的注册中心Eureka。本文介绍了SpringCloud微服务技术栈的注册中心Eureka,并以实际操作的方式进行了详细的说明。原创 2023-04-07 19:30:22 · 712 阅读 · 1 评论