随笔分类 - .Net Core
摘要:方案描述 在 docker 容器中想操作宿主机,一般会使用 ssh 的方式,然后 .Net 通过执行远程 ssh 指令来操作宿主机。本文将使用 交互式 .Net 容器版 中提供的镜像演示 .Net 在容器中如何操作宿主机。 前期准备 1. 在宿主机上生成 ssh key ssh-keygen -t
阅读全文
摘要:背景介绍 在之前的文章 - 交互式 .Net 中已经介绍了什么是交互式 .Net,文中是通过 Visual Studio Code 插件的方式实现交互式 .Net 的。现在,我们将使用容器的方式实现交互式 .Net。 镜像构建 1. Dockerfile FROM mcr.microsoft.com
阅读全文
摘要:背景介绍 最近在 Github 看到了一个有趣的项目 amazing-qr,它支持生成普通二维码,带图片的艺术二维码,动态二维码。 项目是用 python 编写的,以命令行的方式运行生成,不太方便调用,因此,我把它封装成了 Api。 示例展示 1. 普通二维码 2. 图片二维码 3. 动态二维码 如
阅读全文
摘要:名词解析 1. 交互式 交互式是指输入代码后可直接运行该代码,然后持续输入运行代码。 2. 交互式 .Net .Net 是一种编译型语言,不像 python 这类的脚本型语言,可以边输入代码边运行结果。幸运的是,软微推出了 interactive 这个项目,使交互式 .Net 成为可能。 3. 交互
阅读全文
摘要:背景 据我所知,目前 kubernetes 本身或者其它第三方社区都没提供 kubernetes 的文件系统。也就是说要从 kubernetes 的容器中下载或上传文件,需要先进入容器查看目录结构,然后再通过 kubectl cp 指令把文件拷贝进或出容器。虽然说不太麻烦,但也不太方便。当时正好推出
阅读全文
摘要:命令行工具(CLI) 命令行工具(CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。 通常认为,命令行工具(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行工具的软件通常需要用户记忆操作的命令,但是,由于
阅读全文
摘要:RPA概念 RPA全称为:Robotic Process Automation,即机器人流程自动化。 Robotic:这里的机器人是一个虚拟的概念,并不是需要一个实体的机器人,它只是流程的执行体,或者说执行单元。 Process :对应的就是业务逻辑,将业务需求梳理成一个可以被执行的流程,然后通过“
阅读全文
摘要:什么是Serverless Serverless 是一个当今软件世界中比较新的话题。它并没有一个普遍公认的权威定义,每个人每个企业对它的解释可能都有不同,而 Serverless 正是在这种情况下不断发发展的。但是就算如此,有一些 Serverless 的特征还是被广泛认可的: 服务端的主机和进程完
阅读全文
摘要:背景 工作中经常会有定时任务的需求,常见的做法可以使用Timer、Quartz、Hangfire等组件,这次想尝试下新的思路,使用RabbitMQ死信队列的机制来实现定时任务,同时帮助再次了解RabbitMQ的死信队列。 交互流程 1. 用户创建定时任务 2. 往死信队列插入一条消息,并设置过期时间
阅读全文
摘要:背景 有一套特定规格的应用(程序+数据库),当有业务需求时,就需要多部署应用,并且所有的应用都使用一个共同的后台来管理。应用新增后,如何通知后台更新连接串成了一个关键的问题。于是就产生了使用ZooKeeper管理数据库连接串的奇思异想。具体方案如下: 1. 运维负责搭建数据库,并执行初始化脚本,然后
阅读全文
摘要:前言 由于工作原因,需要用到今日头条的Marketing API做一些广告投放的定制化开发。然后看现在网上也没多少关于头条Marketing API的文章,于是便就有了该篇文章。 头条Marketing API主页地址:https://ad.toutiao.com/openapi/index.htm
阅读全文
摘要:前言 最近需要使用到消息队列相关技术,于是重新接触RabbitMQ。其中遇到了不少可靠性方面的问题,归纳了一下,大概有以下几种: 1. 临时异常,如数据库网络闪断、http请求临时失效等; 2. 时序异常,如A任务依赖于B任务,但可能由于调度或消费者分配的原因,导致A任务先于B任务执行; 3. 业务
阅读全文
摘要:Helm介绍 在Kubernetes中部署容器云应用(容器或微服务编排)是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过Helm能够帮助开发者定义、安装和升级Kubernetes中的容器云应用。同时,也可以通过Helm进行容器云应用的分享。
阅读全文
摘要:背景 之前一直有朋友问,.Net Core + Linux环境有没有类似Windows服务的东西。其实是有的,我了解的方法有两种: #1 创建一个ASP.Net Core的Web项目(如Web API),然后通过添加中间件(Middleware)的方式来启动任务; #2 创建一个.Net Core的
阅读全文
摘要:前言 Nuget是ASP .NET Gallery的一员,是免费、开源的包管理工具,专注于在.Net / .Net Core应用开发过程中第三方组件库的管理,相对于传统单纯的dll引用要方便、科学得多。其中nuget.org是最著名的Nuget公开库,但是企业内部开发的(业务)公共组件不可能都往公开
阅读全文
摘要:前言 随着前后端分离模式与微服务架构的出现,Web API变得越来越重要及普遍。而后出现的网关技术,使开发者更倾向于使用二级/多级目录来暴露Web API,一是暴露的端口更少,方便管理;二是在网关中可以处理一些公共的事务,如认证。但swagger默认是适配根(root)目录的,想要适配二级/多级目录
阅读全文
摘要:前言 随着前后端分离开发模式的普及,后端人员更多是编写服务端API接口。调用接口实现文件上传是一个常见的功能,同时也需要一个选择文件上传的界面,可以编写前端界面上传,可以使用Postman、curl来模拟上传请求。上述的方式多多少少有点麻烦。Swagger作为Api说明文档及调试工具,如果它能提供文
阅读全文
摘要:本文希望从技术角度来探讨下微服务,因此,不会过多地谈及如何根据业务进行微服务划分,更多是介绍微服务的相关技术,微服务的业务划分方法可参考“领域驱动设计“相关方法论。 微服务的两个程度 一、服务化 复杂的单体架构会有以下的挑战: (1)项目启动初期,需要寻找一个能尽量涵盖所有需求的开发语言,技术选型难
阅读全文
摘要:目录 执行原理 环境变量 Spring Cloud Config Server 挂卷Volume Config Server vs Volume 执行原理 1. 配置读取顺序:与代码先后顺序一致。 以上代码会先读取appsettings.json,再读取cussettings.json,cusset
阅读全文