框架特色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 文件操作 读取字节级数据(读取)

    package com.swust; import java.io.*; /* * 功能:按照双精度浮点型.整型.布尔型.字符型.和字符串型的顺序从名为sample.dat文件读取数据 * 分析:用F ...

  2. xml类型转换列表显示 SQL查询

    数据库中存在字段类型为xml 的数据, 现举例 xml 字段存储的数据为: <MortgageInfoShipList> <ITEMS> <ITEM> <Sh ...

  3. tomcat基础应用

    1. Tomcat版本和支持的API和JDK版本 Apache Tomcat Servlet API JSP API JDK 7.0 3.0 2.2 1.6 6.0 2.5 2.1 1.5 5.5 2 ...

  4. windows下部署免费ssl证书(letsencrypt)

    随着网络的发展,网络安全也越来越重要,对于网站来说,从Http升级到https也是我们要做的首要事情.要实现https,首先我们需要申请一张SSL证书,这篇文章我主要介绍下边这几个方面: 1. SSL ...

  5. web请求

    概述 发起一个http请求的过程就是建立一个socket通信的过程. 我们可以模仿浏览器发起http请求,譬如用httpclient工具包,curl命令等方式. curl "http://w ...

  6. python2.6.6安装MySQL-python模块正确方法

    Centos6.5 x64 系统python2.6.6安装MySQL-python模块 一.安装前准备 操作系统:centos6.5 x64 ·安装python和python开发工具 python p ...

  7. 【2017年新篇章】 .NET 面试题汇总(一)

    开篇 本次给大家介绍的是我收集以及自己个人保存一些.NET面试题 简介 此次包含的不止是.NET知识,也包含少许前端知识以及.net面试时所涉及的种种考点,希望能给找工作的同学们哪怕一点点帮助. 古人 ...

  8. 启动APEX

    --  查看数据库参数 SQL>  select * from nls_database_parameters; -- 查看数据库基本信息 SQL>  select * from v$da ...

  9. 【openstack N版】——创建云主机

    一.启动实例 1.1 已准备服务介绍 MySql:为各个服务提供数据存储. RabbitMQ:为各个服务之间通信提供交通枢纽. keystone:为各个服务之间通信提供认证和服务注册. Glance: ...

  10. 深入理解ajax系列第三篇——响应解码

    前面的话 我们接收到的响应主体类型可以是多种形式的,包括字符串String.ArrayBuffer对象.二进制Blob对象.JSON对象.javascirpt文件及表示XML文档的Document对象 ...