共 20 页: 上一页 1 2 3 4 5 6 7 8 9 下一页 末页
摘要:SitecoreSitecore就是一个基于ASP.NET技术的CMS系统,它不仅具有传统Web CMS的所有功能,还集成了Marketing营销(当然,这个功能价格不菲)的功能,可以提供一个一站式的在线营销解决方案。本文针对个人真实经历的Sitecore学习与认证过程,从一个普通开发人员的视角谈一谈Sitecore的优势与槽点,并说说操蛋的Sitecore的认证考试。如果你有意或是被迫要参加Sitecore的认证考试,那么本文有福利。 阅读全文
posted @ 2018-08-17 17:06 EdisonZhou 阅读 (1861) 评论 (2) 编辑
摘要:2017年,在前公司领导刘总的推荐下,在得到App上订阅了吴军老师的《硅谷来信》,从此每天刷牙洗脸的时间就开始听吴军老师在大洋彼岸寄来的信件了。整个来信涵盖了职业发展、工作效率、业余生活等多个主题,从一流科学家/工程师的视角可以看到很多不一样的思维方式。2018年,我将其一一记录下来形成思维导图,也算是一个复习,这一篇是工作篇的内容。 阅读全文
posted @ 2018-08-14 12:43 EdisonZhou 阅读 (8075) 评论 (32) 编辑
摘要:JenkinsJenkins 是一款流行的开源持续集成(CI)与持续部署(CD)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。本篇简单介绍了一下持续集成、持续交付与持续部署的基本概念,然后介绍了如何在CentOS7.x下安装Jenkins并初始化Jenkins。下一篇会会结合ASP.NET Core与Docker来一个持续部署的实例。 阅读全文
posted @ 2018-08-11 21:24 EdisonZhou 阅读 (2677) 评论 (7) 编辑
摘要:上半年浑浑噩噩,制定的OKR只完成了20%不到,技术方面的目标完成的比较少。不过,欣慰的是自己又开始了博客写作,并且开启了一个新的系列《.NET Core微服务基础实践系列》,这个系列文章介绍了基于.NET Core的微服务架构所用到的一些流行开源项目,获得了很多童鞋的关注和点赞,也激励着我继续学习研究.NET Core的决心。工作上,由于自己“被”加入了Java微服务开发团队,因此加入了Java的学习计划,而且会接触Java微服务生态圈,准备吸收一点东西来充实自己。 阅读全文
posted @ 2018-08-09 23:21 EdisonZhou 阅读 (487) 评论 (0) 编辑
摘要:SpringBoot今年“被”转到了Java Team开始了微服务开发的工作,接触了Spring Boot这个新瓶装旧酒的技术,也初步了解了微服务架构。Spring Boot是Spring4之后整合的产物,它摒弃了原来Spring的一大堆的配置,采用了约定大于配置的方式,还是原来的配方,还是原来的佐料,让各路开发人员能够快速地使用Java开发微服务程序。此示例项目主要基于程序猿DD的SpringBoot教程所做的学习实践,基于SprintBoot 1.5.15版本,每个项目均演示了部分内容。由于程序猿DD的文章示例版本太旧,部分Code无法正常运行,所以在学习途中(非SpringBoot2.0版本的学习)可以参考本示例Demo来学习。 阅读全文
posted @ 2018-08-08 00:44 EdisonZhou 阅读 (6028) 评论 (5) 编辑
摘要:Apollo本篇简单介绍了一下统一配置中心与Apollo的基本概念,然后介绍了Apollo的快速安装(基于QuickStart)与基本配置,最后通过与ASP.NET Core的集成演示了如何在项目中使用Apollo替代原有的配置文件(appsettings.json)。当然,本篇只是一个QuickStart,更多的内容都没有覆盖,需要我们去看官方Wiki了解。Apollo目前在国内开发者社区比较热,在Github上有超过5k颗星,在国内众多互联网公司有落地案例,值得我们学习和了解。 阅读全文
posted @ 2018-08-04 19:58 EdisonZhou 阅读 (7974) 评论 (15) 编辑
摘要:APM本篇首先简单介绍了一下App.Metrics、InfluxDB与Grafana,然后介绍了如何安装和配置这套开源监控组合,最后通过与API网关Ocelot的集成,让我们的ASP.NET Core程序可以跑在监控平台之下,并可以通过Grafana的Dashboard实时查看性能数据。当然,本篇只是一个简单的Quick Start,很多细节没有深究,有兴趣的园友可以通过参考资料去仔细研究。 阅读全文
posted @ 2018-07-29 12:45 EdisonZhou 阅读 (4194) 评论 (11) 编辑
摘要:DockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。本篇极简地介绍了一下Docker,然后介绍了如何在Linux上安装Docker,以及如何发布我们的ASP.NET Core到Docker中。最后,推荐了两篇文章介绍如何配置Supervisor作为.NET Core应用程序的守护进程。 阅读全文
posted @ 2018-07-26 23:14 EdisonZhou 阅读 (4338) 评论 (20) 编辑
摘要:CAP本篇首先简单介绍了一下CAP这个开源项目,然后基于上一篇中的下订单的小案例来进行了基于CAP的改造,并通过一个实例的运行来看到了结果。当然,这个实例并不完美,很多点都没有考虑(比如消息端消费时的幂等性)和失败重试的场景实践等等等等。由于时间和精力的关系,目前只使用到这儿,以后有机会能够应用上会研究下CAP的源码,最后感谢杨晓东为.NET社区带来了一个优秀的开源项目! 阅读全文
posted @ 2018-07-25 00:27 EdisonZhou 阅读 (5238) 评论 (8) 编辑
摘要:CAP本篇主要基于一个小案例(订单业务处理场景),首先介绍了其业务场景与基本业务流程,然后通过介绍相关的每个服务的代码实现,最后通过一个快速的测试演示了数据如何达到最终一致性。当然,这个小案例并不完整,没有对重试的补偿机制以及失败后的回滚机制进行演示和测试,不过有兴趣的朋友可以自行改代码实现。最后,再次强调实现数据的最终一致性有很多方案,这里只是举一种我从桂素伟老师那里所学到的比较简单易于学习的实现方式而已。对MassTransit感兴趣想应用于生产环境的朋友,可以去了解了解saga。 阅读全文
posted @ 2018-07-22 01:00 EdisonZhou 阅读 (3948) 评论 (9) 编辑
摘要:CAP本篇极简的介绍了一下数据一致性和MassTransit这个开源的组件,通过几个例子介绍了在.NET环境下如何使用MassTransit操作RabbitMQ实现消息的接收/发送以及发布/订阅。后续我会继续使用MassTransit结合Quartz.Net在ASP.NET Core环境下实现一个简单的基于补偿机制的数据最终一致性的小案例,希望到时也可以和各位园友分享。 阅读全文
posted @ 2018-07-15 18:25 EdisonZhou 阅读 (4185) 评论 (10) 编辑
摘要:RPC本篇简单的介绍了下微服务架构下服务之间调用的两种常用方式:REST与RPC,另外前面介绍的基于消息队列的发布/订阅模式也是服务通信的方式之一。本篇基于WebApiClient这个开源库介绍了如何进行声明式的REST调用,以及Thrift这个RPC框架介绍了如何进行RPC的通信,最后通过一个小例子来结尾。此外,服务调用的最佳实践一般是对外REST,对内RPC,但是追求极致的性能会消耗很多额外的成本,所以一般情况下对内一般也REST,但对于个别性能要求较高的接口使用RPC。 阅读全文
posted @ 2018-07-10 23:51 EdisonZhou 阅读 (12026) 评论 (16) 编辑
摘要:IdentityService本篇主要基于前面Ocelot和IdentityServer的文章的基础之上,将Ocelot和IdentityServer进行结合,通过建立IdentityService进行统一的身份验证和授权,最后演示了一个案例以说明如何实现。不过,本篇实现的Demo还存在诸多不足,比如需要重构的代码较多如网关中各个Api的验证选项的注册,没有对各个请求做用户角色和权限的验证等等,相信随着研究和深入的深入,这些都可以逐步解决。后续会探索一下数据一致性的基本知识以及框架使用,到时再做一些分享。 阅读全文
posted @ 2018-07-08 10:28 EdisonZhou 阅读 (6916) 评论 (10) 编辑
摘要:RabbitMQ本篇超级简单地介绍了一下消息队列与RabbitMQ,通过使用EasyNetQ这个基于RabbitMQ.Client的客户端做了一个QuickStart演示了在.NET Core环境下如何进行消息的发布与订阅,并通过一个微服务的小案例演示了如何在ASP.NET Core环境下如何基于EasyNetQ完成消息的发布与订阅,一个类似于简单的事件总线模式成型。当然,本篇的内容都十分基础,如果要应用好RabbitMQ,还得把那些基础概念(如:Channel,Exchange等)弄清楚,然后去理解一下事件总线的概念,实际中还得考虑数据一致性等等,路途漫漫,继续加油吧! 阅读全文
posted @ 2018-07-05 00:38 EdisonZhou 阅读 (8295) 评论 (11) 编辑
摘要:DNC今年从原来的Team里面被抽出来加入了新的Team,开始使用做Java微服务的开发工作,接触了Spring Boot与Spring Cloud等技术栈,对微服务这种架构有了一个感性的认识。虽然只做了两个月的开发工作,但是对微服务架构的兴趣却没有结束,又因为自己的.NET背景(虽然对.NET的生态有点恨铁不成钢),想要探索一下在.NET平台下的微服务架构的可行性,也准备一些材料作为公司内部培训和分享课程的素材。幸运的是,在.NET Core首届在线峰会上,看到了很多前辈的分享,也增强了自己要摸索和实践.NET Core微服务架构的决心,因此想要写下这个系列的文章。 阅读全文
posted @ 2018-07-01 13:18 EdisonZhou 阅读 (4250) 评论 (12) 编辑
摘要:Tracing本篇首先介绍了一下追踪(Tracing)的背景以及基本概念,然后介绍了一下一个开源的分布式追踪组件Butterfly,由于Ocelot已经集成了Butterfly,所以我们可以很方便地在Ocelot中使用Butterfly进行追踪。最后,通过一个具体的小实例,介绍了如何在ASP.NET Core微服务环境中如何使用Ocelot+Butterfly进行请求的追踪。不过,Butterfly的作者Lemon已不打算继续维护Butterfly而是推荐使用Apache SkyWalking来做生产环境的分布式追踪,同时他也加入了SkyWalking团队共同进行SkyWalking在多语言生态的推动。后续,有机会的话,我也会用实践一下SkyWalking。 阅读全文
posted @ 2018-06-30 00:25 EdisonZhou 阅读 (2961) 评论 (10) 编辑
摘要:ExceptionlessExceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web API,Web Forms,WPF,Console,ASP.NET MVC 等技术开发的应用程序中,并且提供了REST接口可以应用在 Javascript,Node.js 中。它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置,对于微服务架构的应用程序来说,统一的日志收集系统的建立更是有必要。 阅读全文
posted @ 2018-06-28 00:15 EdisonZhou 阅读 (3519) 评论 (14) 编辑
摘要:IdentityServer本篇基于上一篇搭建好的AuthorizationServer,通过集成API Service与MVC Web Application来演示他们如何与Authorization Server的交互,了解了两种不同的Scheme(Bearer和Implicit),最后补充了一些材料供扩展阅读。但是,IdentityServer的内容很多,我只是学习了一些我要掌握以做POC的部分,其他还有很多功能和知识点我没有学习,大家可以通过搜索园子里各种大神(eg.晓晨Master, solenovex等等等等)的文章进行学习。后面我会将IdentityServer与Ocelot进行集成,在API网关处做统一验证与授权。最后,感谢参考资料的作者们。 阅读全文
posted @ 2018-06-25 00:36 EdisonZhou 阅读 (8212) 评论 (5) 编辑
摘要:IdentityServerIdentityServer4(这里使用的版本号为4)是一个基于OpenID Connect和OAuth 2.0的针对ASP.NET Core 2.0的框架。本篇主要简单的介绍了IdentityServer以及如何基于IdentityServer建立一个基本的AuthorizationServer,如何获取Token,以及集成QuickStart UI实现基本的界面展示。后续还会创建API和MVC网站,来和IdentityServer进行集成,以演示如何对User授予访问API和MVC网站的访问权限。 阅读全文
posted @ 2018-06-23 12:15 EdisonZhou 阅读 (9184) 评论 (8) 编辑
摘要:Ocelot本篇基于Ocelot官方文档,学习了一下Ocelot的一些有用的功能:负载均衡(虽然只提供了两种基本的算法策略)、缓存、限流、QoS以及动态路由(Dynamic Routing),并通过一些简单的Demo进行了验证,最后通过继承Swagger做统一API文档入口。通过查看Ocelot官方文档,可以知道Ocelot还支持许多其他有用的功能,而那些功能这里暂不做介绍(或许有些会在后续其他部分(如验证、授权、Trace等)中加入)。此外,一些朋友找我要demo的源码,我会在后续一齐上传到github。而这几篇中的内容,完全可以通过分享出来的code和配置自行构建,因此就不贴出来了。 阅读全文
posted @ 2018-06-17 14:11 EdisonZhou 阅读 (5348) 评论 (24) 编辑
共 20 页: 上一页 1 2 3 4 5 6 7 8 9 下一页 末页