Java开发搭配Groovy

10 月 30 日
阅读 15 分钟
223
二者总需要妥协,Groovy、Python 这类脚本性语言提供了解法。底层Java平台功能不牵扯业务,尽量封装丰富的底层组件,一些业务性的逻辑都由脚本语言实现。

了解HTTP/2协议

10 月 28 日
阅读 8 分钟
222
HTTP/2(2015年发布)已经发布快10年了,云原生社区的RPC框架中,gRPC 是直接基于 HTTP/2 实现。Dubbo 框架的默认协议,也从原先基于 TCP协议 的 dubbo协议,换成基于 HTTP/1.1、HTTP/2的 triple协议。

gRPC - 在 Etcd 中的应用

10 月 26 日
阅读 4 分钟
179
Kubernetes:Kubernetes 的 API 服务器和其他组件(如 kubelet)之间的通信使用 gRPC 来实现高效的数据传输。

gRPC - 开发 2

10 月 26 日
阅读 25 分钟
156
ManagedChannel 是 gRPC 中用于管理客户端和服务器之间通信的核心组件。它负责连接的创建、管理、负载均衡、流量控制等功能。以下是 ManagedChannel 的主要功能和属性。

gRPC - 介绍与开发 1

10 月 26 日
阅读 22 分钟
262
gRPC 是一个高性能、开源的远程过程调用(RPC)框架,由 Google 开发。它旨在提供跨语言的通信能力,适用于从移动设备到数据中心服务器的各种环境。

常见序列化方式了解

10 月 7 日
阅读 10 分钟
291
网络传输过程中,选择不同的传输数据的序列化方式,对性能影响很大,尤其是高并发场景中。但至于选择一个什么样的序列化方式很重要,也不能一味只考虑性能,像 Dubbo协议中就支持多种可插拔的序列化库。

Apache HttpClient及其连接池使用

10 月 6 日
阅读 13 分钟
978
Apache HttpClient 是 Apache Software Foundation 旗下的一个开源项目,旨在为 Java 应用程序提供高效、可靠的 HTTP 客户端功能。它是 Apache HttpComponents 项目的一部分,该项目专注于创建和维护 HTTP 协议的组件。

OkHttp及其连接池使用

10 月 6 日
阅读 12 分钟
1k
OkHttp 是一个由 Square 公司开发的高性能 HTTP 客户端库,专门为 Java 和 Android 应用程序设计。Square 是一家知名的金融科技公司,开发了多个流行的开源项目。OkHttp 的设计初衷是为了解决 Android 平台上原生 HTTP 客户端(如 HttpURLConnection)的某些局限性,特别是在处理连接管理和缓存等方面。

dubbo框架 - dubbo协议介绍

10 月 5 日
阅读 14 分钟
319
主要用于两个dubbo系统之间作远程调用,特别适合高并发、小数据的互联网场景。反之,Dubbo 协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。

dubbo框架 - 服务消费者流程

10 月 4 日
阅读 4 分钟
325
1. 前言在 Dubbo 框架中,服务消费者通过 XML 配置方式引用服务时,涉及多个模块之间的协作。不放dubbo官方的设计图了,这里同样放一张自己画的服务消费者调用图,后面的介绍也是围绕这张图来的。以下是服务消费者引用服务时,各个模块之间的源码方法调用关系的详细说明。2. 简述过程在 dubbo-config-spring 项目模块中...

dubbo框架 - 服务提供者流程

10 月 4 日
阅读 3 分钟
347
在 Dubbo 框架中,服务提供者通过 XML 配置发布服务时,涉及多个模块之间的协作,包括 ServiceConfig、Protocol、Exporter、Registry、Exchange 和 Transport 等。

Resteasy 基于 Tomcat 开发

9 月 25 日
阅读 14 分钟
202
JAX-RS(Java API for RESTful Web Services)是 Java 平台的一项规范,旨在为开发 RESTful Web 服务提供支持。JAX-RS 定义了一组标准的 API 和注解,使得开发者可以通过简单的注解方式来开发基于 REST 架构风格的 Web 服务。

使用内嵌Tomcat

9 月 21 日
阅读 13 分钟
559
了解 SpringBoot 的人对内嵌 Tomcat 应该不陌生,内嵌 Tomcat 是指将 Tomcat Servlet 容器直接集成到应用程序中,作为应用的一部分运行,而不是作为一个独立的外部服务器。

Java SPI 机制

9 月 16 日
阅读 12 分钟
216
Java SPI(Service Provider Interface)机制是一种服务提供者框架,它是一种强大的工具,适用于需要高扩展性和灵活性的框架和库开发。通过定义服务接口和使用 ServiceLoader,开发者可以实现动态的服务发现和加载,使应用程序具备更强的适应能力。

Spring XML自定义命名空间

9 月 16 日
阅读 12 分钟
167
在使用 Spring 框架(非 SpringBoot)时,经常会遇到各种在 XML 文件中配置 Bean 的场景。一些框架会自定义 XML 元素,例如 Dubbo 框架中配置 <dubbo:service ...>。这些元素是怎么定义的呢?

