MicroMono- 微服务框架

网友投稿 600 2022-10-17 08:14:00

MicroMono- 微服务框架

MicroMono 可以使用整体风格编写微服务。MicroMono 是一个使用 monolithic 风格开发微服务的框架,允许你切换和混合 微服务/整体风格,不需要修改代码。之前两者是通过 VS 连接,现在使用 micromono 可以很好的同时处理两者。

MicroMono 包括 3 部分:

Web 框架 (http 路由,中间件,页面渲染等等)远程方法调用 (RPC)前端代码管理 (JavaScript 和 CSS 静态资产文件)

MicroMono 包含两种类型的组件:

Balancer Service

代码示例

定义一个服务

// Require micromono and get the Service base classvar Service = require('micromono').Service;// Subclass Service class to define your service// (Backbone/Ampersand style inheritance)var SimpleHttpService = Service.extend({  // `route` is the object where you define all your routing handlers  route: {    'get::/hello/:name': function(req, res) {      // Basically, this handler function will be directly attached to      // internal express instance created by micromono. So, any express      // route handler could be ported to micromono without any modification.      var name = req.params.name;      res.send('Hello, ' + name);    }  }});The 'get::/hello/:name': function(req, res){...} part in above example equivalents to:var app = express();app.get('/hello/:name', function(req, res){  var name = req.params.name;  res.send('Hello, ' + name);});

服务初始化

var bodyParser = require('body-parser');var Service = require('micromono').Service;var MongoClient = require('mongodb').MongoClient;module.exports = Service.extend({  // initialization function takes no arguments  init: function() {    // get the internal express instance    var app = this.app;    // use a middleware    app.use(bodyParser.json());    var self = this;    // create a new promise instance    var promise = new Promise(function(resolve, reject){      // do the async operation (connect)      MongoClient.connect('127.0.0.1', function(err, db){        if (err) {          // reject the promise if there's an error          reject(err);          return;        }        self.db = db;        // resolve when done        resolve();      });    });    // init function should return a promise no matter what    return promise;  }});

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Elasticsearch 写流程
下一篇:HttpWebRequest的GetRespons偶尔超时、死掉的原因及解决办法
相关文章