zoukankan      html  css  js  c++  java
  • 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测试
      降权功能
      数据合并功能

  • 相关阅读:
    MVC3、如何应用EntityFramework 连接MySql 数据库 Kevin
    DEV EXPRESS Summary Footer 不显示 Kevin
    装饰模式 Kevin
    Dev 控件 GridControl 控件 二次绑定数据源的问题。 Kevin
    System.InvalidOperationException 异常 Kevin
    LINQ to XML Kevin
    代理模式——代码版“吊丝的故事” Kevin
    VS2012 中的设备 面板 Kevin
    maven 学习笔记(三)创建一个较复杂的 eclipse+android+maven 工程
    maven 学习笔记(一)eclipse+android+maven
  • 原文地址:https://www.cnblogs.com/taek/p/7366368.html
Copyright © 2011-2022 走看看