微服务:简述Surging微服务架构
微服务:简述Surging微服务架构
Surging 自2017年6月16日开源以来,已收到不少公司的关注或者使用,其中既有以海克斯康超大型等外企的关注,也不乏深圳泓达康、重庆金翅膀等传统行业的正式使用,自2019年年初,surging2.0 便已正式进入研发阶段,也受到了surging 用户的关注。
本文将解读Surging 2.0的新特性和新功能。在开始之前先解答一下经常被提到的疑问。
Surging 有没有文档、Demo、官网
因为需要完善Surging,暂时个人还没有时间去写文档,准备官网,但是大家可以通过关注liuhll的博客,因为他正在写surging文档和 基于surging 的案例,
liuhll 文 档 :https://liuhll.github.io/hexo-blog-deploy/categories/微服务/
surging案例:https://github.com/liuhll/Surging.SampleSurging 有没有公司正在使用
因为Surging 是开源产品,无法统计哪家公司正在使用。何时支持Stage组件
对于Surging现在有一套独立的 surging 网关,而网关的设计违反了引擎组件化思想, 所以新的版本会基于KestrelHttpServer 组件扩展Stage,这样就能以组件模块化生成,以代替之前网关无法做到的缓存服务降级,复杂业务服务的聚合,文件服务的支持,大概8月底完工。是否会支持灰度发布
因为.net core 设计问题,暂时无法做到surging 灰度发布, 已将问题提交给coreclr,现已得到解决,等到3.0发布后,surging 也会开始支持灰度发布。
下面说说surging 中的组件,以及在其中充当的什么角色。
一、基于 Zookeeper 和 Consul 多注册中心集群支持
Surging 可以支持pull 和 push 两种方式来更新服务路由,而这两种方式是由consul 和zookeeper 来实现的,而pull 是利用心跳的方式,而 push 是利用Watch 的机制,而 同时 注册中心可以支持向多个注册中心注册服务路由,以同步注册服务。当基于pull 和watch更新的时候,可以通过随机算法来负载获取最新的服务路由来更新本地路由,可以通过以下代码配置多注册中心。
Consul (surgingSettings.json):
"Consul": {"ConnectionString": "${Register_Conn}|127.0.0.1:8500,127.0.0.1:9500", "SessionTimeout": "${Register_SessionTimeout}|50","RoutePath": "${Register_RoutePath}","ReloadOnChange": true,"EnableChildrenMonitor": false
}
Zookeeper(surgingSettings.json)
Zookeeper:{"ConnectionString":"${Zookeeper_ConnectionString}|127.0.0.1:2181, 127.0.0.1:2281","SessionTimeout": 50,"ReloadOnChange": true
}
ApiGateway
"Register": {"Provider": "Consul","Address": "${Register_Conn}|127.0.0.1:8500,127.0.0.1:9500"
}
二、基于swagger 利用业务模块生成API文档
ASP.NET Core Web API 使用Swagger 可以生成在线帮助测试文档,而surging 维护了一套 基于surging 的swagger 的引擎组件,以便支持业务模块使用Swagger 生成在线帮助测试文档。具体可以按照以下代码进行配置:
"Swagger": {"Info": {"Version": "${SwaggerVersion}|V1", // "127.0.0.1:8500","Title": "${SwaggerTitle}|Surging Demo","Description": "${SwaggerDes}|surging demo","Contact": {"Name": "API Support","Url": "https://github.com/dotnetcore/surging","Email": "fanliang1@hotmail.com"},"License": {"Name": "MIT", "Url":"https://github.com/dotnetcore/surging/blob/master/LICENSE"}},"Options": {"IgnoreFullyQualified": true}
}
而针对于业务模块生产的测试文档,我们可以通过设置AssemblyInfo.cs,具体代码如下:
using System.Reflection;
[assembly: AssemblyTitle("CommonModule")]
[assembly: AssemblyDescription("业务模块")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("fanly")]
[assembly: AssemblyProduct("surging Micro Service Framework")]
[assembly: AssemblyCopyright("Copyright © fanly All Rights Reserved.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
API文档 界面生成如下:
三、总结
surging 会让大家对.NET CORE微服务有个全新的认识,希望surging 发展越来越好。
微服务:简述Surging微服务架构相关推荐
- 谈谈surging 微服务引擎 2.0的链路跟踪和其它新增功能
一.前言 surging是基于.NET CORE 服务引擎.初始版本诞生于2017年6月份,经过NCC社区二年的孵化,2.0版本将在2019年08月28日进行发布,经历二年的发展,已经全部攘括了微服务 ...
- 微服务开发中的数据架构设计
前言 微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性,可以实现业务之间的松耦合.业务的灵活调整组合以及系统的高可用性.为业务创新和业务持续提供了一个良好的基 ...
- springcloud全局过滤_微服务技术SpringCloud 互联网网站架构演变过程
网站架构演变过程 传统架构 传统的SSH架构,分为三层架构 web控制层.业务逻辑层.数据库访问层. 传统架构也就是单点应用,就是大家在刚开始初学JavaEE技术的时候SSH架构或者SSM架构,业务没 ...
- 基于微服务的电商系统架构
分层 微服务设计 微服务微内核 基于微服务的电商系统架构 转载于:https://www.cnblogs.com/davidwang456/articles/9221369.html
- C++轻量级微服务_从微服务架构解析信源新一代“金融e采”产品
金融电采,信源信息 信源信息从事电子化采购软件开发已经有15个年头,进行金融保险类采购系统的开发也已经有十多年了. 信源信息针对金融领域客户量身定做的"金融e采"产品线,以前瞻的技 ...
- Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲
Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台: 微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...
- surging 微服务引擎 2.0 会有多少惊喜?
surging 微服务引擎从2017年6月至今已经有两年的时间,这两年时间有多家公司使用surging 服务引擎,并且有公司搭建了CI/CD,并且使用了k8s 集群,这里我可以说下几家公司的服务搭建情 ...
- 基于.NET CORE微服务框架 -谈谈surging的服务容错降级
一.前言 对于不久开源的surging受到不少.net同学的青睐,也受到.net core学习小组的关注,邀请加入.NET China Foundation 以方便国内.net core开源项目的推广 ...
- 开源微信管家平台——JeeWx 捷微4.0 微服务版本发布,全新架构,全新UI,提供强大的图文编辑器...
JeeWx捷微4.0 微服务版本发布^_^ 换代产品(全新架构,全新UI,提供强大的图文编辑器) JEEWX 从4.0版本开始,技术架构全新换代,采用微服务架构,插件式开发,每个业务模块都是独立的 ...
最新文章
- 【微软亚洲研究院MSRA】招聘多模态方向算法实习生
- Confd+Consul 配置文件动态生成
- [Object-C语言随笔之二] 《NSLog》常用的打印调试语句与自动排版
- 阳江市2021高考成绩查询一下,广东省阳江市2021年高级会计师考试结束后去哪查成绩?...
- 利用FFT计算非平稳随机信号WVD分布
- sublime text常用快捷键及多行光标批量操作教程
- Boost:移动容器的测试程序
- md5加密 java原理_md5 32位 加密原理 Java实现md5加密
- Swift 开发的工具类,主要是提供正则表达式及其它,Github会长期维护
- 1.4万+阅读量,这篇JAMA论文,详细阐述临床试验统计方法,非常值得借鉴!
- “当了十年IT程序员,我转型做自动驾驶开发的这五年”
- React事件的问题
- 纯小白成功安装交叉编译工具arm-none-eabi-gcc
- aspose-word主要标签结构图和标签详细作用
- mac automator 自动操作 使用初探
- 大数据时代来临了,你需要了解什么是大数据
- Archlinux无法启动vmware虚拟机
- 对于LSB的理解(位的LSB、模数转换的LSB
- 【2018-11-15】中证1000指数的估值详情
- C1认证:修改《植物大战僵尸》的文件以及code.org绘图以及bmp画图
热门文章
- 前端面试(1)——准备
- UE4 射线拾取三维画线
- 设计院设计项目管理与总承包设计管理,有哪些异同点?
- js常用插件(九)之移动端翻书效果turn.js
- html边框炫酷效果,6种炫酷的CSS3按钮边框动画特效_html/css_WEB-ITnose
- 2022.1.18(一测补题,树的遍历题目,并查集)
- 数字识别实例两种实现方式(tensorflow2.x):1.调用高级API 2.手写简单神经网络 3.手写深度神经网络(DNN)
- HTML5 canvas画板的制作
- zabbix的监控配置
- AT+CSQ:检查网络信号强度和SIM卡情况