java技术圈 为您找到相关结果 20

基于Netty的高性能RPC框架Nifty(一)

1. 前言 Thrift是Facebook贡献给apache的rpc框架,但是这款框架的java版本在公司内部并不是那么受待见,因为其性能相比C++版本差了很多,但是后续基于netty重写了以后性能得到了极大的提升,相比于C++版本已经差距不大了。为此取了个新的名字Nifty = Netty + Thrift。 如果你使用过thrift的话,基本都会使用自动生成的代码,那真的是没法看,即使定义一个简单的类都会生成巨多的代码,把read,write方法全部写到里面去了。总之早期的thrfit各方面都似乎不那么友好。后面架构进行了升级,提供了新的swift库,注意这个不是ios的swift,从而生成的java类和普通的java类基本一致,无非多了点注解,而序列化反序列化也都移到了相应的包中,从而...阅读全文

博文 2021-08-16 07:02:59 服务端启动全解析

漫谈gRPC - 云+社区

本文概括性的介绍gRPC,包括gRPC的起源,核心特性,生态体系,以及一些知名开源软件对gRPC的使用,最后总结gRPC与netty、dubbo等框架的区别,目的是让读者从整体上对gRPC有一个相对全面的认知。1 gRPC起源十多年来,Google一直在使用一个名为Stubby的通用RPC基础架构来连接在数据中心内部和跨越数据中心运行的大量微服务,其内部系统长期以来一直接受微服务架构的普及。拥有统一的跨平台RPC基础架构,可以在整个系统范围内推广效率,安全性,可靠性和行为分析,这对于支持Google的惊人增长至关重要。我们今天使用的每个Google服务背后的RPC骨干都是Stubby。Stubby有许多很棒的功能 - 但是,它不是基于任何标准,而是与Google的内部基础设施紧密耦合,并不适...阅读全文

博文 2020-06-10 10:55:53 腾讯云

Hbase split的三种方式和split的过程 - albeter

在Hbase中split是一个很重要的功能,Hbase是通过把数据分配到一定数量的region来达到负载均衡的。一个table会被分配到一个或多个region中,这些region会被分配到一个或者多个regionServer中。在自动split策略中,当一个region达到一定的大小就会自动split成两个region。table在region中是按照row key来排序的,并且一个row key所对应的行只会存储在一个region中,这一点保证了Hbase的强一致性 。 在一个region中有一个或多个stroe,每个stroe对应一个column families(列族)。一个store中包含一个memstore 和 0 或 多个store files。每个column family 是...阅读全文

博文 2023-09-21 11:48:41 博客园

Linux下为什么端口开着但是进程却不存在? – hao32的个人日志

一次偶然事件,我检查某台服务器系统时发现一个从来没见过的端口处于监听(LISTEN)状态,于是开始仔细检查系统。 [root@db097 ~]# netstat -lnpt | grep 7979 tcp 0 0 0.0.0.0:7979 0.0.0.0:* LISTEN - 进程里什么都没有,试了多种办法试着去找一下,都是一样的结果。 [root@db097 ~]# lsof -i:7979 google了半天,最后一段话提示了我: I realized it’s an port opened by kernel, that’s why it won’t show up with program name. For the port like this, it may relate to ...阅读全文

博文 2023-06-28 03:27:32 www.hao32.com

万字长文详解HBase读写性能优化_51CTO博客_hbase 读写性能

一、HBase 读优化 1. HBase客户端优化 和大多数系统一样,客户端作为业务读写的入口,姿势使用不正确通常会导致本业务读延迟较高实际上存在一些使用姿势的推荐用法,这里一般需要关注四个问题: 1) scan缓存是否设置合理? 优化原理:在解释这个问题之前,首先需要解释什么是scan缓存,通常来讲一次scan会返回大量数据,因此客户端发起一次scan请求,实际并不会一次就将所有数据加载到本地,而是分成多次RPC请求进行加载,这样设计一方面是因为大量数据请求可能会导致网络带宽严重消耗进而影响其他业务,另一方面也有可能因为数据量太大导致本地客户端发生OOM。在这样的设计体系下用户会首先加载一部分数据到本地,然后遍历处理,再加载下一部分数据到本地处理,如此往复,直至所有数据都加载完成。数据加载...阅读全文

博文 2024-01-11 19:59:06 blog.51cto.com

k8s Pod与容器到底啥区别-腾讯云开发者社区

