上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 26 下一页
摘要: 一. 拦截器 1. 工作原理 (1).流程:客户端发送信息 → 经过客户端拦截器 → 到达服务端拦截器 → 到达服务端方法。 如下图: (2).实现:都要新建1个类, 实现Interceptors接口, 但对于客户端、服务端是 一元写法还是流式写法, 需要重写的方法不同哦 A.一元写法:客户端重写A 阅读全文
posted @ 2020-07-26 08:55 Yaopengfei 阅读(1809) 评论(0) 推荐(0)
摘要: 一. 剖析.Proto文件 先上一个proto文件 //proto的版本 syntax = "proto3"; //此处可以不指定 //option csharp_namespace = "GrpcService1"; package greet; // The greeting service d 阅读全文
posted @ 2020-07-24 07:27 Yaopengfei 阅读(3932) 评论(2) 推荐(1)
摘要: 一. 简介 1.什么是RPC RPC指远程调用(即要像调用本地方法一样调用远程方法). eg: 两台机器,A 机器上的程序要调用 B 机器上某程序提供的函数或方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。 常见的有:Thrift、gRPC 2.什么是gRPC 阅读全文
posted @ 2020-07-23 07:30 Yaopengfei 阅读(1304) 评论(1) 推荐(0)
摘要: 一. 前言 1. 背景 大部分场景中,DB操作80%是读,20%是写,对于时效性要求不高的数据,为了减少磁盘读和写的竞争,引入读写分离的概念,即在数据库上进行主从配置,一个主,多个从,实现主从同步,从而业务上实现读写分离。 读写分离在网站发展初期可以一定程度上缓解读写并发时产生锁的问题,将读写压力分 阅读全文
posted @ 2020-07-17 15:48 Yaopengfei 阅读(10332) 评论(5) 推荐(7)
摘要: 一. 自身负载 1. 含义 实现Ocelot转发多个业务服务器,不去Consul中获取,直接在配置文件中配置。 LoadBalancer将决定负载均衡的算法 - LeastConnection – 将请求发往最空闲的那个服务器 - RoundRobin – 轮流发送 - NoLoadBalance 阅读全文
posted @ 2020-07-15 18:02 Yaopengfei 阅读(1080) 评论(2) 推荐(0)
摘要: 一. 分区、分表、分库 1. 分区 (1).含义 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的。 (2).常用到的指令: alter database <数据库名> add filegroup <文件组名> alter database <数据库名称> ad 阅读全文
posted @ 2020-07-07 22:03 Yaopengfei 阅读(6357) 评论(5) 推荐(2)
摘要: 一. 模式探究 1.背景 在一些输入受限的设备上,要完成用户名和口令的输入是非常困难的,设备授权模式,可让用户登录到智能电视、 IoT 物联网设备或打印机等输入受限的设备。 若要启用此流,设备会让用户在另一台设备上的浏览器中访问一个网页,以进行登录。 用户登录后,设备可以获取所需的访问令牌和刷新令牌 阅读全文
posted @ 2020-07-05 14:23 Yaopengfei 阅读(2404) 评论(1) 推荐(1)
摘要: 一. PKCE机制 1. 准备 (1). IDS4_Server1:认证授权服务器 (2). MvcClient1:web客户端 然后将上述两个项目配置成授权码模式(如何配置见上一节 IdentityServer4授权码模式介绍和代码实操演练) PS: PKCE机制是在授权码模式的基础上,增加了几个 阅读全文
posted @ 2020-07-01 17:21 Yaopengfei 阅读(2910) 评论(2) 推荐(2)
摘要: 一. 前言 1.简介 授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与"服务提供商"的认证服务器进行互动。 2. 流程图 流程 (A)用户访问客户端,后者将前者导向认证服务器。 (B)用户选择是否给予客户端授权。 (C)假设 阅读全文
posted @ 2020-06-28 17:30 Yaopengfei 阅读(3848) 评论(3) 推荐(0)
摘要: 一. 前言 1.业务背景 我们前面尝试了在业务服务器上加IDS4校验,实际上是不合理的, 在生产环境中,业务服务器会有很多个,如果把校验加在每个业务服务器上,代码冗余且不易维护(很多情况下业务服务器不直接对外开放),所以我们通常把校验加在Ocelot网关上,也就是说校验通过了,Ocelot网关才会把 阅读全文
posted @ 2020-06-21 21:25 Yaopengfei 阅读(2429) 评论(8) 推荐(4)
摘要: 一. 前言 1.简介 简化模式(implicit grant type)不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,步骤在浏览器中完成,令牌对访问者是可见的,且客户端不需要认证。 注:该模式也有很大的弊端,就是请求令牌在浏览器中能被看到。 2. 流程图 流程 (A)客户端将用户 阅读全文
posted @ 2020-06-21 19:19 Yaopengfei 阅读(1476) 评论(8) 推荐(1)
摘要: 一. IDS4简介 1. 什么是IDS4 IdentityServer是基于OpenID Connect协议标准的身份认证和授权程序,它实现了OpenID 和 OAuth 2.0 协议。 2. 相关地址 (1).官网:https://identityserver4.readthedocs.io/en 阅读全文
posted @ 2020-06-17 17:11 Yaopengfei 阅读(3409) 评论(7) 推荐(1)
摘要: 一. 认证和授权 1. 身份验证 指当客户端访问服务端资源时,验证客户端是否合法的一种机制. eg: Core MVC中通过 app.UseAuthentication() 开启。最常见的是通过 用户名和密码,来验证您的身份。 2. 授权 指当客户端经过身份认证后,能够有限的访问服务端资源的一种机制 阅读全文
posted @ 2020-06-16 16:13 Yaopengfei 阅读(4251) 评论(2) 推荐(3)
摘要: 一. Ocelot+jwt 方案1 本节架构图: 1. 方案背景 截至目前,我们已经完成了可以通过Ocelot转发请求给业务服务器了,但现在还有一项工作没有做,那就是身份校验,当然我们可以直接写在业务服务器上,但是业务服务器会非常多,不利于维护,所以最佳的写法是写在Ocelot网关上,让Ocelot 阅读全文
posted @ 2020-06-13 15:13 Yaopengfei 阅读(1947) 评论(4) 推荐(4)
摘要: 。。。。 阅读全文
posted @ 2020-06-08 07:33 Yaopengfei 阅读(696) 评论(0) 推荐(0)
摘要: 一. 基础说明 1. API网关剖析 (1).什么是Api API是Application Programming Interface缩写,翻译成中文就是应用程序接口。在实际微服务中可以理解一个个功能方法。就比如你一个商品服务的微服务, 可以对外提供 API 接口为,获取商品目录、获取商品详情等。 阅读全文
posted @ 2020-06-03 16:46 Yaopengfei 阅读(2263) 评论(9) 推荐(3)
摘要: 一. 简介 1. Polly是什么? Polly是 .Net Core 中有一个被.Net 基金会认可的库 ,可以用来简化熔断降级的处理。主要功能:失败处理-即降级(FallBack)、断路器-即熔断(CircuitBreaker)、重试(Retry)、超时检测(Timeout)、缓存(Cache) 阅读全文
posted @ 2020-05-25 21:44 Yaopengfei 阅读(1551) 评论(5) 推荐(1)
摘要: 一. 简介 本节架构图: (PS:该图仅服务于本节,完整版的微服务架构图见后最后章节) 1.什么是配置中心 配置中心通俗的说就是在程序不重启的情况下,动态的修改程序的配置文件。 通俗的解释:在微服务体系中,实际上就是把各个业务服务器的配置文件 eg:appsettings.json或其它配置文件中的 阅读全文
posted @ 2020-05-19 14:45 Yaopengfei 阅读(5786) 评论(2) 推荐(2)
摘要: 一. 简介 本节架构图: (PS:该图仅服务于本节,完整版的微服务架构图见后最后章节) 1. 什么是Consul? Consul是一个用来实现分布式系统的服务发现与配置的开源工具,它的可以实现服务提供者 和 服务消费者的隔离,比如:比如服务提供者(GoodsService)将自身注册到Consul中 阅读全文
posted @ 2020-05-19 07:36 Yaopengfei 阅读(6119) 评论(7) 推荐(3)
摘要: 一. Core下WebApi复习 详细的WebApi请移步:https://www.cnblogs.com/yaopengfei/p/11558525.html 1. 路由规则配置 简单粗暴:把作用于Controller上的特性改为: [Route("api/[controller]/[action 阅读全文
posted @ 2020-05-15 17:02 Yaopengfei 阅读(1616) 评论(3) 推荐(1)
摘要: 一. 架构演变历史 1. 集中式开发 最初的大型计算机使用打孔卡,并且大多数计算都在批处理过程中进行。 2. CS架构 客户端/服务器体系结构将大多数逻辑放在服务器端,并将某些处理放在客户端上。 3. BS三层架构 Web浏览器成为客户端软件,而Web和应用程序服务器托管所有处理和逻辑。 4. 面向 阅读全文
posted @ 2020-05-13 22:05 Yaopengfei 阅读(4401) 评论(15) 推荐(10)
摘要: 一. 深度剖析 准备: 先给VS安装一个插件ILSpy,这样更容易反编译代码进行查看,另外要注意反编译async和await的时候,要把C#代码版本改为4.0哦。 1.什么是状态机 (1).含义:通常我们所说的状态机(State Machine)指的是有限状态自动机的简称,是现实事物运行规则抽象而成 阅读全文
posted @ 2020-05-08 10:02 Yaopengfei 阅读(4934) 评论(3) 推荐(4)
摘要: 一. 再谈异步 1. 什么是异步方法 使用者发出调用指令后,不需要等待返回值,就可以继续执行后面的代码,异步方法基本上都是通过回调来通知调用者。 (PS:线程池是一组已经创建好的线程,随用随取,用完了不是销毁线程,然后放到线程池中,供其他人用) 异步方法可以分为两类: (1).CPU-Bound(计 阅读全文
posted @ 2020-05-08 08:57 Yaopengfei 阅读(2166) 评论(12) 推荐(0)
摘要: 一. 简介 1. 什么是事务 事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元。 2. 事务的特征 事务具有 4 个基本特征,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durati 阅读全文
posted @ 2020-05-05 09:13 Yaopengfei 阅读(1282) 评论(1) 推荐(0)
摘要: 1. 关闭和打开自增列的限制 --格式:SET IDENTITY_INSERT RoleInfor on; (或off) --PS:即使设置为on,insert插入值的时候,不能省略前面的字段名,否则不生效 --以RoleInfor表为例,主键自增, 关闭限制,可以插入主键,打开限制,则不能显式的插 阅读全文
posted @ 2020-04-24 22:08 Yaopengfei 阅读(585) 评论(0) 推荐(0)
摘要: 一. 触发器概述 1. 什么是触发器 触发器是数据库用于保证数据完整性的一种方式,可以说它是"与表事件相关"的一种特殊的存储过程,它的执行不能由程序调用,也不能手动启用,而只能是通过事件来触发,比如当对表进行 Insert、Delete、Update操作的时候,就会激活触发器来执行,所以触发器通常用 阅读全文
posted @ 2020-04-23 16:16 Yaopengfei 阅读(5742) 评论(1) 推荐(1)
摘要: 一. 视图概述 1. 什么是视图 视图是一个虚拟表,是从一个或多个表中到处,行为与表相似,同样可以Select、Insert、Update、对视图的最终操作都会转换成对数据表的操作,可以保障数据系统的安全性。 2. 视图的分类 (1). 标准视图 标准视图组合了一个或多个表结构中数据,视图的基本功能 阅读全文
posted @ 2020-04-19 09:24 Yaopengfei 阅读(1054) 评论(1) 推荐(0)
摘要: 1. 约瑟夫问题 加斯帕·蒙日是法国数学家,他在《数学的游戏问题》中讲了一个故事:15个教徒和15个非教徒在深海上遇险,必须将一半的人投入海中,其余人才能幸免于难,于是想了一个方法,30个人 围城一圈,从第一个人开始依次报数,每数到第九个的人就将他扔向大海,如此循环进行直到仅剩余15个人为止。问怎样 阅读全文
posted @ 2020-04-17 16:49 Yaopengfei 阅读(442) 评论(1) 推荐(0)
摘要: 一. 基础 1. 前言 链式存储结构,又叫链表,逻辑上相邻,但是物理位置可以不相邻,因此对链表进行插入和删除时不需要移动数据元素,但是存取数据的效率却很低,分为三类: (1).单(向)链表:存储数据元素时,除了存储数据元素本身的信息外,还有一个指针,指向他的后继节点,最后一个元素的指针不指向任何元素 阅读全文
posted @ 2020-04-15 15:26 Yaopengfei 阅读(593) 评论(1) 推荐(0)
摘要: 一. Core的内置注入 类和接口的准备 public interface IU1 { string guid { get; set; } } public interface IU2 { string guid { get; set; } } public interface IU3 { stri 阅读全文
posted @ 2020-04-09 08:31 Yaopengfei 阅读(1538) 评论(1) 推荐(2)
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 26 下一页