摘要:
本篇极简的介绍了一下数据一致性和MassTransit这个开源的组件,通过几个例子介绍了在.NET环境下如何使用MassTransit操作RabbitMQ实现消息的接收/发送以及发布/订阅。后续我会继续使用MassTransit结合Quartz.Net在ASP.NET Core环境下实现一个简单的基于补偿机制的数据最终一致性的小案例,希望到时也可以和各位园友分享。 阅读全文
本篇极简的介绍了一下数据一致性和MassTransit这个开源的组件,通过几个例子介绍了在.NET环境下如何使用MassTransit操作RabbitMQ实现消息的接收/发送以及发布/订阅。后续我会继续使用MassTransit结合Quartz.Net在ASP.NET Core环境下实现一个简单的基于补偿机制的数据最终一致性的小案例,希望到时也可以和各位园友分享。 阅读全文
posted @ 2018-07-15 18:25
EdisonZhou
阅读(12593)
评论(11)
推荐(19)

本篇简单的介绍了下微服务架构下服务之间调用的两种常用方式:REST与RPC,另外前面介绍的基于消息队列的发布/订阅模式也是服务通信的方式之一。本篇基于WebApiClient这个开源库介绍了如何进行声明式的REST调用,以及Thrift这个RPC框架介绍了如何进行RPC的通信,最后通过一个小例子来结尾。此外,服务调用的最佳实践一般是对外REST,对内RPC,但是追求极致的性能会消耗很多额外的成本,所以一般情况下对内一般也REST,但对于个别性能要求较高的接口使用RPC。
本篇主要基于前面Ocelot和IdentityServer的文章的基础之上,将Ocelot和IdentityServer进行结合,通过建立IdentityService进行统一的身份验证和授权,最后演示了一个案例以说明如何实现。不过,本篇实现的Demo还存在诸多不足,比如需要重构的代码较多如网关中各个Api的验证选项的注册,没有对各个请求做用户角色和权限的验证等等,相信随着研究和深入的深入,这些都可以逐步解决。后续会探索一下数据一致性的基本知识以及框架使用,到时再做一些分享。
本篇超级简单地介绍了一下消息队列与RabbitMQ,通过使用EasyNetQ这个基于RabbitMQ.Client的客户端做了一个QuickStart演示了在.NET Core环境下如何进行消息的发布与订阅,并通过一个微服务的小案例演示了如何在ASP.NET Core环境下如何基于EasyNetQ完成消息的发布与订阅,一个类似于简单的事件总线模式成型。当然,本篇的内容都十分基础,如果要应用好RabbitMQ,还得把那些基础概念(如:Channel,Exchange等)弄清楚,然后去理解一下事件总线的概念,实际中还得考虑数据一致性等等,路途漫漫,继续加油吧!
今年从原来的Team里面被抽出来加入了新的Team,开始使用做Java微服务的开发工作,接触了Spring Boot与Spring Cloud等技术栈,对微服务这种架构有了一个感性的认识。虽然只做了两个月的开发工作,但是对微服务架构的兴趣却没有结束,又因为自己的.NET背景(虽然对.NET的生态有点恨铁不成钢),想要探索一下在.NET平台下的微服务架构的可行性,也准备一些材料作为公司内部培训和分享课程的素材。幸运的是,在.NET Core首届在线峰会上,看到了很多前辈的分享,也增强了自己要摸索和实践.NET Core微服务架构的决心,因此想要写下这个系列的文章。
本篇首先介绍了一下追踪(Tracing)的背景以及基本概念,然后介绍了一下一个开源的分布式追踪组件Butterfly,由于Ocelot已经集成了Butterfly,所以我们可以很方便地在Ocelot中使用Butterfly进行追踪。最后,通过一个具体的小实例,介绍了如何在ASP.NET Core微服务环境中如何使用Ocelot+Butterfly进行请求的追踪。不过,Butterfly的作者Lemon已不打算继续维护Butterfly而是推荐使用Apache SkyWalking来做生产环境的分布式追踪,同时他也加入了SkyWalking团队共同进行SkyWalking在多语言生态的推动。后续,有机会的话,我也会用实践一下SkyWalking。
Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web API,Web Forms,WPF,Console,ASP.NET MVC 等技术开发的应用程序中,并且提供了REST接口可以应用在 Javascript,Node.js 中。它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置,对于微服务架构的应用程序来说,统一的日志收集系统的建立更是有必要。
本篇基于Ocelot官方文档,学习了一下Ocelot的一些有用的功能:负载均衡(虽然只提供了两种基本的算法策略)、缓存、限流、QoS以及动态路由(Dynamic Routing),并通过一些简单的Demo进行了验证,最后通过继承Swagger做统一API文档入口。通过查看Ocelot官方文档,可以知道Ocelot还支持许多其他有用的功能,而那些功能这里暂不做介绍(或许有些会在后续其他部分(如验证、授权、Trace等)中加入)。此外,一些朋友找我要demo的源码,我会在后续一齐上传到github。而这几篇中的内容,完全可以通过分享出来的code和配置自行构建,因此就不贴出来了。
本篇首先介绍了一下熔断、降级以及AOP的基本概念,然后从两个流行的库Polly和AspectCore的基本使用开始了解如何在.NET Core代码中实现熔断机制和AOP,最后通过结合Polly+AspectCore封装了一个Hystrix来介绍了一下如何在ASP.NET Core程序中如何做到标签式地快速实现熔断降级机制。后续,会将Polly与Ocelot结合实践API网关。
上一篇发布之后,很多人点赞和评论,不胜惶恐,这一篇把上一篇没有弄到的东西补一下,也算是给各位前来询问的朋友的一些回复吧。本篇主要针对服务注册使用了注册文件的方式进行注册,另外初步尝试了KV存储,最后通过Consul的watch机制搭建了一个告警服务并测试通过。总体来说,本篇主要是将上篇中遗留的内容进行了弥补,下篇将开始基于Ocelot+Polly的API网关服务实践,敬请期待,我要睡了。此外,今天是高考第二天,也预祝各位高三学子高考成功,加油最后两科!
红楼梦是我国四大名著之一,被众多学者冠以四大名著之首的美誉,也是我们从学生时代开始就被老师灌输需要阅读的经典书籍(虽然我们学生时代未必阅读或读完过)。一百个读者有一百个哈姆雷特,而对于红楼梦,我觉得应该是每个读者的每次阅读感受下来都是不同的哈姆雷特。
自从6月份进行了年中总结,又是半年过去了,我的2017OKR又有了一些milestone。因此,按照国际惯例,又到了年终回顾的时候了,拉出来看看完成了多少。2017年的OKR只完成了60%不到,所以差不多是不及格的状态。也可以看到,对于专业基础和专业技术方面,我的完成项比较少(可能今年我对技术上的投入的确并不算很多)。但对于非技术书籍、体育锻炼以及业余生活目标项,我的完成度几乎在70%以上,我是比较满意的。因为,2017年我给自己的目标是要工作也要生活,所以可以看出2017年我是一直在追求工作与生活的平衡的(~_~)。
索引优化是查询优化中最重要的一部分,索引是一种用于排序和搜索的结构,在查找数据时索引可以减少对I/O的需要;当计划中的某些元素需要或是可以利用经过排序的数据时,也会减少对排序的需要。某些方面的优化可以适度提高性能,而索引优化经常可以大幅度地提高查询性能。
记得两年前追琅琊榜,每天12点等更新,一定要看完才睡。直至今天,仍然觉得琅琊榜真的拍的好演得好,也被胡歌再次圈粉(第一次还是在十二年前中学时看仙剑奇侠传第一部时,偏偏潇洒美少年,仗剑江湖为红颜!)胡歌曾说,他看完猎场的剧本后说这是他看过最精彩的剧本(很多人都持怀疑态度),以至于让放弃了琅琊榜2而选择了猎场。而众多实力派演员如孙红雷、张嘉译、祖峰等的加入,也拔高了大家对其的期望值。
浙公网安备 33010602011771号