随笔分类 - 微服务那些事
和小伙伴们一起学习并分享微服务相关知识
摘要:前言 随着系统架构的演变,有很多名词也随之涌现,如:微服务、灰度发布、资源隔离、容器、领域/集成事件等,听着的确高大上,让很多小伙伴有一种无法征服的感觉;其实很多东西可能之前就已经用过了,只是名字不这么叫而已,就算没应用上也别慌,现在很多轮子都很成熟,用起来很容易上手的。这里就来说说比较常见的领域事
阅读全文
摘要:前言 在项目开发过程中,后台任务很多场景都少不了,比如:大量数据处理或分析、定时同步数据、大量数据的异步导出、消息补偿等等,在.NET中Quartz-NET、Hangfire是很多小伙伴的首要选择,但如果要弄一个通用、灵活配置的调度平台,还得花很多时间进行封装;当然也有一些小伙伴造了轮子,用起来也还
阅读全文
摘要:前言 对于监控系统来说,不可能让人一直盯着监控看板,而更多的是以自动提醒的方式,比如邮件、短信或微信推送等,当达到或超出预设的告警指标时,就自动发送消息提醒,下面就来说说如何配置SkyWalking的告警。 正文 在说告警之前呢,给小伙伴先演示一下SkyWalking跟踪数据库操作链路及监控数据库指
阅读全文
摘要:前言 如今分布式、微服务盛行,面对拆分服务比较多的系统,如果线上出现异常,需要快速定位到异常服务节点,假如还用传统的方式排查肯定效率是极低的,因为服务之间的各种通信会让定位更加繁琐;所以就急需一个分布式链路追踪系统,方便快速定位异常节点,从而针对性的处理问题。比较主流的APM(Application
阅读全文
摘要:前言 在真实的项目中,不管是功能日志、错误日志还是异常日志,已经是项目的重要组成部分。在原始的单体架构,通常看日志的方式简单粗暴,直接登录到服务器,把日志文件拷贝下来进行分析;而如今分布式、微服务架构盛行,如果每个节点服务器都去拷贝一次,估计还没等你拷贝完,Boss就要炸锅了;特别是遇到线上问题,肯
阅读全文
摘要:前言 “不对啊,在我这运行很正常啊”,这句话小伙伴们在前几年应该听得很多;每次一到安装、部署时总有一堆问题,毕竟操作系统版本、软件环境、硬件资源、网络等因素在作怪,此时难免会导致开发小伙伴和运维哥们互相甩锅,其实很多时候与要部署的系统没有太大关系。如果能减少差异化带来的不和谐,同时还能提高工作效率,
阅读全文
摘要:前言 对于分布式事务,常用的解决方案根据一致性的程度可以进行如下划分: 强一致性(2PC、3PC):数据库层面的实现,通过锁定资源,牺牲可用性,保证数据的强一致性,效率相对比较低。 弱一致性(TCC):业务层面的实现,通过预留或锁定部分资源,最后通过确认或取消操作完成事务的处理。比如A向B转款500
阅读全文
摘要:前言 关于前面系列的文章已经说到分布式服务之间的通信,则分布式事务接下来就是我们要一起学习的主题,走起。 数据库事务在现有大大小小的系统中几乎是避免不开的,或多或少总会有一些业务关联在一块;对于单机事务的应用场景和操作,相信小伙伴已经够熟练了;随着分布式、微服务的开发模式普及,分布式事务落地也成为了
阅读全文
摘要:前言 上一篇对gRPC进行简单介绍,并通过示例体验了一下开发过程。接下来说说实际开发常用功能,如:gRPC的四种模式、gRPC集成JWT做认证和授权等。 正文 1. gRPC四种模式服务 以下案例演示,服务端用微软提供的模板创建,客户端使用Winform程序演示,基于.NetCore3.1版本。具体
阅读全文
摘要:前言 系统分布式已经成为程序员的家常,将大型单体划分为相对简单的小模块,分散系统能力,提升系统扩展性、功能模块复用性等;各功能模块之间肯定会有很多数据共享和交互的应用场景,那就避免不了各模块之间的通信;目前用的比较多的方式是HTTP(Restful API)接口、消息队列等,而HTTP(Restfu
阅读全文
摘要:前言 关于HttpClient的使用,个人在很多场景都派上用场了,比如在Winform或后台服务中用其调用接口获取和上传数据、微服务中用其进行各服务之间的数据共享等,到目前来看,似乎还没有出现过什么问题,但当我看到官方文档介绍使用方式时,再回顾之前项目的代码,只能说没出问题比较庆幸。 官方文档介绍的
阅读全文
摘要:前言 关于网关(Ocelot)的分享,还遗留一些功能没演示呢,接着来聊聊;这次重点针对网关Ocelot使用缓存、集成Polly做服务治理、集成IdentityServer4做认证授权来详细说说;如果对上一篇感兴趣,点这里(网关Ocelot功能演示安排的明明白白~~~)。 正文 1. 使用缓存 Oce
阅读全文
摘要:前言 对于运行中的系统,可以说百分百的小伙伴会经常遇见以下问题: 网络不通,突然又好了; 服务器宕机了; 调用服务接口超时了; 调用接口报错啦; 通讯信息发送失败需要重发; 以上只是列举了一些常遇到的问题,对于一些小项目可能简单的处理一下就OK了(比如重启或是重新发布),而对于微服务架构的项目,可能
阅读全文
摘要:前言 **网关(Gateway)**在微服务架构中至关重要,可以将其理解为是外部客户端(前端、MVC后台等调用方)与后台服务的连接点,通过这层可以做统一的处理,比如路由、身份认证和授权、服务治理等; 网关的好处: 统一入口,调用方(客户端)不在为调哪个服务而头大,统一入口即可,由网关路由到对应后台服
阅读全文
摘要:前言 上一篇简单介绍了Consul,并使用开发模式(dev)进行流程演示,但在实际开发中需要考虑Consul的高可用和操作安全性,所以接着来聊聊集群和ACL的相关配置,涉及到的命令会在环境搭建过程中详细介绍。 正文 关于集群,第一反应就是多搞几台机器(或者容器等),将其关联在一块,提供功能即可;在搭
阅读全文
摘要:前言 在微服务架构中,对于一个系统,会划分出多个微服务,而且都是独立开发、独立部署,最后聚合在一起形成一个系统提供服务。当服务数量增多时,这些小服务怎么管理?调用方又怎么能确定服务的IP和端口?服务挂掉了又怎么办?单靠人工处理已经不太现实,使用系统统一管理就是最好的选择,常用的服务发现产品有:Con
阅读全文
摘要:前言 原计划打算在春节期间多分享几篇技术文章的,但到最后一篇也没出,偷懒了吗?算是吧,过程是这样的:每次拿出电脑,在孩姥姥家的院子总有阳光沐浴,看不清屏幕,回屋又有点冷(在强行找理由),于是又带着娃遛弯去啦。哪有那么多理由,就是想偷个懒;不过后面几天把计算机组成原理简单过了过,后面整理整理再单独给小
阅读全文
摘要:前言 接着授权模式聊,这次说说**Authorization Code(授权码)模式,熟悉的微博接入、微信接入、QQ接入都是这种方式(这里说的是oauth2.0的授权码模式),从用户体验上来看,交互方式和Implicit**没啥改变,随便找个网站瞅瞅,如慕课网(很不错的学习网站)的登录流程,见下图:
阅读全文
摘要:前言 上一篇Resource Owner Password Credentials模式虽然有用户参与,但对于非信任的第三方的来说,使用这种模式是有风险的,所以相对用的不多;这里接着说说implicit隐式模式,这种模式比较适合于纯前端客户端,比如Vue、Angular、React项目等,相对来说整个
阅读全文
摘要:前言 接着IdentityServer4的授权模式继续聊,这篇来说说 Resource Owner Password Credentials授权模式,这种模式在实际应用场景中使用的并不多,只怪其太开放啦,直接在客户端上拿着用户名和密码就去授权服务器获取AccessToken,这样容易被客户端拿着用户
阅读全文