《微服务中间件技术》系列
文章平均质量分 86
微服务、容器、中间件技术
redis、es、docker、tomcat、dubbo、zookeeper、nginx、spring全家桶等
一只IT攻城狮
一个喜欢诗和远方的程序媛
展开
-
RabbitMQ、RocketMQ 、Kafka区别
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。原创 2021-03-11 20:50:19 · 6302 阅读 · 1 评论 -
Springboot项目中的spring-boot-starter-parent,spring-boot-dependencies依赖关系
Springboot项目中spring-boot-dependencies或spring-boot-parent管理了那些常用的依赖,所以有些不需要加version版本标签了,可以统一项目的依赖,避免后续的版本冲突。而spring-boot-dependencies和spring-boot-starter-parent的关系是什么原创 2021-03-18 17:30:02 · 12711 阅读 · 0 评论 -
高并发请求下如何对系统优化
性能监控:使用监控工具(如 Prometheus、Grafana、New Relic)监控系统性能和资源使用,及时发现和解决性能瓶颈。通过综合应用这些优化策略,可以显著提升系统在高并发场景下的处理能力和稳定性。根据具体的应用场景和需求,可以选择和组合适合的优化措施。连接池:使用数据库连接池(如 HikariCP、Druid)来管理和复用数据库连接,提高数据库操作的效率。日志分析:分析应用日志,识别性能问题和异常情况。原创 2024-07-26 15:02:09 · 878 阅读 · 0 评论 -
Nginx使用篇
Nginx 作为一个高性能的反向代理服务器,能够通过负载均衡、限流和动静分离等功能,显著提高网站的性能和可靠性。其配置灵活且高效,适用于各种规模的 web 应用。负载均衡:通过反向代理和多种负载均衡策略,将请求分发到多个后端服务器。限流:通过限流模块限制客户端请求速率,保护服务器免受过载攻击。动静分离:将静态资源和动态请求分开处理,提高网站性能。掌握这些配置和原理,可以有效优化 Nginx 的使用,提升 web 应用的整体表现。原创 2024-07-26 13:38:16 · 580 阅读 · 0 评论 -
Tomcat打破双亲委派模型的方式
双亲委派模型是一种类加载机制,它确保了类加载器层次结构中的父加载器先于子加载器尝试加载类。这种机制有助于防止类的重复加载和类之间的不兼容。然而,为了支持Web应用程序的独立性和隔离性,Tomcat需要在某些情况下打破这一原则。Tomcat通过自定义的WebappClassLoader打破了双亲委派模型,允许Web应用程序优先加载自己的类和资源。这种机制确保了每个Web应用程序的独立性和隔离性,避免了类库冲突,并使得每个应用程序可以拥有自己的类和库版本。原创 2024-07-09 09:56:10 · 868 阅读 · 0 评论 -
Docker常见面试题整理
这使得开发人员可以更容易地处理复杂的Docker环境,尤其是在需要多个容器协同工作的场景下。Docker 是一种容器化平台,允许开发者打包应用程序及其依赖项到一个可移植的容器中,然后发布到任何支持 Docker 的环境中运行。Docker 解决了传统虚拟化环境中应用部署和运行时的依赖、配置、环境一致性等问题,提供了更轻量、更快速的应用部署和扩展方案。总之,Docker Compose是一个强大的工具,可以帮助开发人员和管理员更好地管理和部署Docker容器化的应用程序。原创 2024-06-22 13:38:55 · 1085 阅读 · 0 评论 -
Kafka高频面试题整理
Kafka 是一个分布式流处理平台,最初由Linkedln开发并开源,后来成为Apache软件基金会的一个顶级项目。它被设计用于高吞吐量、持久性、分布式的数据流处理。原创 2024-06-13 20:51:01 · 1390 阅读 · 0 评论 -
Kafka之ISR机制的理解
ISR(In-Sync Replicas)是一个分区副本集合,这些副本被认为是与领导副本保持同步的。具体来说,ISR中的副本是那些能够在一定时间内(由参数replica.lag.time.max.ms指定)将数据同步到与领导副本相同位置的副本。Kafka的ISR机制通过维护一个与领导副本同步的副本集合,确保了数据的一致性和高可用性。通过合理配置和使用ISR机制,Kafka能够在面对节点故障时,仍然保证数据的安全和系统的稳定。原创 2024-06-13 08:36:39 · 893 阅读 · 0 评论 -
RabbitMQ高频面试题整理
AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是一种用于消息传递的开放标准协议,广泛用于消息队列和消息中间件系统中。RabbitMQ 是 AMQP 协议的一个实现。Broker(代理)消息代理是消息队列服务器,负责接收、存储和转发消息。例如,RabbitMQ 就是一个 AMQP 消息代理。Message(消息)消息是 AMQP 中的基本数据单元,包含要传递的数据和一些元数据(如路由键和头属性)。Producer(生产者)原创 2024-06-12 16:04:54 · 2367 阅读 · 0 评论 -
Zookeeper高频面试题整理(入门到精通)
Zookeeper 翻译过来就是动物园管理员,他是用来管 Hadoop (大象) 、Hive(蜜蜂)、Pig(小猪)的管理员,简称zk。Zookeeper是 Apache Hadoop项目下的一个子项目,是一个开源的分布式协调服务。配置管理命名服务分布式同步分布式锁集群管理。ZAB协议是一种原子广播协议,保证所有ZooKeeper服务器上的数据一致性。包含崩溃恢复和消息广播两部分。领导者选举:系统初始化时或现有领导者失效时,所有节点通过选举过程选出新的领导者。原创 2024-06-09 15:01:37 · 1800 阅读 · 0 评论 -
Nacos启动报错:Unsatisfied dependency expressed through field ‘jwtTokenManager‘
Nacos启动报错 Unsatisfied dependency expressed through field 'jwtTokenManager'原创 2023-09-06 17:36:48 · 793 阅读 · 0 评论 -
Load balancer does not contain an instance for the service xxx-service
排查SpringBoot、SpringCloud、Spring Cloud Alibaba、以及Nacos版本是否配套使用,我们知道往往环境问题多是版本搞得怪。好了,到这里了,希望能解决你的问题。如果没有解决,可以先单独调用服务提供者确认自身没问题,能成功注入到注册中心,再去怀疑调用者哈,再去怀疑调用过程。排查注解@FeignClient注解value的值配置,是否和nacos中展示的服务名一致(大小写也要一致)修改配置后重启服务。原创 2023-07-13 18:25:53 · 1478 阅读 · 0 评论 -
SpringBoot、SpringCloud、Spring Cloud Alibaba版本对照表(详细准确)
SpringBoot、SpringCloud、Spring Cloud Alibaba版本对照表 (详细准确)原创 2023-07-12 16:04:34 · 4746 阅读 · 0 评论 -
MacOS使用docker安装nginx
一般情况下docker启动时进行配置,只要把配置文件的目录挂载出来就可以,但是nginx却是先加载一个主配置文件nginx.conf,在nginx.conf里再加载conf.d目录下的子配置文件(一般最少一个default.conf文件)。到这里为止我们就可以随意的修改我们的nginx了,在本地的html文件夹和conf.d中任意增加代码和配置,在docker容器中重新启动nginx就可以了。所以本地创建对应的目录,并将目录挂在到docker容器的nginx上。日志文件位置:/var/log/nginx。原创 2023-06-11 08:30:00 · 2568 阅读 · 2 评论 -
SpringCloud和Dubbo的区别有哪些?
Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断;而 Spring Cloud 诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托 Spring、Spring Boot 的优势之上,两个框架在开始目标就不一致,Dubbo 定位服务治理、SpringCloud 是一个生态。因此可以大胆地判断,Dubbo 未来会在服务治理方面更为出色,而 SpringCloud 在微服务治理上面无人能敌。原创 2023-03-22 18:09:00 · 583 阅读 · 3 评论 -
什么是tomcat?tomcat是干什么用的?
Tomcat 是由 Apache 软件基金会下属的 Jakarta 项目开发的一个 Servlet 容器。是开源的轻量级Web应用服务器。原创 2021-03-08 19:01:04 · 3409 阅读 · 1 评论 -
maven+Tomcat热部署
一、热部署:所谓的tomcat热部署,就是在不重启tomcat服务器的前提下,将自己的项目部署到tomcat服务器中。也可以理解为当对JSP或JAVA类进行了修改在不重启WEB服务器前提下能让修改生效。但是对配置文件的修改除外!二、使用场景:热部署适用于频繁的部署并且启动耗时长的应用、无法停止服务的应用等,满足这些场景的生产环境等(比如王者农药哈哈你懂得)。在开发环境中使用的话,开发和debug,也可以大大的提高开发效率。三、怎么配置:1)方式一:手工热部署启动tomcat(bin/start原创 2020-11-23 18:37:47 · 563 阅读 · 0 评论 -
spring全家桶常见注解---@Repository、@Autowired、@Controller等
一、spring中常见注解1、@Autowiredspring中@Autowired 是一个注释,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。2、@RequestParam、@RequestBody@RequestParam用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性。@RequestParam也可用于其它类型的请求,例如:POST、DEL原创 2021-01-19 15:48:04 · 1097 阅读 · 2 评论 -
Nginx正向反向代理区别
一、正向代理和反向代理的区别正向代理代理客户端,反向代理代理服务器。1.1正向代理:客户端 <一> 代理 一>服务端正向代理服务器位于客户端和服务器之间,为了从服务器获取数据,客户端要向代理服务器发送一个请求,并指定目标服务器,代理服务器将目标服务器返回的数据转交给客户端。这里客户端需要要进行一些正向代理的设置的。举例:翻墙正向代理中被代理的是客户端的请求1.2 反向代理:客户端 一>代理 <一> 服务端反向代理,客户端对代理是无感知的,客户端不需要任何原创 2021-03-08 10:48:18 · 841 阅读 · 0 评论 -
dubbo环境的搭建及详解
一、dubbo架构高性能的Java RPC框架,dubbo被阿里捐献给了apache。dubbo架构:节点角色说明Provider 暴露服务的服务提供方Consumer 调用远程服务的服务消费方Registry 服务注册与发现的注册中心Monitor 统计服务的调用次数和调用时间的监控中心Container 服务运行容器调用关系说明服务容器负责启动,加载,运行服务提供者。服务提供者在启动时,向注册中心注册自己提供的服务。服务消费者在启动时,向注册中心订阅自己所需的服务。注册中原创 2021-03-05 20:09:25 · 2155 阅读 · 3 评论 -
Win7 Docker环境搭建
Win7 Docker环境搭建原创 2022-06-17 16:18:57 · 10490 阅读 · 0 评论 -
集群、分布式、微服务的区别
1、集群是个物理形态:同一个业务,部署在多个服务器上,即几台服务器集中一起实现同一业务;集群能实现负载均衡,不同服务器部署同一套服务对外访问;eg:新浪网,访问人多,做集群,相应服务器可以看那台服务器负载不重去完成,即集群一台垮了,其他服务可以顶上。集群服务器切换时要做好session共享。2、分布式是个工作方式:一个业务分拆多个子业务,部署在不同的服务器上,不同业务分散在不同地方。eg:hadoop分布式要做好事务管理。分布式每个节点都完成不同业务,一个节点垮了,其他业务就不能访问了。原创 2021-04-01 12:29:04 · 207 阅读 · 0 评论 -
分布式ID生成之雪花算法(SnowFlake)
一、分布式ID1、分布式ID的特点:全局唯一性:不能出现有重复的ID标识,这是基本要求。递增性:确保生成ID对于用户或业务是递增的。高可用性:确保任何时候都能生成正确的ID。高性能性:在高并发的环境下依然表现良好。2、分布式ID生成方案:在分布式系统中生成唯一ID的方案有很多,常见的方式大概有以下三种:依赖数据库,使用如MySQL自增列或Oracle序列等。UUID随机数snowflake雪花算法3、几种方案优缺点:UUID:Java自带的生成一串唯一随机36位字符串,可以保原创 2021-07-18 22:15:22 · 2497 阅读 · 0 评论 -
Spring之AOP报错:Null return value from advice does not match primitive return type for
1、org.springframework.aop.AopInvocationException:Null return value from advice does not match primitive return type for这个错就是返回的类型不匹配。2、原因:主要还是基本数据类型无法接受null,如果环绕返回null就报错,可以将boolean改成Boolean。3、Boolean.TRUE 和 true 区别?Boolean A(){ return Boolean.T原创 2021-08-25 11:26:16 · 9037 阅读 · 0 评论 -
浅谈RPC
一、RPC概念RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有:二、目前流行的开源 RPC 框架应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。通信框架:MIN原创 2021-02-07 18:38:36 · 472 阅读 · 0 评论 -
Lua脚本
所有被Redis 执行的Lua 脚本,在Lua 环境中都会有一个和该脚本相对应的无参数函数:当调用EVAL 命令执行脚本时,程序第一步要完成的工作就是为传入的脚本创建一个相应的Lua函数。原创 2022-04-07 15:20:05 · 10218 阅读 · 0 评论 -
mac安装Homebrew
mac上安装使用Homebrew原创 2022-08-02 14:38:20 · 2111 阅读 · 0 评论