surging 将推出社区版微服务平台
前言
对于.NET大家并不陌生,有大批的企业选择.NET作为公司构建多种应用的开发平台,但是近几年随着微服务,大数据,移动端,物联网兴起,而后.NET社区生态没有跟上时代的步伐,已开始趋于没落,而其中最具代表的微服务,能够提供多种业务场景的解决方案的只有surging ,而surging 最近几年也在不断推动发展,预计明年将升级成为微服务平台,在这之前会在公司的重点项目中使用surging ,以便推出给大家带来稳定,高效的微服务平台,大家如果要得到最新的消息可以添加群:21811617,此群请不要涉及政治,暴力,因为有些人玩不起。多聊技术,积极向上开心的事情,以下是介绍最新的微服务平台功能
过滤器
框架中有AuthorizationFilter,ExceptionFilter,ActionFilter,而ActionFilter是最近新添加的功能,此功能可以用来做权限,创建ActionFilter过滤器如下:
public class PermissionAttribute : BaseActionFilterAttribute
{
private readonly ISerializer<string> _serializer;
public PermissionAttribute()
{
_serializer = ServiceLocator.Current.Resolve<ISerializer<string>>();
}
public override Task OnActionExecutingAsync(ServiceRouteContext actionExecutedContext, CancellationToken cancellationToken)
{
var payload= RpcContext.GetContext().GetAttachment("payload");
var model= _serializer.Deserialize(payload.ToString().Trim('"').Replace("\\",""),typeof(UserModel));
// actionExecutedContext.ResultMessage.ExceptionMessage = "权限不足";//通过ExceptionMessage 来控制过滤
return Task.FromResult(model);
}
}
添加注入到引擎中,添加模块配置:
public class IntercepteModule : SystemModule
{
public override void Initialize(AppModuleContext context)
{
base.Initialize(context);
} /// <summary>
/// Inject dependent third-party components
/// </summary>
/// <param name="builder"></param>
protected override void RegisterBuilder(ContainerBuilderWrapper builder)
{
base.RegisterBuilder(builder);
builder.AddClientIntercepted(typeof(CacheProviderInterceptor));
builder.AddFilter(typeof(PermissionAttribute));
//builder.AddClientIntercepted(typeof(LogProviderInterceptor));
}
}
然后可以在接口方法中添加Permission特性
[Authorization(AuthType = AuthorizationType.JWT)]
[Permission]
[HttpPost(true),HttpPut(true)]
Task<IdentityUser> Save(IdentityUser requestData);
也可以在接口上添加Permission特性
[ServiceBundle("api/{Service}/{Method}")]
[Permission]
//[ServiceBundle("api/{Service}")]
//[ServiceBundle("api/{Service}/{Method}/test")]
//[ServiceBundle("api/{Service}/{Method}/test",false)]
public interface IUserService: IServiceKey
{
[Authorization(AuthType = AuthorizationType.JWT)]
[Permission]
[HttpPost(true),HttpPut(true)]
Task<IdentityUser> Save(IdentityUser requestData);
}
不登陆调用会看到如下错误信息:

然后从RpcContext.GetContext().GetAttachment("payload")代码中的jwt token 的payload 可以获取信息,断点测试如下:

链路跟踪
链路跟踪采用的是skywalking 6.0 , 而最新的已经升级到8.0, 可以看surging支持的skywalking 8.0:





平台可视化界面







