redis微应用镜像

编程

suma redis 微应用镜像是基于 redis 5.0 源代码进行二次开发的一个redis 微容器集群镜像。

在原有reids 命令的基础上增加了suma apollo微容器相关的命令

  1. sumavlib.suma_ci_task
  2. sumavlib.suma_keep_alive
  3. sumavlib.suma_try_leader
  4. sumavlib.suma_vip_list
  5. sumavlib.suma_vip_register
  6. sumavlib.suma_vip_server_list
  7. sumavlib.suma_vip_kill
  8. sumavlib.suma_vip_reset
  9. sumavlib.suma_diamond_publish
  10. 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

回到顶部