1 简介 刚开始接触 Kubernetes 时,你学到的第一件事就是每个 Pod 都有一个唯一的 IP 和主机名,并且在同一个 Pod 中,容器可以通过 localhost 相互通信。所以,显而易见,一个 Pod 就像一个微型的服务器。 但是,过段时间,你会发现 Pod 中的每个容器都有一个隔离的文件系统,并且从一个容器内部,你看不到在同一 Pod 的其他容器中运行的进程。好吧!也许 Pod 不是一个微型的服务器,而只是一组具有共享网络堆栈的容器。 但随后你会了解到,Pod 中的容器可以通过共享内存进行通信!所以,在容器之间,网络命名空间不是唯一可以共享的东西……基于最后的发现,所以,我决定深入了解: Pod 是如何在底层实现的 Pod 和 Container 之间的实际区别是什么 如何使用...阅读全文

博文 2023-09-13 14:47:13 腾讯云

HBase如何实现write写入优化_云数据库HBase版

HBase基于LSM模式,写是写HLOG及Memory的,也就是基本没有随机的IO,所以在写链路上性能高效还比较平稳。很多时候,写都是用可靠性来换取性能。 批量写 也是为了减少rpc的次数HTable.put(List) Auto Flush autoflush=false可以提升几倍的写性能,但是还是要注意,直到数据超过2 M(由hbase.client.write.buffer决定)或用户执行了hbase.flushcommits()时才向regionserver提交请求。需要注意并不是写到了远端。 HTable.setWriteBufferSize(writeBufferSize)可以设置buffer的大小。 服务端优化 WAL Flag 不写WAL可以成倍提升性能,因为不需...阅读全文

博文 2023-05-16 08:11:25 阿里云帮助中心

可视化全链路日志追踪

1. 背景1.1 业务系统日益复杂随着互联网产品的快速发展,不断变化的商业环境和用户诉求带来了纷繁复杂的业务需求。业务系统需要支撑的业务场景越来越广、涵盖的业务逻辑越来越多,系统的复杂度也跟着快速提升。与此同时,由于微服务架构的演进,业务逻辑的实现往往需要依赖多个服务间的共同协作。总而言之,业务系统的日益复杂已经成为一种常态。1.2 业务追踪面临挑战业务系统往往面临着多样的日常客诉和突发问题,“业务追踪”就成为了关键的应对手段。业务追踪可以看做一次业务执行的现场还原过程,通过执行中的各种记录还原出原始现场,可用于业务逻辑执行情况的分析和问题的定位,是整个系统建设中重要的一环。目前在分布式场景下,业务追踪的主流实现方式包括两类,一类是基于日志的ELK方案,一类是基于单次请求调用的会话跟踪方案。...阅读全文

博文 2024-07-16 14:59:34 美团技术团队

Flink【环境搭建 01】(flink-1.9.3 集群版安装、配置、验证)

我使用的安装文件是 flink-1.9.3-bin-scala_2.12.tgz ,以下内容均以此版本进行说明。 说明 搭建集群首先要进行集群的规划【哪台做主节点,哪些做从节点】,这里简单搭建一个 3 节点的 Flink Standalone 集群,其中三台主机Flink01、Flink02、Flink03 均为 worker 节点,Flink01 为 master 节点。 1. 配置免密登录【每台服务器】 Flink 组件之间需要基于 SSH 进行通讯。 1.1 配置映射 配置 ip 地址和主机名映射:==很关键==通过ifconfig查询本机的ip地址,这个地方没有配置正确的话节点会有问题。 vim /etc/hosts xxx.xx.x.x flink01 flink01 xxx.xx...阅读全文

博文 2024-10-11 18:01:25 阿里云开发者社区

浅谈网络文件系统原理

本文分享自天翼云开发者社区《浅谈网络文件系统原理》,作者:谢****云什么是网络文件系统?网络文件系统(Network File System, NFS)实现了一种软件协议,能将远端的文件系统映射到本地,使用者访问网络上的文件就像在使用自己的计算机一样。远端是专属存储系统,通常称为NAS存储。比较出名的网络文件系统的实现包括Sun公司的NFS,微软的CIFS(Common Internet File System)等,网络文件系统的访问示意图如下:​图1 网络文件系统挂载示意图网络文件系统协议实现了将远端的目录树映射到本机,成为本机目录树种的一颗子树。一个实现合格的网络文件系统,实现了文件操作接口的POSIX(Portable Operating System Interface X)语义,...阅读全文

博文 2024-11-19 15:17:57 Tianyiyun

大厂学苑 RPC框架核心源码深度解析(RPC框架概述)

