haloiq / camellia

camellia framework by netease-im. provider: 1) redis-client; 2) redis-proxy(redis-sentinel/redis-cluster); 3) hbase-client; 4) id-gen; 5) feign-client(enhance); 6) toolkits

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

camellia(ENGLISH

Camellia是网易云信开发的服务器基础组件,所有模块均已应用于网易云信线上环境

GitHub Maven Central

介绍

camellia主要包括以下功能模块:

camellia-redis

  • 这是一个封装了jedis(2.9.3)的redis客户端,主要的类是CamelliaRedisTemplate
  • 屏蔽了访问redis-standalone/redis-sentinel/redis-cluster的区别(jedis访问上述三种redis服务器的api是不一样的)
  • 支持pipeline、mget、mset等操作(jedis不支持使用pipeline访问redis-cluster,也不支持跨slot场景下使用mget、mset命令访问redis-cluster)
  • 支持透明的访问从节点(当前支持redis-sentinel)
  • 支持自定义分片、读写分离、双(多)写、双(多)读
  • 提供了一些常有的工具类,如分布式锁等
  • 支持Jedis适配器,一行代码从Jedis切换到CamelliaRedisTemplate
  • 支持SpringRedisTemplate适配器,不修改一行代码迁移到CamelliaRedisTemplate
    快速开始

camellia-redis-proxy

  • 基于netty4开发的一款redis代理,支持redis-standalone/redis-sentinel/redis-cluster
  • 支持自定义分片、读写分离、双(多)写、双(多)读
  • 支持多租户(可以同时代理多组路由,可以通过不同的登录密码来区分)
  • 支持读从节点(redis-sentinel、redis-cluster都支持)
  • 支持丰富的监控,如TPS、RT、热key、大key、慢查询、连接数等
  • 支持自定义方法拦截,支持热key缓存(GET命令),支持透明的数据转换(如解压缩、加解密)等
  • 支持整合hbase实现string/zset/set等数据结构的冷热分离存储操作
  • 支持整合mq(如kafka)实现异地的数据双写同步
    快速开始

camellia-id-gen

提供了多种id生成算法,开箱即用,包括:

  • 雪花算法(支持设置单元标记)
  • 严格递增的id生成算法(步长支持动态调整)
  • 趋势递增的id生成算法(支持设置单元标记,支持多单元id同步)
    快速开始

camellia-hbase

  • 基于hbase-client封装的hbase客户端,主要的类是CamelliaHBaseTemplate
  • 支持读写分离、双(多)写
    快速开始

camellia-tools

提供了一些工具类,包括:

  • 压缩工具类CamelliaCompressor,支持LZ4压缩算法,压缩时判断阈值,解压时会检查是否压缩过(向下兼容)
  • 加解密工具类CamelliaEncryptor,支持AES相关算法,解密时会检查是否加密过(向下兼容)
  • 本地缓存工具类CamelliaLoadingCache,提供区别于Caffeine和Guava的load策略,适用于特定场景
  • 线程池工具类CamelliaHashedExecutor,提供哈希策略,相同hashKey确保顺序执行
    快速开始

camellia-feign

整合了camellia-core和open-feign,从而你的feign客户端可以:

  • 支持动态路由
  • 支持根据请求参数做自定义路由
  • 支持根据请求参数做自定义负载均衡
  • 支持双写、支持读写分离
  • 支持动态调整参数,如超时时间
    快速开始

版本

最新版本是1.0.55,已经发布到maven**仓库(2022/04/07)
更新日志

谁在使用Camellia

欢迎所有 Camellia 用户及贡献者在 这里 分享您在当前工作中开发/使用 Camellia 的故事

联系方式

微信: hdnxttl
email: zj_caojiajun@163.com

About

camellia framework by netease-im. provider: 1) redis-client; 2) redis-proxy(redis-sentinel/redis-cluster); 3) hbase-client; 4) id-gen; 5) feign-client(enhance); 6) toolkits

License:MIT License


Languages

Language:Java 100.0%