1、前言
经过10多天的努力,surging 网关已经有了大致的雏形,后面还会持续更新完善,请大家持续关注研发的动态
最近也更新了surging新的版本
更新内容:
1. 扩展Zookeeper封装
2. 增加服务元数据
3. 增加API网关
开源地址:https://github.com/dotnetcore/surging
2.软件环境
IDE:Visual Studio 2017 15.3 Preview ,vscode
框架:.NET core 2.0
依赖程序:Zookeepe、Rabbitmq
vscode 技术支持:
周松柏(zsbfre)
3.Zookeeper 安装
ZooKeeper是分布式应用程序协调服务,是Google的Chubby开源实现,是hadoop的重要组件,CDH版本中更是使用它进行Namenode协调控制。而Surging 则基于Zookeeper 作为注册中心
安装&配置
在apache的官方网站提供了好多镜像下载地址,然后找到对应的版本,目前最新的是3.3.6
下载地址:
http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
Windows下安装
把下载的zookeeper的文件解压到指定目录
D:\zookeeper>
修改conf下增加一个zoo.cfg
内容如下:
# The number of milliseconds of each tick 心跳间隔 毫秒每次
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting anacknowledgement
syncLimit=5
# the directory where the snapshot isstored. //镜像数据位置
dataDir=/tmp/zookeeper
# the port at which the clients willconnect 客户端连接的端口
clientPort=2181
进入到bin目录,并且启动zkServer.cmd,这个脚本中会启动一个Java进程
D:\zookeeper>cd bin
D:\zookeeper\bin>
D:\zookeeper\bin >zkServer.cmd
启动客户端运行查看一下
D:\zookeeper\bin>zkCli.cmd 127.0.0.1:2181
这个时候zookeeper已经安装成功了,
参考官方文档:
http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html
4.API 网关
surging 的api 网关分为数据监控‘、服务管理‘、数据安全、身份认证、流量控制、分流控制。此节将介绍下服务管理,其它功能将在下几篇文章介绍
服务管理
针对于服务我们需要管理以下操作
服务机器:针对于服务部署的机器,我们需要平台进行管理监控,如发生异常,则通过API网关进行告警
元数据:通过元数据我们可以查找到相关服务的注解,如名称、负责人、更新时间
关联消费:通过关联消费可以做到有哪些消费客户端进行调用消费
以上操作,可以有效管理部署在各台机器上的服务,减少了人力成本的维护。
以下通过示例来介绍如何使用
在业务接口方法上添加如下特性
[Service(Date = "2017-8-11", Director = "fanly", Name = "获取用户")]
属性列表
基于zookeeper配置
1 | .UseZooKeeperRouteManager( new ConfigInfo( "127.0.0.1:2181" ))
|
针对于代码已经完成, api 网关可以输入http://localhost:729/进行访问,然后你会看到下面的界面



6、总结
API网关有了大致的雏形,下面会持续完善Api网关,并且会重构Zookeeper 节点管理和增加文件配置来代替代码。如感兴趣请多关注或者加入QQ群:615562965
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
· 全程使用 AI 从 0 到 1 写了个小工具