ZooKeeper Curator 使用示例

8 月 13 日
阅读 23 分钟
548
Apache Curator 是一个用于简化 Apache ZooKeeper 使用的 Java 库。它提供了一组高层次的 API 和实用工具,帮助开发者更轻松地与 ZooKeeper 集成并使用其功能。ZooKeeper 本身是一个强大的分布式协调服务,但其原生 API 相对底层,并且在处理连接管理、重试机制和会话恢复等方面需要较多的手动处理。Curator 旨在解决这...

了解代码中的内存占用

7 月 14 日
阅读 10 分钟
408
如果并发量很高,临时对象创建的很多,总体的内存占用量瞬间就上去了。虽然每次请求完成后对象的引用关系解除了,对象内存会在Jvm的下一次GC中被释放掉。但如果一直并发度高,整体来看内存占用量不会因为GC而减少。

学会使用BitSet

6 月 23 日
阅读 12 分钟
1.1k
java.util.BitSet 是一个高效的位数组,用于管理和操作二进制标志位。它不仅在空间上非常节省,而且在处理一系列布尔值时非常高效。下面详细介绍 BitSet 的实现原理和使用方法。

RocksDB介绍

6 月 16 日
阅读 10 分钟
1.3k
1. 诞生RocksDB 是一个高性能的键值存储引擎,由 Facebook 开发并开源,起源于 Google 的 LevelDB。发展历程2012 年:Facebook 开始在 LevelDB 的基础上开发 RocksDB。2013 年:RocksDB 首次开源,成为 GitHub 上的一个项目。持续改进:自开源以来,RocksDB 得到了社区的广泛关注和贡献,Facebook 也持续改进和优化 Rock...

Etcd常用场景

6 月 10 日
阅读 14 分钟
713
Etcd 可以用来注册和发现分布式系统中的服务。服务实例在启动时将其信息注册到 Etcd 中,其他服务可以查询 Etcd 获取可用的服务实例列表。

Etcd基本使用

6 月 10 日
阅读 17 分钟
846
etcd 提供了强一致性(Strong Consistency)。所有写操作都必须通过当前的领导者节点(Leader),并在多数追随者节点(Followers)确认后才会被提交。

Etcd的诞生与设计

6 月 8 日
阅读 2 分钟
535
Etcd 是一个分布式的、高可用的键值存储系统,主要用作服务发现和配置共享。它是开源的,由 CoreOS 公司(现在已被 Red Hat 收购)开发,并且是 Kubernetes 等现代分布式系统的基石之一。

Redis pipeline使用

6 月 2 日
阅读 5 分钟
778
Redis Pipeline 是一种可以显著提高 Redis 操作性能的技术,特别在需要进行大量命令的情景下。它允许客户端在不等待服务器响应的情况下,连续发送多条命令,从而减少网络往返次数。

Raft协议及ZAB协议

5 月 5 日
阅读 5 分钟
560
Raft 协议是一个为分布式系统提供强一致性的一种共识算法,它是为了替代复杂难懂的 Paxos 算法而生的。使用 Raft 协议的 etcd,可以确保集群状态的强一致性。这对于分布式系统来说是至关重要的,例如在 Kubernetes 这样的系统中,etcd 被用作保存集群的状态,强一致性能确保所有节点看到的状态都是一致的。

Netty开发及粘包解决

2 月 15 日
阅读 18 分钟
1.1k
1. Netty介绍Netty是一款开源的Java网络编程框架,广泛应用于很多高流量的服务器端应用程序:异步和事件驱动:Netty基于NIO(非阻塞I/O)构建,操作都是异步回调来触发事件,如连接建立、数据到达等。高性能:Netty的一大优点就是高性能。它的设计能够让你最大限度地利用现代的多核硬件。灵活的协议支持:Netty支持各种...

StarRocks Bitmap、HLL去重

2 月 15 日
阅读 5 分钟
1.3k
作为OLAP数据库,StarRocks 诞生之初的核心使用场景就是统计报表,避免不了有统计去重的需求。以如来的业务需求举例,在统计命中某个标签的人数时,显然是需要基于用户ID去重的。 海量数据的去重,是不能使用传统的 count distinct 方式的,例如下图2个BE节点上的数据,就需要进行多次运算。StarRocks 提供两种高效的去...

StarRocks 介绍

2 月 15 日
阅读 4 分钟
1.9k
在使用 StarRocks 之前,短暂的先学习了解过 ClickHouse。ClickHouse 的起源和 StarRocks 有很多相似性。

StarRocks 建表与索引

1 月 1 日
阅读 13 分钟
2.1k
明细模型并不会对数据做任何处理,DUPLICATE KEY 只用于定义排序键,相同 DUPLICATE KEY 的记录会同时存在。 所以推荐用来存储原始的日志明细数据。