框架特色部署consul 下载地址https://www.consul.io/ consul.exe agent -dev -advertise=192.168.1.2 -client 192.168.1.2 打开consul ui(http://192.168.1.2:8500/ui)确保访问没有问题 部署服务治理 1.系统的DB (sql文件在AntServiceStack.Manager\Config\antsoa_20170328.sql) 有2张表 结构如下
0.Service Management(服务治理) 1.CodeGen Contract First(契约先行) 2.consul服务发现 3.Plugin 可插拔 4.同时支持XML, JSON, Proto-buf(binary)等序列化格式同时支持Restful和RPC调用方式 5.统一的错误处理模型(Unified Error Handling Model) 6.统一的请求验证模型(Unified Request Validation Model) 7.熔断功能 8.支持Aajx, JSONP等Web 2.0调用方式
services 服务表
nodes 服务节点表
创建好db后 2.配置环境 配置1步骤中部署的db
配置之前部署的consul地址 打开服务治理系统
如何使用? 1.创建一个服务 2.创建一个web服务[TestHelloWorld] 新建一个 global.asax
添加soa 框架的引用 我们开始写契约(建议新建一个Contract的文件夹) 将https://github.com/yuzd/AntServiceStack/tree/master/AntServiceStack.Common/AntCommonTypes_V1里面的AntSOACommonTypes_V1.1.0.xsd 文件copy进来 然后编辑 刚才添加的 HelloWorld.xsd文件将common的引用进来 下面我们开始写接口的契约 首先得安装codegen 搜索 Ant.SOA.CodeGen 安装 [注意目前暂时只支持vs2015 vs2013如果有需要可以修改一下配置重新做一个vsix安装包即可] 假设我们想要下面的接口 接口名称为SayHello Request类型为Enum字段 0 代表中文 1代表日文 Response类型有一个字段(string) 为了配合codegen使用 有一些约定 1.Request的类型得已Request结尾 2.Response的类型得已Response结尾,必须带上公共的返回字段(因为框架有统一的错误处理模型(Unified Error Handling Model)) 使用CodeGen 将xsd转成 wsdl文件 第一次使用需要从服务治理中心同步一下 填写服务治理中心的访问地址 + Service/GetAllRemoteServices 例如我的服务治理中心的地址为 http://localhost/AntServiceStack.Manager/ 那么我填写http://localhost/AntServiceStack.Manager/Service/GetAllRemoteServices 点击同步后 下一步 下一步 然后一直点击下一步直至结束 然后根据wsdl 生成代码 先生成server端 生成Client ITestHelloWorldService.cs 有一个接口 我们要实现下这个服务 创建一个SoaController.cs 继承 ITestHelloWorld 并实现下功能 然后新建一个ServerHost.cs 继承 AppHostBase 配置服务发现 注意 web.config文件里面要配置consul的地址 和 框架指定的 httphandle 如下: F5启动 就会去consul注册服务 我们刷新服务治理中心的 【服务发现】 已经成功注册服务 框架已经继承了swagger-ui 可以很方便的对接口进行测试 到此为止 我们用Ant.soa做的服务已经发布上线了 如果你部署到多太机器 也是都可以成功上线的。 下面在介绍下如何把服务给到别人去使用 之前我们有介绍用codegen生成client端的cs文件 这个就是给到别人使用的契约 一般我们都是给dll文件对吧 生成好dll 下面我来搞一个console程序来测试这个client dll 来调用 刚才的服务 app要记得配置soa的服务中心的地址 加上 固定后缀为/antsoa demo下载地址
希望有兴趣的朋友加入我一起来完善这个框架 qq群609142508