什么是Wing?
Wing致力于打造一个功能强大、最接地气的.NET
微服务框架,支持.NET Core 3.1+
运行平台。支持Consul
服务注册与发现,服务间通讯支持http
和grpc
调用,内置负载均衡器。支持Saga分布式事务
,支持三种恢复策略:向前恢复、向后恢复、先前再后。自带配置中心
,服务配置可以在线集中统一管理。支持http/grpc/sql(支持ORM框架EFCore/FreeSql/SqlSugar)链路追踪及耗时分析统计。内置服务网关
,支持全局服务策略和个性化服务策略配置。支持RabbitMQ
事件总线,自带友好操作的可视化UI
管理界面。Wing官方文档快速访问
框架实践
提前准备好Consul执行文件。立即下载
新建一个空白解决方案,取名Wing_Study。然后建一个ASP.NET Core空模板,取名Service1作为业务服务使用。如下图:
引用Nuget包:
配置Program.cs文件
配置Web启用端口为5001
配置appsetting.json文件(详细配置可见官网,此处只写几个主要的)
创建一个HealthController控制器,新增一个Get请求方法
OK,那我们到这一步就已经完成了。可以通过启动提前准备好的Consul服务查看具体的效果。但Wing提供了一个明了简单的UI界面。我们继续实现下去。
在Wing_Study的解决方案上新建一个ASP.NET Core空模板项目。取名ServiceUI。同样的引用Wing官方三个nuget包。注册Program.cs和配置appsettings.json。配置项目启动后的端口为6001。ServiceUI项目配置Consul是为了读取Consul管理的服务信息。而不是为了向Consul注册服务。所以Consul页面上没有ServiceUI是正常的。
启动Consul服务,启动ServiceUI服务,访问地址http://localhost:6001/wing/
现在启动业务服务Service1,重新刷新一下Consul管理面板和Wing管理面板
Wing初始化就这样配置好了。是不是很轻松很简单呢?下次我们再深入学习Wing的网关,服务治理,分布式事务,APM链路追踪等功能。