跳转至

v0.4.0

本次更新着重提升了Slime framework项目作为框架层的扩展能力,以及和各个模块之间的解耦, 以下分章节介绍本次变更的具体内容。

DATE: 20220323

framework

新功能

1.支持快速生成单个模块的项目

cd bin
bash gen_module.sh my_module

2.支持快速生成包含多模块的项目

cd bin
bash gen_bundle.sh my_bundle lazyload limiter

把新项目变成git项目,第一次提交后,你就可以构建镜像了。

使用样例:

只要在lazyload的InitManager函数中添加自定义http handler,如下所示,就可以得到一个新的api接口/lazyload/xxx

func (mo *Module) InitManager(mgr manager.Manager, env bootstrap.Environment, cbs module.InitCallbacks) error {

  // register custom api interface
  env.HttpPathHandler.Handle("xxx", livezHandler())

       // ...
       return nil
}

func livezHandler() http.Handler {
  return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
      if _, err := w.Write([]byte("Healthy!")); err != nil {
          log.Errorf("livez probe error, %+v", err)
      }
  })
}
  • 新增kind字段,模块名字可以是任意值,从而支持单模块多revision聚合打包,即以一个deployment运行多个不同revision的模块,详见 Module name and kind decoupling #140

现在你可以选择任意Slime模块聚合成一个项目,生成镜像,以一个Deployment形式运行!这大大简化了使用多个Slime模块时的部署维护难度。

除此以外,framework还支持同一个模块选择多次,配置不同的Revision,以处理不同类别的网络资源,就像Istio Revision所做的那样。

工程增强

lazyload 变更

新功能

工程增强

limiter 变更

新功能

工程增强

plugin 变更

新功能

工程增强

Back to top