使用RpcLite构建SOA/Web服务
使用RpcLite构建SOA/Web服务
SOA框架系列
提到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
使用RpcLite构建SOA/Web服务的更多相关文章
- 使用RpcLite构建SOA/Web服务(Full .Net Framework)
使用RpcLite构建SOA/Web服务(Full .Net Framework) SOA框架系列 1. 使用RpcLite构建SOA/Web服务 2. 使用RpcLite构建SOA/Web服务(Fu ...
- 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务
原文地址:http://www.ibm.com/developerworks/cn/web/wa-restful/ 简介: Spring,构建 Java™ 平台和 Enterprise Edition ...
- 用于构建 RESTful Web 服务的多层架构
作者:Bruce Sun, Java 架构师, IBM 出处:http://www.ibm.com/developerworks/cn/web/wa-aj-multitier/ 用于构建 RESTfu ...
- 基于IIS构建Pyathon Web服务
本文简单叙述了在Windows下,如何利用IIS构建Python Web服务. 其主要步骤如下: 1.在IIS下构建一个站点,如图: 2.配置Python文件的处理程序,如图: 3.最后,在对应站点根 ...
- Guzzle – 构建 RESTful Web 服务的 PHP HTTP 框架
Guzzle 减轻了发送 HTTP 请求和创建 Web 服务客户端的痛苦.它包含建立一个强大的网络服务客户端的工具,包括:服务描述定义的输入和输出的 API,资源迭代器遍历分页资源,尽可能有效地发送大 ...
- WCF:为 SharePoint 2010 Business Connectivity Services 构建 WCF Web 服务(第 1 部分,共 4 部分)
转:http://msdn.microsoft.com/zh-cn/library/gg318615.aspx 摘要:通过此系列文章(共四部分)了解如何在 Microsoft SharePoint F ...
- SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务
一.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...
- 基于jersey和Apache Tomcat构建Restful Web服务(二)
基于jersey和Apache Tomcat构建Restful Web服务(二) 上篇博客介绍了REST以及Jersey并使用其搭建了一个简单的“Hello World”,那么本次呢,再来点有趣的东西 ...
- 基于jersey和Apache Tomcat构建Restful Web服务(一)
基于jersey和Apache Tomcat构建Restful Web服务(一) 现如今,RESTful架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来 ...
随机推荐
- 【习题 6-9 UVA - 127】"Accordian" Patience
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 链表模拟即可. 1pile不能加s... [代码] #include <bits/stdc++.h> using nam ...
- H5移动端IOS/Android兼容性总结,持续更新中…
H5移动端IOS/Android兼容性总结,持续更新中… 1. IOS不识别日期 new Date("2018-07-01 08:00:00")在Android下正常显示可以直接进 ...
- 【Codeforces Round #445 (Div. 2) D】Restoration of string
[链接] 我是链接,点我呀:) [题意] 给你n个字符串. 让你构造一个字符串s. 使得这n个字符串. 每个字符串都是s的子串. 且都是出现次数最多的子串. 要求s的长度最短,且s的字典序最小. [题 ...
- 在Java中,return null 是否安全, 为什么?
Java代码中return value 为null 是不是在任何情况下都可以,为什么不会throw NullPointerException? Java语言层面:null值自身是不会引起任何问题的.它 ...
- SpringBoot application.yml logback.xml,多环境配置,支持 java -jar --spring.profiles.active(转)
趁今天有时间整理了一下 启动命令为 //开发环境 java -jar app.jar --spring.profiles.active=dev--server.port=8060 //测试环境 jav ...
- 在Qtcreator中,KDE的Hello World(安装kdelibs5-dev)
我刚开始为KDE编程,我面临的问题是我不知道KDE项目的pro文件是什么,我有一个想法. 我还尝试了 file: 库 += -lkdeui 我还是找不到KApplication的问题 代码 main. ...
- 15、USB摄像头图片采集+QT显示
一.Qt的下载和的安装 关于Qt的安装,网络上有很详细的介绍.这里只做简单介绍. 需要的安装包一共有两个:Qt Creator 和QTE. 1)QT Creator 下载地址:qt-sdk-linux ...
- 洛谷 P3871 中位数
->题目链接 题解: 暴力 经鉴定,此题数据水到没朋友. #include<algorithm> #include<iostream> #include<cstdi ...
- TEMPDB
TEMPDB暴涨 阅读目录 前言 正文 原因 解决 补充 回到顶部 前言 tempdb暴增,造成磁盘空间不足,甚至影响业务运行. 回到顶部 正文 如图,tempdb log文件从7.4 ...
- cmder显示UTF-8字体
https://blog.csdn.net/x_iya/article/details/50627829 WIN+ALT+P打开配置 搜索chcp chcp 65001