框架特色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调用方式
部署consul
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张表 结构如下

services 服务表

nodes 服务节点表
 

创建好db后
 
2.配置环境
配置1步骤中部署的db

配置之前部署的consul地址
 
打开服务治理系统
 
如何使用?
1.创建一个服务
 
 
 
2.创建一个web服务[TestHelloWorld]
 
 
新建一个 global.asax

 
添加soa 框架的引用
 
我们开始写契约(建议新建一个Contract的文件夹)
 
然后编辑 刚才添加的 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
例如我的服务治理中心的地址为
点击同步后
下一步
下一步
然后一直点击下一步直至结束
 
然后根据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

Ant.SOA微服务框架开源的更多相关文章

  1. 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)

    一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...

  2. atititi.soa  微服务 区别 联系 优缺点.doc

    atititi.soa  微服务 区别 联系 优缺点.doc 1. 应用微服务的动机,跟传统巨石应用的比较1 2. 面向服务架构(SOA)  esb2 3. 微服务架构(Microservices)2 ...

  3. 面试都在问的微服务、服务治理、RPC、下一代微服务框架... 一文带你彻底搞懂!

    文章每周持续更新,「三连」让更多人看到是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) 单体式应用程序 与微服务相对的另一个概念是传统的单体式应用程序( ...

  4. 基于thrift的微服务框架

    前一阵开源过一个基于spring-boot的rest微服务框架,今天再来一篇基于thrift的微服务加框,thrift是啥就不多了,大家自行百度或参考我之前介绍thrift的文章, thrift不仅支 ...

  5. 基于spring-boot的rest微服务框架

    周末在家研究spring-boot,参考github上的一些开源项目,整了一个rest微服务框架,取之于民,用之于民,在github上开源了,地址如下: https://github.com/yjmy ...

  6. 【GoLang】GoLang 微服务、开源库等参考资料

    参考资料: GoLang书籍: https://github.com/dariubs/GoBooksGo名库: https://github.com/Unknwon/go-rock-libraries ...

  7. 【GoLang】golang 微服务框架 go-kit

    golang-Microservice Go kit - A toolkit for microservices kubernetes go-kit_百度搜索 Peter Bourgon谈使用Go和& ...

  8. 基于.NET CORE微服务框架 -谈谈surging API网关

    1.前言 对于最近surging更新的API 网关大家也有所关注,也收到了不少反馈提出是否能介绍下Api网关,那么我们将在此篇文章中剥析下surging的Api 网关 开源地址:https://git ...

  9. 基于.NET CORE微服务框架 -浅析如何使用surging

    1.前言 surging受到大家这么强烈的关注,我感到非常意外,比如有同僚在公司的分享会上分享surging, 还有在博客拿其它的RPC框架,微服务做对比等等,这些举动都让我感觉压力很大,毕竟作为个人 ...

随机推荐

  1. java线程并发控制:ReentrantLock Condition使用详解

    本文摘自:http://outofmemory.cn/java/java.util.concurrent/lock-reentrantlock-condition java的java.util.con ...

  2. java gui三个组件的使用

    链接: http://blog.sina.com.cn/s/blog_614f347b0101egah.html 代码: import java.awt.*; import java.awt.even ...

  3. 如何修改Window系统下PATH路径以及win8下masm32V11

    如何修改Window系统下PATH路径   //其实这个都是临时性的, 退出dos窗口就没有用了,只是做个笔记罢了   C:\Users\Administrator>    set path=E ...

  4. linux文件和目录权限

    linux系统文件和目录的权限说明 文件权限是Linux系统的第一道安全防线,基本的权限有读取(r).写入(w)和执行(x): 文件访问模式 读取:用户能够读取文件信息,查看文件内容. 写入:用户可以 ...

  5. [编织消息框架][设计协议]bit基础

    理论部分 1字节等于8比特,也就是8个二进数,如下面公式 1Byte = 8bits = 0111 1111 1Short = 2Btye 1Int = 4Byte 那学这些有什么用呢? 可以用来做数 ...

  6. VS2015在Windows 10 下面安装经验

    实体机环境:Windows 10 专业版(2017年2月28日 官方下载版本) VS2015:cn_visual_studio_enterprise_2015_with_update_3_x86_x6 ...

  7. Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven

    github地址,点这里. 项目效展示,点这里.账号:admin 密码:123456 下一篇文章开始,所有的项目源码都是与maven整合后的代码了,所以这一篇讲一讲maven. 1.简单介绍 我们看一 ...

  8. 规范 : angular ui router path & params

    在seo文章中提到url的path 必须是 why-us,而不是whyUS 所以定了规范,所有的path 必须why-us path ?后尾的是用来filter的,所以可以WhyUs 如果是不需要给s ...

  9. nginx配置之深入理解

    继上一篇<debian+nginx配置初探--php环境.反向代理和负载均衡>成功之后,有点小兴奋,终于不用整lvs那么复杂来搞定负载,但还是有很多概念没弄清楚. 什么是CGI.FastC ...

  10. observe.js 源码 学习笔记

    /** * observejs --- By dnt http://kmdjs.github.io/ * Github: https://github.com/kmdjs/observejs * MI ...