redis微应用镜像
suma redis 微应用镜像是基于 redis 5.0 源代码进行二次开发的一个redis 微容器集群镜像。
在原有reids 命令的基础上增加了suma apollo微容器相关的命令
- sumavlib.suma_ci_task
- sumavlib.suma_keep_alive
- sumavlib.suma_try_leader
- sumavlib.suma_vip_list
- sumavlib.suma_vip_register
- sumavlib.suma_vip_server_list
- sumavlib.suma_vip_kill
- sumavlib.suma_vip_reset
- sumavlib.suma_diamond_publish
- sumavlib.suma_diamond_list
一. 原语API概览
1 选举leader
sumavlib.suma_try_leader #1 #2
- 参数 1 master_vipkey 由owner和业务id + "master" 构成
- 参数 2 当前主机的vip地址
- 主返回1 , 从返回 0
例 sumavlib.suma_try_leader wangwenbo_test_master
2 获取主机VIP列表
sumavlib.suma_vip_list #1 #2
- 参数1 master vip
- 参数2 查询串
- 返回 活跃主机vip列表
根据在线主机会根据存活状态,对vip进行lru缓存, 如果失联则会被系统逐出。
例 sumavlib.suma_try_leader wangwenbo_test_master suma*
3 激活主机状态
sumavlib.suma_keep_alive #1 #2 #3
- 参数1 master_vipkey 由owner和业务id + "master" 构成
- 参数2 当前主机的vip地址
- 参数3 vip 列表索引模式
- 返回 主返回vip 列表 , 从返回主vip
例 sumavlib.suma_keep_alive vip vip vip*
4 强制摘除某个主机流量
sumavlib.suma_vip_kill #channel #vip
- 参数1 订阅的频道id
- 参数2 需要摘除的主机vip
- 返回 成功返回1 失败返回0
例 sumavlib.suma_vip_kill subid vip
这个api是私有的原语, 只能摘除掉该vip对应主机的流量。
5 强制恢复某个主机流量
sumavlib.suma_vip_reset #channel #vip
- 参数1 订阅的频道id
- 参数2 需要摘除的主机vip
- 返回 成功返回1 失败返回0
例 sumavlib.suma_vip_reset subid vip
这个api是私有的原语, 恢复vip对应主机的流量。
6 订阅的频道发布
sumavlib.suma_message_publish #channel #cmd json
- 参数1 订阅的频道id
- 参数2 需要处理的json命令
- 返回 成功返回1 失败返回0
例 sumavlib.suma_message_publish subid cmd
这个api是私有的原语, 所有该owner下的业务id一致的vip 主机都会收到广播。
7 diamond配置发布
sumavlib.suma_diamond_publish #channel #cmd json #key
- 参数1 订阅的频道id
- 参数2 需要存储的key
- 参数3 需要存储的value
- 返回 成功返回1 失败返回0
例 sumavlib.suma_diamond_publish subid key value
这个api是私有的原语, 所有该owner下的业务id一致的vip 主机都会收到广播。
sumavlib.suma_diamond_publish owner_idbuiness_idchannel key value
8 diamond配置索引列表
sumavlib.suma_diamond_list #1
- 参数1 非阻塞搜索模式
- 返回 索引的list
例 sumavlib.suma_diamond_list pp*
该非阻塞索引搜索模式是无序的迭代, 最大数量100。
9 租户vip列表
sumavlib.suma_vip_server_list #1
- 参数1 非阻塞搜索模式
- 返回 索引的list
例 sumavlib.suma_vip_server_list pp*
10 租户vip注册
sumavlib.suma_vip_register_list #1
- 参数1 非阻塞搜索模式
- 返回 索引的list
例 sumavlib.suma_diamond_list pp*
启动
sh rm_all_container.sh ip=`cat /home/admin/local_ip`
docker run -it -v /home/admin/logs2:/home/admin/logs
--env LOCAL_IP="$ip"
--env CONTAINER_TYPE="docker"
--env APOLLO_OWNER_ID="agent.zy"
--env APOLLO_BUINESS_ID="test"
--env APOLLO_PORT=9001
-p 9002:10082 -p 9001:8090
--rm registry-1.docker.io/459733390/suma_apollo_redis:latest
suma redis 镜像微化后尺寸缩减到15m ,各个租户完全隔离, 可使用suma apollo微容器进行容器管理和动态扩缩。
可以使用镜像源管理镜像,也可以使用压缩包的方式使用, 这个微容器的镜像依然是符合oci标准的容器, 所以只要目标机上存在docker软件, 我们就可以动态进行部署,所以基于suma apollo 微容器引擎的镜像都可以达到1秒内在线部署完成。
目标是租户的资源(redis,vcpu,应用, 数据等)隔离, 租户可以在线
弹性购买资源,并且组装的到租户自己的业务逻辑链路里。
以上是 redis微应用镜像 的全部内容, 来源链接: utcz.com/z/518142.html