总结
surging 支持的国标28181,rtmp,httpflv,ws,mqtt,rtsp就不过多介绍了,后续surging微服务平台 会更新到https://github.com/microsurging,请大家关注
surging 将推出社区版微服务平台的更多相关文章
- 智能家居巨头 Aqara 基于 KubeSphere 打造物联网微服务平台
背景 从传统运维到容器化的 Docker Swarm 编排,从 Docker Swarm 转向 Kubernetes,然后在 Kubernetes 运行 SpringCloud 微服务全家桶,到最终拥 ...
- 【译文】用Spring Cloud和Docker搭建微服务平台
by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...
- Spring Cloud和Docker搭建微服务平台
用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...
- 微服务平台(Micro Service Platform : MSP)旨在提供一个集开发、测试、运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效。
微服务平台(Micro Service Platform : MSP)旨在提供一个集开发.测试.运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效. MSP采用业界 ...
- 谈谈surging 与多语言混合微服务构思
1.前言 微服务架构已成为目前互联网架构的趋势,关于微服务的讨论,几乎是各大技术论坛.技术大会的热门话题.而Surging是高性能的模块化微服务引擎,是大家首选微服务引擎架构之一,而针对于框架有个突出 ...
- 一站式入口服务|爱奇艺微服务平台 API 网关实战 原创 弹性计算团队 爱奇艺技术产品团队
一站式入口服务|爱奇艺微服务平台 API 网关实战 原创 弹性计算团队 爱奇艺技术产品团队
- SpringBoot 整合 Zookeeper 接入Starring微服务平台
背景 最近接的一个项目是基于公司产品Starring做的微服务支付平台,纯后台项目,实现三方支付公司和银行接口来完成用户账户扣款,整合成通用支付接口发布给前端调用. 但是扯蛋了,这边前端什么都不想做, ...
- 微服务应用新趋势:Service Mesh、AIOps和中台化
微服务技术由于天生支持快速迭代.弹性扩展的特点,使企业能够在不确定性下提升发展速度及抗风险能力,受到了越来越多的关注.当前,云服务商纷纷试水微服务产品,最为典型的,当属推出轻舟微服务平台.剑指整个微服 ...
- .NET平台微服务项目汇集
最近博客园出现了一篇文章<微服务时代之2017年五军之战:Net PHP谁先死>,掀起了一波撕逼,作者只是从一个使用者的角度来指点江山,这个姿势是不对的..NET Core就是专门针对模块 ...
随机推荐
- Odoo14 Error: While parsing modifiers for page: for modifier "invisible": fieldValue.indexOf is not a function
1 Traceback: 2 Error: While parsing modifiers for page: for modifier "invisible": fieldVal ...
- odoo14 重启服务后权限不见了
1 Odoo14权限更新有两个地方: 2 一.你在编写xml权限记录的时候没有将noupdate设置为'1'这样导致你每次升级模块,你的权限都会重置一遍. 3 二.你在运行odoo-bin服务的时候, ...
- BTDetect用户协议和技术支持
1.巴蜀生物科技检测用户协议 2.基于机器学习的生物检测项目 3.BTDetect用户手册和技术支持
- Apache DolphinScheduler&ShenYu(Incubating) 联合 Meetup,暖春 3 月与你相约!
云霞出海曙,梅柳渡江春. 2022 年的早春在疫情中显得格外生机勃勃,虽然接下来寒流仍有可能造访国内部分地区,但开源的世界,早已热闹非凡! 2022 年 3 月 26 日(星期六), Apache D ...
- Redis常用指令之string、list、set、zset、hash
Redis之五大类型常用指令 redis的一些小知识 redis服务器端口默认是6379 在编译完成后的bin目录下启动服务端:redis-server 客户端连接操作:redis-cli -h lo ...
- 老梗新玩「GitHub 热点速览 v.22.34」
作者:HelloGitHub-小鱼干 不知道你是否和我有一样的烦恼,最近的流行梗当自己要用拿来造词时,就陷入了不知道咋"换壳"的尴尬地步.sao-gen-gen 大大减少了你老梗新 ...
- virtio 驱动的数据结构理解
ps:本文基于4.19.204内核 Q:vqueue的结构成员解释: A:结构如下,解析附后: struct virtqueue { struct list_head list;//caq:一个vir ...
- RabbitMQ协议-AMQP 0-9-1 (高级消息队列协议)
工作模型 producer:生产者 Connection:TCP长连接,AMQP 0-9-1 连接通常是长期存在的.AMQP 0-9-1 是一个应用层协议,它使用 TCP 进行可靠传输.连接使用身份验 ...
- 漂亮简洁的PHP导航源码-蘑菇导航
蘑菇导航 蘑菇导航是根据SimpleWebNavigation修改而来的一个php网址导航.支持php8,支持左侧锚点,支持自定义fontawesome图标. 可以作为群组导航.图床导航.vps导航等 ...
- RabbitMQ 入门系列:7、保障消息不重复消费:产生消息的唯一ID。
系列目录 RabbitMQ 入门系列:1.MQ的应用场景的选择与RabbitMQ安装. RabbitMQ 入门系列:2.基础含义:链接.通道.队列.交换机. RabbitMQ 入门系列:3.基础含义: ...