摘要: 前言 实际项目中总能遇到一个"组件"不是基础组件但是又会频繁复用的情况,在开发MASA Auth时也封装了几个组件。既有简单定义CSS样式和界面封装的组件(GroupBox),也有带一定组件内部逻辑的组件(ColorGroup)。 本文将一步步演示如何封装出一个如下图所示的ColorGroup组件, 阅读全文
posted @ 2022-05-06 18:35 Stacking 阅读(141) 评论(0) 推荐(0) 编辑
摘要: Protocol Buffer是Google提供的一种数据序列化协议,是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。 指定版本 protocol 语言文件后面名 阅读全文
posted @ 2022-03-29 10:02 Stacking 阅读(748) 评论(0) 推荐(0) 编辑
摘要: Crank 是微软新出的一个性能测试框架,集成了多种基准测试工具,如bombardier、wrk等。 Crank通过统一的配置,可以转换成不同基准测试工具命令进行测试。可参考Bombardier Job实现。 安装Crank 运行如下两个命令分别安装Crank的cli(Controller)和Age 阅读全文
posted @ 2021-11-26 22:16 Stacking 阅读(651) 评论(0) 推荐(7) 编辑
摘要: 由于工作需要,研究了一下VS 项目模板生成的相关内容,本文做一下记录借助 .NET Core Template Engine创建一个加单的项目模板。 创建项目代码和配置文件 首先创建一个Minimal APIs项目,基于这个项目定义自己的项目模板。Template Engine 脱离$safepro 阅读全文
posted @ 2021-11-13 21:03 Stacking 阅读(851) 评论(0) 推荐(3) 编辑
摘要: Minimal APIs是.Net 6中新增的模板,借助C# 10的一些特性以最少的代码运行一个Web服务。本文脱离VS通过VS Code,完成一个简单的Minimal Api项目的开发。 创建项目 新建一个文件夹,用来管理我们的项目文件,文件夹内启动命令行,通过`dotnet new web`创建 阅读全文
posted @ 2021-11-06 17:40 Stacking 阅读(2357) 评论(7) 推荐(6) 编辑
摘要: RabbitMQ的日出输入方式有很多种:file、console 、syslog 、exchange。 在RabbitMQ中,日志级别有none(0)、critical(4)、error(8)、warning(16)、info(64)、debug(128)这5种,如果消息的级别高于日志的级别则不会被 阅读全文
posted @ 2021-07-05 20:35 Stacking 阅读(1876) 评论(3) 推荐(4) 编辑
摘要: .Net 开发中操作数据库EF一直是我的首选,工作和学习也一直在使用。EF一定程度的提高了开发速度,开发人员专注业务,不用编写sql。方便的同时也产生了一直被人诟病的一个问题性能低下。 EF Core + MySql的组合越来越流行,所以本文数据库使用MySql完成相关示例。 说明 由于工作中也一直 阅读全文
posted @ 2021-06-30 00:29 Stacking 阅读(10473) 评论(23) 推荐(45) 编辑
摘要: RabbitMQ Management插件还提供了基于RESTful风格的HTTP API接口来方便调用。一共涉及4种HTTP方法:GET、PUT、DELETE和POST。GET方法一般用来获取如集群、节点、队列、交换器等信息。PUT方法用来创建资源,如交换器、队列之类的。DELETE方法用来删除资 阅读全文
posted @ 2021-06-19 12:44 Stacking 阅读(1955) 评论(3) 推荐(3) 编辑
摘要: 本问主要介绍rabbitmqctl工具的常用命令。 vhost 一个RabbitMQ服务器可以创建多个虚拟的消息服务器,称之为虚拟主机(virtual host),简称为vhost。vhost之间是绝对隔离的,能将同一个RabbitMQ中的客户分开,又能避免队列和交换器等命名冲突。客户端在连接的时候 阅读全文
posted @ 2021-06-17 22:26 Stacking 阅读(461) 评论(2) 推荐(0) 编辑
摘要: 持久化 持久化可以提高RabbitMQ的可靠性,防止异常情况下的数据丢失。RabbitMQ的持久化分为三个部分:交换器的持久化、队列的持久化和消息的持久化。 交换器的持久化通过声明队列时将durable参数置为true实现。如果交换器不设置持久化,在RabbitMQ服务重启之后,相关交换器的元数据会 阅读全文
posted @ 2021-06-13 15:42 Stacking 阅读(729) 评论(1) 推荐(5) 编辑
摘要: 备份交换器 备份交换器,英文名称为Alternate Exchange,简称AE。通过在声明交换器(调用channel.ExchangeDeclare方法)时添加alternate-exchange参数来实现。 备份交换器工作流程如下: using (var channel = connection 阅读全文
posted @ 2021-06-09 21:16 Stacking 阅读(848) 评论(1) 推荐(4) 编辑
摘要: 开发中关键的Class和Interface有Channel、Connection、ConnectionFactory、Consumer等,与RabbitMQ相关的开发工作,基本上是围绕Connection和Channel这两个类展开的。 连接RabbitMQ 一个Connection可以创建多个Ch 阅读全文
posted @ 2021-06-06 11:46 Stacking 阅读(1244) 评论(2) 推荐(6) 编辑
摘要: 概述 gRPC 客户端必须使用与服务相同的连接级别安全性。 如调用服务时通道和服务的连接级别安全性不一致,gRPC 客户端就会抛出错误。 gRPC 配置使用HTTP gRPC 客户端传输层安全性 (TLS) 是在创建 gRPC 通道时服务器地址以https开头配置的。若要配置为http协议做如下修改 阅读全文
posted @ 2021-05-25 21:40 Stacking 阅读(722) 评论(0) 推荐(0) 编辑
摘要: gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架。 gRPC 的主要优点是: 现代高性能轻量级 RPC 框架。 协定优先 API 开发,默认使用协议缓冲区,允许与语言无关的实现。 可用于多种语言的工具,以生成强类型服务器和客户端。 支持客户端、服务器和双向流式处理调用。 使用 Pro 阅读全文
posted @ 2021-03-30 23:23 Stacking 阅读(443) 评论(0) 推荐(1) 编辑
摘要: 什么是消息中间件 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串、JSON等,也可以很复杂,比如内嵌对象。 消息队列中间件(Message Queue Middleware,简称为MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行 阅读全文
posted @ 2021-02-03 22:09 Stacking 阅读(517) 评论(0) 推荐(0) 编辑
摘要: Redis事务 Redis事务可以让一个客户端在不被其他客户端打断的情况下执行多个命令,和关系数据库那种可以在执行的过程中进行回滚(rollback)的事务不同,在Redis里面,被MULTI命令和EXEC命令包围的所有命令会一个接一个地执行,直到所有命令都执行完毕为止。当一个事务执行完毕之后,Re 阅读全文
posted @ 2021-01-28 20:52 Stacking 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 示例介绍 示例1:借助Redis实现购物车功能 示例2:Redis实现网页缓存和数据缓存 借助Redis实现购物车功能 每个用户的购物车都是一个散列,散列存储了商品ID与商品订购数量之间的映射。订购商品时,对购物车进行更新:如果用户订购某件商品的数量大于0,那么将这件商品的ID以及用户订购该商品的数 阅读全文
posted @ 2021-01-23 21:05 Stacking 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 本系列文章为学习Redis实战一书记录的随笔。 软件和环境版本:Redis:5.0.7 .Net 5.0 文中不会对Redis基础概念做过多介绍。 Redis数据类型和命令可在菜鸟教程学习:https://www.runoob.com/redis/redis-tutorial.html 。 示例介绍 阅读全文
posted @ 2021-01-19 19:53 Stacking 阅读(352) 评论(0) 推荐(0) 编辑