orange

选型:使用orange系统

orange与kong的比较
1.kong整体代码上较凌乱, orange相对较有条理
2.kong本身不支持后台管理页面,只能通过api方式增,删,改plugin, orange支持页面操作(至少其模板,js 可以直接拿来使用)
3.功能上两者相近

orange系统流程

1)首先明确的是orange本身没有MVC框架, 对于数据库的引用也只是简单的require, 其结构比较简单,在实际开发中可能遇到的问题并不会很多, openrest本向就是以简单为主,涉及复杂的MVC框架反而可能会影响其速度。

2)后台管理使用的是lua的lor框架, 使用了rest full接口,框架本身较复杂, 在开发中可能会出现意想不到的问题,(比如框架本身的问题),为不牵扯太多时间,考虑使用php重新开发

3)orange执行流程比较鲜明, 在nginx不同阶段,调用不同的插件, 过滤用户行为

  在nginx启动时, 加载orange conf, mysql, plugins
  当url进入nginx时,执行指令access_by_lua_block中r的access()方法,该方法遍历plugin, 执行每个plugin中的access()方法

  例如限流:
  www.xueersi.com/1.php
  在进入nginx后, 执行到限流插件时,从共享内存中取出相应的规则,如果满足规则,则保存计数的值, 并放行, 否则禁止通过


目前选型已完成, 需要做的事情如下

一.后台管理系统重写(PHP语言)
  1)去掉后台管理系统中保存数据到mysql的逻辑,改为保存到配置中心(需要提供若干个api接口), 再由配置中心通知各个服务器来取最新数据,同时写到nginx的共享内存中
  2)该后台管理系统所的服务器也是配置中心下面的一个节点,也会pull最新的数据,并放到本地文件中
  3)在后台管理系统中有增,删,改操作的时候,把数据放到上面本地文件中合适位置,再将此文件的内容全部发送给配置中心
  4)本地文件中的内容格式为json, 数据基本参考orange中的数据

二. 配置中心:
  增加接收后台管理系统产生数据的api接口

三. 类似频控计数:
  计数统计的操作,由存储在mysql,改为在redis中保存

四. 逐步完成的功能

  鉴权功能:将其逻辑修改为plugin形式

  频控功能
  降级功能
  告警功能:
    通过api层次的统计: 成功次数,错误次数,异常次数
    通过系统层次的统计: 内存、磁盘、CPU等指标
         通过nginx层次的统计: 502 505

  AB测试
  降权功能
  数据合并功能

 

转载于:https://www.cnblogs.com/taek/p/7366368.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值