随笔分类 -  微服务

微服务
摘要:本文主要介绍如何配置使用JWT基于Role的授权配置 Demo演示: 1.Token生成 通过Token进行认证和授权,需要在Claims中配置Role对应的权限项。 假设用户有两个权限:"RoleA"和"RoleB",在生成Token的过程中,添加这两个权限 claims.Add(new Clai 阅读全文
posted @ 2023-02-11 11:24 y_w_k 阅读(754) 评论(0) 推荐(0)
摘要:在Grpc的实际使用中,需要对Grpc的异常进行封装,在架构时发现,客户端中正常的Exception无法捕获到在Grpc服务端抛出的异常,经过仔细排查问题得到解决,记录下便于查漏补缺 代码结构如下:其中GrpcClientAPi为客户端,GrpcServer为服务端。 首先在ProtobufNet中 阅读全文
posted @ 2021-11-01 15:29 y_w_k 阅读(764) 评论(0) 推荐(0)
摘要:微服务中,采用MinIo作为文件分布式存储,对文件的上传,下载做统一管理 MinIo文档:http://docs.minio.org.cn/docs/ MinIo有两个重要的对象,服务器minio.exe和客户端minio.client。搭建服务器用于接收文件信息,客户端用于上传文件。 大致步骤如下 阅读全文
posted @ 2021-08-19 15:19 y_w_k 阅读(1905) 评论(0) 推荐(0)
摘要:在微服务中,高并发下,为了保持数据一致性,引入分布式锁的机制来解决问题 准备工作: 以下通过Parallel模拟多线程并发的情景,简单看下Parallel 适用场合: 1)数据并行(数据的重复性操作) Parallel.For 2)任务并行 任务并发运行不同的操作 Parallel.Invoke 3 阅读全文
posted @ 2021-07-27 17:06 y_w_k 阅读(269) 评论(0) 推荐(0)
摘要:一.场景分析 在角色权限配置的开发过程中,角色作为用户中心,权限作为单独的微服务管理。 创建角色时,需要在权限微服务中进行角色权限关联表的维护。 (1)最初是打算通过Grpc来进行微服务之间的数据交互,但实际场景中发现如果Grpc的微服务挂掉,会影响整个系统的运行,违背了CAP的高可用原则。 CAP 阅读全文
posted @ 2021-04-26 15:00 y_w_k 阅读(558) 评论(0) 推荐(1)
摘要:一.基础概念 Casbin是一个强大的,高效的开源访问控制框架,权限管理机制支持多种访问控制模型 在项目中通过Oauth2,OpenID进行身份认证,即验证用户的用户名和密码。再做访问控制,权限约束时,引入casbin来实现,其思想是存储RBAC方案中的用户和角色之间的映射关系,同时还适用于ABAC 阅读全文
posted @ 2021-04-19 23:06 y_w_k 阅读(2736) 评论(0) 推荐(0)
摘要:本篇简单记录框架搭建中关于角色权限设计的思路。权限系统基于RBAC的模式,通过在Ocelot网关中校验JWT的Token有效性,获取到角色Id,通过Casbin引擎验证用户是否有访问接口的权限。 设计思路如下图所示: 具体实现如下图所示: 技术选型: 1.为什么基于RBAC模式? 通过对比ACL和A 阅读全文
posted @ 2021-04-19 23:05 y_w_k 阅读(1673) 评论(0) 推荐(1)
摘要:一.为什么用Skywalking? 随着微服务业务复杂度的增加,接口间通信和校验会变的复杂,为了便于找到和调试,引入链路追踪监控和分析各接口明细的运行情况。 常用的链路追踪组件有以下3种,进行了对比: 选用Skywalking的原因是其基于Java Agent探针技术,通过字节码注入的方式实现调用拦 阅读全文
posted @ 2021-04-10 13:25 y_w_k 阅读(396) 评论(0) 推荐(0)
摘要:在微服务项目中,随着微服务数量的增加,统一修改配置时需要逐个修改并发布会非常繁琐。引入Apollo进行所有配置项的统一管理。 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境,不同集群的配置,修改后能够实时推送到应用端,并具备规范的权限,流程治理等特性。 一.A 阅读全文
posted @ 2021-03-25 11:47 y_w_k 阅读(146) 评论(0) 推荐(0)
摘要:本文在上文《微服务-基于Grpc的进程通信-Grpc服务注册与发现 (5)》基础中进行优化 proto文件在实际开发中较为麻烦,引入Protobuf-net.Grpc优化开发过程 1.创建类库 ProtobufNet (1)创建两个实体对象 ProtobufRequest和ProtobufRespo 阅读全文
posted @ 2021-02-06 14:17 y_w_k 阅读(733) 评论(2) 推荐(3)
摘要:在上一篇《微服务-基于Grpc的进程通信-简单使用 (4)》中,简单介绍了Grpc的使用,本文继续深入,完善Consul的注册和发现功能 1.引入包NConsul.AspNetCore 2.Grpc服务注册 创建NConsulHelper帮助类 1 public static async Task 阅读全文
posted @ 2021-01-28 23:39 y_w_k 阅读(853) 评论(0) 推荐(1)
摘要:项目中,在微服务内部通信使用Grpc来实现。Grpc和WebApi相比有以下特点:基于Http/2, 支持C++,Python,Ruby,Golang,java,nodejs,C# 等主流开发语言,Protobuf的格式比Json在数据传输上的性能更高。 下面介绍Grpc的使用: 服务端 : (1) 阅读全文
posted @ 2021-01-25 00:07 y_w_k 阅读(700) 评论(0) 推荐(1)
摘要:在微服务中网关必不可缺。网关包含了路由,认证,服务发现,日志记录等等。 本文通过使用Ocelot创建微服务网关。Ocelot是一个开源的API网关,功能强大,包括路由,负载均衡,请求聚合,认证,鉴权,限流熔断等等,通过配置即可完成。 在上文微服务-基于Consul的服务注册与发现(1) 中通过Con 阅读全文
posted @ 2020-12-25 00:06 y_w_k 阅读(315) 评论(0) 推荐(1)
摘要:本系列简单介绍自己搭建微服务架构的过程,如有问题,请多指正! 1.集群部署 微服务被调用后,如果意外停止服务,将会影响系统的部分功能运行,于是采用集群来解决这个问题。 创建.Net Core的WebApi项目,编译后启动 dotnet MicService.dll --urls="http://*: 阅读全文
posted @ 2020-12-24 23:53 y_w_k 阅读(323) 评论(0) 推荐(1)
摘要:1.创建鉴权中心 MicService.AuthCenter 新建一个WebApi项目 IdentityServer4配置 (1)引入IdentityServer4的Nuget包 (2)客户端模式配置 AuthConfig.cs public class AuthConfig { public st 阅读全文
posted @ 2020-12-23 11:36 y_w_k 阅读(350) 评论(0) 推荐(1)