个人微服务观,surging 2.0将会带来多大的改变

Surging 自2017年6月16日开源以来,已收到很多公司的关注或者使用,其中既有以海克斯康超大型等外企的关注,也不乏深圳泓达康、重庆金翅膀等传统行业的正式使用,自2019年年初,surging2.0 便已正式进入研发阶段,也受到了surging 用户的关注,本文将为您解读2.0的新特性和新功能。在开始以前先解答一下常常被提到的疑问git

1.Surging 有没有文档、Demo、官网github

由于须要完善Surging,暂时我的尚未时间去写文档,准备官网,可是你们能够经过关注liuhll,由于他正在写surging文档和 基于surging 的案例,算法

liuhll 文档:https://liuhll.github.io/hexo-blog-deploy/categories/%E5%BE%AE%E6%9C%8D%E5%8A%A1/json

surging案例:https://github.com/liuhll/Surging.Sample缓存

2. Surging 有没有公司正在使用hexo

由于Surging 是开源产品,没法统计哪家公司正在使用,因此我提交了《surging 谁在使用》的issues, 你们能够去查看issues来知晓哪家公司正在使用,也请使用了surging的公司留下你所在公司的联系方式,以便收集有意向在生产上使用surging的客户,从而让surging社区和donetcore生态变得更加繁荣。ide

3. 什么时候支持Stage组件模块化

对于Surging如今有一套独立的 surging 网关,而网关的设计违反了引擎组件化思想, 因此新的版本会基于KestrelHttpServer 组件扩展Stage,这样就能以组件模块化生成,以代替以前网关没法作到的缓存服务降级,复杂业务服务的聚合,文件服务的支持,大概8月底完工微服务

4. 是否会支持灰度发布组件化

由于.net core 设计问题,暂时没法作到surging 灰度发布, 已将问题提交给coreclr,现已获得解决,等到3.0发布后,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")]

 界面生成以下:

总结

但愿你们研究下surging ,surging 会让你对.NET CORE微服务有个全新的认识,也但愿你们大力宣传,让surging 发展愈来愈好。

相关文章
相关标签/搜索