• Stars
    star
    602
  • Rank 74,409 (Top 2 %)
  • Language
    Java
  • License
    MIT License
  • Created over 4 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Camellia provide easy-to-use server toolkits, such as: redis proxy、delay queue、id gen、hot key and more

camellia(ENGLISH

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

GitHub Maven Central

介绍

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

camellia-redis-proxy

基于netty4开发的一款高性能redis代理

  • 支持redis-standalone/redis-sentinel/redis-cluster
  • 支持普通的GET/SET/EVAL,也支持MGET/MSET,也支持阻塞型的BLPOP,也支持PUBSUB和TRANSACTION,也支持STREAMS/JSON/SEARCH,也支持TAIR_HASH/TAIR_ZSET/TAIR_STRING
  • 支持自定义分片、读写分离、双(多)写、双(多)读
  • 支持多租户(可以同时代理多组路由,可以通过不同的登录密码来区分)
  • 支持多租户动态路由,支持自定义的动态路由数据源
  • 支持读从节点(redis-sentinel、redis-cluster都支持)
  • 高可用,可以基于lb组成集群,也可以基于注册中心组成集群,也可以伪装成redis-cluster组成集群
  • 支持自定义插件,并且内置了很多插件,可以按需使用(包括:大key监控、热key监控、热key缓存、key命名空间、ip黑白名单、速率控制等等)
  • 支持丰富的监控,如TPS、RT、热key、大key、慢查询、连接数等
  • 支持整合hbase实现string/zset/hash等数据结构的冷热分离存储操作
    快速开始

camellia-id-gen

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

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

camellia-delay-queue

基于redis实现的延迟队列服务:

  • 独立部署delay-queue-server服务器,支持水平扩展,支持多topic,以http协议对外提供服务(短轮询or长轮询),支持多语言客户端
  • 提供了一个java-sdk,并且支持以spring-boot方式快速接入
  • 支持丰富的监控数据
    快速开始

camellia-hot-key

热key探测和缓存服务:

  • 支持热key探测,也支持热key缓存,也支持topN统计
  • 支持丰富的自定义扩展口(热key通知、topN通知、热key规则数据源、热key缓存命中统计)
  • 支持自定义注册中心(内置zk、eureka)
  • 支持丰富的监控数据
    快速开始

camellia-redis(enhanced-redis-client)

这是一个封装了jedis(2.9.3/3.6.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)
  • 支持自定义分片、读写分离、双(多)写、双(多)读
  • 支持动态配置变更
  • 提供了一些常用的工具类,如分布式锁、计数器缓存、频控等
    快速开始

camellia-hbase(enhanced-hbase-client)

基于hbase-client封装的hbase客户端,主要的类是CamelliaHBaseTemplate

  • 支持读写分离、双(多)写
  • 支持动态配置变更
    快速开始

camellia-feign(enhanced-feign-client)

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

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

camellia-cache(enhanced-spring-cache)

基于spring-cache二次开发:

  • 支持redis,也支持本地缓存(Caffeine)
  • 支持基于注解执行mget,mevict等批量操作
  • 支持不同的过期时间、支持设置是否缓存null值
  • 支持自定义的序列化/反序列化,默认使用jackson,并且支持缓存值的压缩
  • 支持一键刷新缓存(动态调整缓存key的前缀)
    快速开始

camellia-tools

提供了一些简单实用的工具类,包括:

  • 解压缩
  • 加解密
  • 线程池
  • 熔断
  • 分布式锁
  • ......
    快速开始

版本

最新版本是1.2.9,已经发布到maven中央仓库(2023/06/02)
更新日志

谁在使用Camellia

如果觉得 Camellia 对你有用,欢迎Star/Fork
欢迎所有 Camellia 用户及贡献者在 这里 分享您在当前工作中开发/使用 Camellia 的故事

联系方式

微信: hdnxttl
email: [email protected]

More Repositories

1

NIM_Duilib_Framework

网易云信Windows应用开发框架。
C++
2,058
star
2

NIM_Web_Demo_H5

网易云信Web Demo Html5 移动端适配。【推荐客户得京东卡,首次推荐成单得1500元京东卡,连续推荐2000元/单,上不封顶。】点击参与https://yunxin.163.com/promotion/recommend
Vue
356
star
3

NIM_Web_Weapp_Demo

网易云信,IM DEMO小程序版本。【推荐客户得京东卡,首次推荐成单得1500元京东卡,连续推荐2000元/单,上不封顶。】点击参与https://yunxin.163.com/promotion/recommend
JavaScript
225
star
4

NIM_iOS_SDK

网易云信 iOS SDK 发布仓库。【推荐客户得京东卡,首次推荐成单得1500元京东卡,连续推荐2000元/单,上不封顶。】点击参与https://yunxin.163.com/promotion/recommend
Ruby
124
star
5

NIM_ReactNative_Demo

JavaScript
108
star
6

phoenix

网易云信跨平台C++开发框架
C++
56
star
7

Basic-Video-Call

网易云信音视频示例项目,帮助你快速集成音视频SDK,实现一对一视频通话,包含加入/离开频道、开启/关闭视频、开启/关闭声音、切换前置/后置摄像头等功能。【推荐好友使用云信,即可获得1500元京东卡奖励】点击参与https://yunxin.163.com/promotion/recommend
C++
56
star
8

NIM_Android_SDK

云信Android SDK发布仓库
43
star
9

dev-blog

Share what we've optimized based on the NetEase YunXin services (IM, RTC, Live Streaming, etc.) 分享我们基于网易云信服务,做了哪些新的技术实践和优化。
39
star
10

weapp-netcall

网易云信视频DEMO小程序
JavaScript
27
star
11

Advanced-Video

演示了如何快速使用网易云信新一代(G2)实时音视频SDK实现屏幕共享、旁路推流、音视频质量管理、伴音、自定义视频采集等功能。
C++
26
star
12

NIM_Weapp_Chatroom_Demo

This is chatroom demo implement by chatroom sdk powered by netease im
JavaScript
24
star
13

nim-harmony-demo

云信IMSDK,鸿蒙使用Demo
HTML
23
star
14

NIM-Electron-Demo

云信Electron桌面版Demo with Web SDK-工程师版
JavaScript
17
star
15

NIM-CSharp-SDK

网易云信C# SDK
C#
16
star
16

CrossPlatform-SDK

云信跨平台 SDK 发布仓库(pc:win32)
C++
15
star
17

AudioChatRoom

Java
12
star
18

webrtcDemo

云信实时音webrtc sdk在移动端使用的相关实例demo
JavaScript
12
star
19

Quiz

网易云信直播竞答解决方案。【推荐客户得京东卡,首次推荐成单得1500元京东卡,连续推荐2000元/单,上不封顶。】点击参与https://yunxin.163.com/promotion/recommend
Objective-C
12
star
20

NIM_Android_AVChatKit

网易云信Android音视频组件源码仓库
Java
11
star
21

NIM_macOS_AVChat_Demo

Objective-C
11
star
22

NIMPushTool

Objective-C
10
star
23

node-nertc-sdk

C++
9
star
24

electron-fulltext-search-demo

electron 全文搜索方案的一个 demo
JavaScript
8
star
25

Signaling_Sample_Code

网易云信 信令SDK 示例代码仓库
C++
7
star
26

NIM_PC_SDK-CSharp

已废弃,请前往新仓库: https://github.com/netease-im/NIM-CSharp-SDK
C#
7
star
27

NIM_PC_SDK

云信Windows(PC) SDK发布仓库。
C
7
star
28

NIM_PC_DEMO-CSharp

已废弃,请前往新仓库: https://github.com/netease-im/NIM-CSharp-SDK
C#
6
star
29

NMCLiveStreaming

网易云信直播推流SDK(rtmp、tcp推流)
Objective-C
6
star
30

node-nim

NetEase IM nodejs wrapper based on NIM C++ SDK
TypeScript
5
star
31

NIM_Web_Education_Demo

JavaScript
5
star
32

whiteboard

云信互动版本sdk测试sample code
C++
4
star
33

NIM_Web_Weapp_NRTC

本示例为展示网易云信小程序音视频NRTC SDK能力
JavaScript
4
star
34

NIM_Android_RtsKit

网易云信Android RTS组件源码仓库
Java
4
star
35

react-native-nertc

云信在React Native 框架上的视频 SDK 实现,包含Android和IOS。
Java
4
star
36

Electron-SDK

网易云信ElectronSDK
3
star
37

NIM_ReactNative_Demo_0.61.5

JavaScript
3
star
38

VCloud_upload_JS_SDK

云信点播上传js SDK
JavaScript
2
star
39

innovation-2021

2
star
40

ne-s3

Rust
1
star
41

Embedded-SDK

网易云信嵌入式SDK
1
star
42

NIM_Resources

1
star
43

NeRTC-CSharp-SDK

适用于Windows x86平台的实时音视频SDK
C#
1
star
44

node-pre-build

A node tool to install pre-built sdk and addon.
JavaScript
1
star
45

im-code-example-web

云信 IM Web 端的示例代码
JavaScript
1
star