获课:大厂学苑 RPC框架核心源码深度解析(RPC框架概述)RPC(Remote Procedure Call,远程过程调用)是一种使得计算机程序能够调用远程计算机上程序功能的通信协议。简单来说,它允许程序在一个计算机上执行某个过程或函数时,调用另一个计算机上的程序,就像调用本地函数一样。RPC框架就是为了简化这一过程的开发和实现而设计的,它隐藏了底层的通信细节,提供了开发者友好的接口,使得远程调用像本地调用一样简单。1.RPC框架的基本原理RPC框架通过以下几个步骤实现远程调用:客户端调用: 客户端通过调用本地的接口(API)来发起RPC请求,这个接口其实是代理类,它隐藏了远程调用的细节。序列化: 客户端调用后,框架将请求数据(包括方法名、参数等)序列化为字节流(通常使用JSON、XML或...阅读全文

博文 2025-03-09 10:50:15 lkjhgf

大厂学苑 RPC框架核心源码深度解析 RPC框架概述

RPC 即远程过程调用(Remote Procedure Call),它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 框架就是实现这种远程调用的工具,它允许开发人员像调用本地函数一样调用远程服务器上的函数,将网络通信和远程调用的细节封装起来,使开发者可以更专注于业务逻辑的实现。获课:keyouit.xyz/1940/获取ZY↑↑方打开链接↑↑客户端 stub:当客户端应用程序调用一个远程函数时,实际上是调用了客户端 stub。客户端 stub 负责将调用的参数打包成一个消息,这个过程称为 “序列化”。然后,它将消息通过网络发送到服务器端。服务发现:RPC 框架需要提供一种机制,让客户端能够发现可用的服务。这可以通过注册中心来实现,服务器在启动时将自己的服务...阅读全文

博文 2025-03-11 16:05:55 huo1234567

大厂学苑 -RPC框架核心源码深度解析

https://97it.top/1940/ 摘要 远程过程调用(RPC,Remote Procedure Call)是一种通过网络协议让不同地址空间的程序能够相互通信的技术。随着分布式系统和微服务架构的普及,RPC成为了实现服务间通信的基础协议之一。本文通过对RPC框架核心源码的深度解析,详细探讨RPC框架的工作原理、架构设计及关键技术实现,包括服务发现、序列化、通信协议、负载均衡等内容。通过源码分析,本文旨在帮助开发者理解RPC框架的底层实现,提升对分布式系统开发和优化的理解和能力。 1. 引言 随着互联网技术的发展,系统架构逐渐从单一的集中式架构转向分布式架构,尤其是微服务架构的流行,使得不同服务之间的通信成为了构建分布式系统时的重要任务。而RPC(Remote Procedure C...阅读全文

博文 2025-03-06 20:01:09 92834L

学院RPC框架核心源码深度解析 完结

课程内容概述1. RPC基础概念获课:eyouit.xyz/1940/获取ZY↑↑方打开链接↑↑定义与作用:介绍什么是RPC,以及它在分布式系统中的重要性。工作流程:详细解释RPC的工作流程,包括客户端请求、服务端处理、响应返回等环节。2. 主流RPC框架简介比较和对比不同的RPC框架,如gRPC, Apache Dubbo, Thrift等,了解它们的特点和适用场景。3. 核心组件详解序列化/反序列化:探讨数据如何在网络中传输,涉及的格式(如Protocol Buffers, JSON等)及其实现。网络通信:讨论底层网络协议的选择(TCP/UDP),以及如何高效地进行数据交换。服务注册与发现:解释服务提供者和服务消费者之间是如何找到对方的,常用的服务注册中心有Zookeeper, Cons...阅读全文

博文 2025-03-11 16:04:44 huo1234567

Go微服务精讲:Go-Zero全流程实战即时通讯(13章全)

获课♥》jzit.top/5059/《Go-Zero 助力即时通讯微服务:性能优化与功能实现全解析》在当今的数字化时代,即时通讯已成为人们日常生活和工作中不可或缺的一部分。随着用户量的激增和需求的多样化,即时通讯系统的性能优化和功能实现成为了开发者们面临的重要挑战。而Go-Zero,作为一款高性能、可扩展的微服务框架,为即时通讯系统的构建提供了强有力的支持。本文将聚焦于Go-Zero在即时通讯微服务中的性能优化以及各项功能实现的全方位解析,旨在满足读者对如何提升性能和实现功能的强烈求知欲。一、Go-Zero框架简介Go-Zero是一个基于Go语言开发的微服务框架,它集成了RPC通信、服务发现、负载均衡、熔断降级等一系列微服务治理功能。通过简洁的API设计和高效的性能表现,Go-Zero为开发...阅读全文

博文 2025-04-07 12:37:30 dvfdf

Spring Cloud / Alibaba 微服务架构实战

Spring Cloud / Alibaba 微服务架构实战终极Spring Cloud/Alibaba微服务架构:构建现代化分布式系统微服务架构已成为现代企业级应用开发的主流范式,“获课”而Spring Cloud与Spring Cloud Alibaba提供了完整的微服务解决方案。itxt.top/1910/ 本文将深入探讨如何利用这些技术栈构建高可用、可扩展的分布式系统。1. 微服务架构核心组件Spring Cloud与Spring Cloud Alibaba生态对比功能模块Spring CloudSpring Cloud Alibaba服务注册与发现EurekaNacos配置中心Spring Cloud ConfigNacos Config服务熔断降级HystrixSentinel服...阅读全文

博文 2025-04-12 09:52:00 xiao_wen123

2024码神之路-码神学堂,码神RPC项目,独家Java面试宝典

2024码神之路-码神学堂,码神RPC项目,独家Java面试宝典拼课》》》❤ 789it.top/14114/“掌握码神RPC项目,解锁Java面试难题的钥匙”这句话看起来像是在描述通过学习一个名为“码神RPC”的项目来帮助解答或解决Java面试中的复杂问题。RPC(远程过程调用)是分布式系统中常用的技术,通常用于不同服务间的通信。在Java开发中,掌握RPC相关的知识可以帮助开发者更好地理解分布式架构,并为面试中的技术问题提供有力的支持。如果你指的是如何掌握RPC并利用它在Java面试中脱颖而出,这里有几个关键点可以帮助你:1. 理解RPC基础RPC概念:远程过程调用(Remote Procedure Call)允许一个程序调用另一个程序(通常位于不同计算机上)中的函数,就像调用本地函数一...阅读全文

博文 2025-04-18 14:13:57 dfdgl

码神RPC项目,独家Java面试宝典

码神RPC项目,独家Java面试宝典码神RPC项目深度解析:架构设计与性能优化实践在当今分布式系统架构中,RPC(远程过程调用)作为服务间通信的核心技术,“获课”其性能与可靠性直接影响着整个系统的表现。itxt.top/14140/ 本文将深入剖析码神RPC项目的架构设计、性能优化策略以及企业级扩展能力,为开发者提供一份全面的高性能RPC框架实现指南。从动态序列化优化到服务网格集成,从分层通信模型到高并发处理机制,我们将逐一揭示码神RPC如何在保证高性能的同时满足企业级应用的严苛要求。无论你是希望深入理解RPC原理,还是正在寻找优化现有RPC框架的方案,本文都将为你提供宝贵的实践洞见。码神RPC项目概述码神RPC是一款面向企业级应用的高性能远程过程调用框架,它通过创新的架构设计和精细的性能优...阅读全文

博文 2025-04-18 10:05:44 xiao_wen123

码神RPC项目,独家Java面试宝典

码神RPC项目,独家Java面试宝典​拼课》》》❤ jzit.top/14242/RPC(Remote Procedure Call,远程过程调用)与Java之间存在着紧密的关联。以下是对RPC与Java关联的详细阐述:一、RPC在Java中的应用概念与原理RPC是一种允许程序调用另一台计算机上的函数或方法的技术,就像调用本地函数一样。它隐藏了网络通信的细节,使得分布式系统中的应用程序开发更加简单。在Java中,RPC同样可以实现跨进程甚至跨网络的远程方法调用。Java中的RPC实现除了RMI之外,Java中还有多种RPC框架可供选择,如gRPC、Apache Dubbo等。这些框架提供了更丰富的功能和更好的性能,支持多种传输协议和数据格式。RMI是Java特有的一种RPC实现方式,它允许一...阅读全文

博文 2025-04-16 16:15:14 dfgfgh

2024码神之路-码神学堂,码神RPC项目,独家Java面试宝典

2024码神之路-码神学堂,码神RPC项目,独家Java面试宝典​拼课》》》❤ 789it.top/14114/RPC(Remote Procedure Call,远程过程调用)框架是一种在分布式系统中用于实现不同节点间通信的协议和技术。通过RPC框架,客户端可以像调用本地函数一样调用远程服务器上的函数或方法,简化了网络通信的复杂性。RPC的工作原理客户端请求:客户端通过RPC框架调用一个本地的方法或函数,这个调用实际上是一个远程调用的代理。请求序列化:客户端会将方法的参数和调用信息(如方法名、参数类型等)进行序列化,以便通过网络传输。网络传输:序列化后的数据通过网络发送到服务器端。服务端反序列化:服务端接收到请求后,会对数据进行反序列化,将其恢复成原始的调用信息。远程调用执行:服务器端根据...阅读全文

博文 2025-04-16 16:06:34 dfgfgh