架构设计
文章平均质量分 95
有梦想的攻城狮
既然选择了远方,留给别人的就只能是背影
展开
-
Kafka使用指南
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。它是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者在网站中的所有动作流数据。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。Kafka中的消息被归类为不同的主题,每个主题有若干个分区。原创 2023-12-06 23:52:47 · 1840 阅读 · 50 评论 -
RocketMQ使用指南
RocketMQ是一款由阿里巴巴公司开发的开源分布式消息中间件,于2012年开始开发。它具有高可用性、高性能、可靠性强、功能丰富等特点,广泛应用于电商、金融、物流、互联网和大数据等领域。RocketMQ支持生产者和消费者的负载均衡、数据分片、数据重试、数据过期等特性,同时还支持消息的事务、顺序消费、定时消费、广播消费等高级特性。RocketMQ的消息存储采用了基于CommitLog的方式,保证消息的可靠存储和高效读取。原创 2023-12-08 23:58:43 · 614 阅读 · 12 评论 -
Nginx使用详解
Nginx(发音为“engine x”)是一个高性能的HTTP和反向代理服务器,同时也提供了IMAP/POP3/SMTP服务。它由伊戈尔·赛索耶夫(Igor Sysoev)为俄罗斯访问量第二的Rambler.ru站点开发,并在一个类似BSD的协议下发行。Nginx的特点包括占用内存少、并发能力强,以及具有高稳定性、支持热部署等。这使得Nginx在处理大量并发连接时表现出色,因此被广泛应用于各种场景,包括作为优秀的代理服务器和负载均衡服务器。原创 2024-02-05 22:39:40 · 1303 阅读 · 65 评论 -
Undertow使用详解
Undertow是一个开源的、灵活的、高性能的非阻塞性应用服务器,由JBoss提供。它可以用作嵌入式服务器,也可以用作大型项目的全功能应用服务器。Undertow的设计以提供最高的性能和最大的灵活性为主要目标,支持非阻塞性和阻塞性处理方式,可以处理十万级的并发连接。Undertow的历史可以追溯到2013年,当时Red Hat发布了JBoss AS 7,这是一个基于Java 7的轻量级应用服务器。Undertow作为JBoss AS 7的默认Web服务器,提供了高效的非阻塞I/O和异步处理能力。原创 2024-02-04 23:20:45 · 1388 阅读 · 16 评论 -
gRPC使用详解
gRPC是一个高性能、开源和通用的RPC(远程过程调用)框架,面向服务端和移动端,基于HTTP/2设计。以下是gRPC的一些主要特点:1. 语言中立:支持多种语言,包括Java、C++、Python、Go、Ruby、C#、Java等。2. 基于IDL文件定义服务:通过proto3工具生成指定语言的数据结构、服务端接口以及客户端Stub。3. 通信协议基于标准的HTTP/2设计:支持双向流、消息头压缩、单TCP的多路复用、服务端推送等特性,这些特性使得gRPC在移动端设备上更加省电和节省网络流量。4原创 2024-02-03 01:23:07 · 1510 阅读 · 60 评论 -
Consul使用详解
初期阶段(2014-2015年):Consul最初发布于2014年5月,这个版本是基于Go语言开发的,并提供了诸如服务发现、健康检查、分布式锁和配置管理等功能。这些功能的设计旨在解决HashiCorp公司在构建云基础设施时遇到的服务发现和配置管理问题。快速发展阶段(2016-2018年):在这个阶段,Consul发展迅速,引入了对多数据中心和插件机制的支持,并发布了多个版本,不断完善其功能和性能。这些改进使得Consul的使用变得更加灵活和可扩展。原创 2024-01-22 23:57:02 · 1507 阅读 · 22 评论 -
Eureka使用详解
Eureka是一个基于REST的服务,主要用于AWS云中的定位服务,以实现中间层服务器的负载平衡和故障转移。在Spring Cloud微服务架构中,Eureka通常用作注册中心。Eureka的基本原理是:服务在Eureka上注册,然后每隔30秒发送心跳来更新它们的租约。如果客户端不能多次续订租约,那么它将在大约90秒内从服务器注册表中剔除。Eureka客户端与服务器之间的通信采用客户端发现模式。Eureka客户端将关于运行实例的信息注册到Eureka服务器,并在每隔30秒发送心跳来更新注册信息。原创 2024-01-20 23:14:15 · 1980 阅读 · 35 评论 -
Dubbo使用详解
Dubbo是一个高性能、轻量级的开源Java RPC框架,由阿里巴巴公司开发并开源。它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。Dubbo使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。高性能:Dubbo使用高效的网络框架和序列化框架,让分布式服务之间调用效率更高。透明化:Dubbo在调用远程的服务的时候再本地有一个接口,就像调用本地方法一样去调用,底层实现好参数传输和远程服务运行结果传回之后的返回。原创 2024-01-19 01:39:20 · 1410 阅读 · 45 评论 -
Zookeeper使用详解
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。原创 2024-01-14 23:30:30 · 3932 阅读 · 70 评论 -
Hazelcast使用详解
Hazelcast是一个开源的分布式数据结构库,主要用于在Java应用程序中提供高可用性、数据分布、缓存等功能。它支持多种分布式数据结构,如分布式映射、分布式队列、分布式缓存等。Hazelcast的历史可以追溯到2011年,当时它作为一个开源项目在GitHub上发布。Hazelcast是由一群志愿者创建的,他们希望开发一个高性能、可扩展的分布式内存数据库,以满足他们在构建应用程序时对内存存储和分布式计算的需求。从那时起,Hazelcast一直作为一个开源项目不断发展。原创 2024-01-11 00:59:14 · 1739 阅读 · 20 评论 -
Kafka与RabbitMQ的区别
Apache Kafka是一个开源流处理平台,由Scala和Java编写,由Apache软件基金会开发。它是一个高吞吐量的分布式发布订阅消息系统,可以处理消费者在网站中的所有动作流数据。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,Kafka是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。原创 2024-01-08 23:59:32 · 1330 阅读 · 11 评论 -
Nacos与Eureka的区别
Nacos是一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。服务发现:Nacos支持基于DNS和RPC的服务发现,提供原生SDK、OpenAPI等多种服务注册方式和DNS、HTTP与API等多种服务发现方式。它还支持对服务的实时健康检查,阻止向不健康的主机或服务实例发送请求。动态配置服务:Nacos提供配置统一管理功能,以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。动态配置消除了配置变更时重新部署应用和服务的需要,使配置管理更加高效和敏捷。动态DNS服务。原创 2024-01-07 21:27:22 · 2663 阅读 · 37 评论 -
Kafka集群详解
Apache Kafka是一个开源流处理平台,由Scala和Java编写。它最初由LinkedIn公司开发,并于2011年初开源。Kafka是一个高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,Kafka是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。原创 2023-12-30 23:59:57 · 2237 阅读 · 42 评论 -
Tomcat与Netty比较
Tomcat是一个免费的、开放源代码的Web应用服务器,是Apache软件基金会项目中的一个核心项目。它由Apache、Sun和其他一些公司及个人共同开发而成,深受Java爱好者的喜爱,是一款比较流行的Web应用服务器。web容器:完成web服务器的功能。servlet容器:名字为catalina,用于处理Servlet代码。jsp容器:用于将jsp动态网页翻译成Servlet代码。因此,Tomcat是web应用服务器,也是一个Servlet/JSP容器。原创 2023-12-23 23:45:58 · 2921 阅读 · 24 评论 -
Canal使用详解
Canal是阿里巴巴开发的MySQL binlog增量订阅&消费组件,Canal是基于MySQL二进制日志的高性能数据同步系统。在阿里巴巴集团中被广泛使用,以提供可靠的低延迟增量数据管道。Canal Server能够解析MySQL Binlog并订阅数据更改,而Canal Client可以将更改广播到任何地方,例如数据库和。Canal支持所有平台,细粒度系统监视,通过不同方式解析和预订MySQL Binlog,以及高性能、实时数据同步。原创 2023-12-22 23:18:15 · 1765 阅读 · 23 评论