• 使用RpcLite构建SOA/Web服务


    使用RpcLite构建SOA/Web服务

    SOA框架系列

    1. 使用RpcLite构建SOA/Web服务

     

    提到Web服务最先想到的就是WebService此外常用的还有WCF、ServiceStack、WebApi等。

    RpcLite是一个开源的轻量级SOA服务框架,除了基本的提供Web服务还包括SOA治理系统(本文暂不展开在后继的文章会详细说明)。RpcLite与WCF比较像,下面介绍使用方法。

    1.   创建一个Web项目,Framework选择>=4.0

     

    2.   从NuGet中添加RpcLite

     

     

    安装后项目中会添加一个TestService1.cs文件,此文件是一个最简单的服务提供一个接口GetDateTimeString返回当前时间的字符串

     

    Web.config也添加了相关的配置

     

    3.   修改配置

     

    到此为止,最简单有服务就已经完成了。F5运行在浏览器中把地址改为http://localhost:53189/api/test/GetDateTimeString可看到接口返回的结果,用JQuery, Ajax都可以访问了。

     

    4.   基本原理

    架构图

     

    RpcLite的入口是一个异步HttpHandler,在Handler中会把RequestUrl、ContentType、RequestStream、ResponseStream、HttpContext等放到一个新的ServiceContext中交给RpcService处理,RpcService会根据RequestUrl找到对应的Service及Action根据ContentType选择序列化方式(默认支持json、xml,可以添加自定义序列化方式),然后反序列化得到参数,再使用参数调用具体的服务方法,得到结果后返回给客户端。

    5.   配置文件说明

     

     

    再来看Web.config,

    标记1. 添加HttpHandler添加后对应地址的请求会被RpcAsyncHandler处理。

    标记2. 添加RpcLite配置节点处理器,添加后RpcLite就能读取RpcLite节点中的数据。

    标记3. 此处添加了一个服务,name只起识别作用最好不要重复,path确定此服务会处理来自哪些url地址的请求需要使用虚拟目录相对地址即以~/开头,type设置实现此服务的类格式是<类全名>, 程序集名。

    标记4. 这里是添加一个客户端配置,如果创建客户端实例时未指定服务url则会使用这里设置的path。如ClientFactory.GetInstance<ITestService>()此处未指定服务url就会从配置中查找。

    其它. appId、environment、namespace与治理系统相关此处不展开明说。

    代码从下面给出的git中获取。

    6.   相关链接

    Demo git 地址:https://github.com/chrishaly/RpcLiteDemo

    RpcLite git 地址:https://github.com/aolyn/RpcLite

    NuGet: https://www.nuget.org/packages/RpcLite

    QQ群:364617712 

    欢迎加入

    夜深了、写文章比写代码麻烦。这个框架前年2014年就写得差不多了,一直没时间介绍。有兴趣的朋友可以在git上fork & pull request。

    联系方式

    后继会有系列文章详细介绍

    thanks & regards.

    Chris

  • 相关阅读:
    六 .Flask 案例
    五 .Flask 蓝图(文件目录结构)
    四 .Flask 模板 中间件 特殊装饰器 CBV 正则 基础知识(使用)
    七 .Django 模板(template)
    三 .Flask 登录案例认证装饰器 session
    二 .Flask 配置文件 路由 视图 请求 响应 cookie session 闪现 基础知识(使用)
    一 .Flask介绍和基本使用
    一 .微信消息推送
    二 .redis在django中使用
    一 python+redis使用(字典 列表)
  • 原文地址:https://www.cnblogs.com/chrishwang/p/rpclite-brief-1.html
Copyright © 2020-2023  润新知