随笔分类 -  .NET Core/5/6

摘要:如果你看过之前几篇文章,应该已经Jenkins成功搭建了CICD环境,但是进入正式环境会有一些坑,不注意中招的话很难受,这里总结一下,避免重复消耗精力。 后门漏洞 Jenkins有后门,这是个老问题了。虽然早在18年就有人发现,而且当时Jenkins团队也快速打了补丁(2.137以后),但你下载的某 阅读全文
posted @ 2022-01-07 16:27 老马-Max 阅读(932) 评论(0) 推荐(2) 编辑
摘要:如何通过Jenkins完成镜像分发?基本做法是:打包镜像→上传镜像到仓库→脚本分发。镜像仓库也有很多,比如docker hub、Harbor等,今天这一篇讲一下基于阿里云镜像仓库的操作。 首先,准备一个阿里云镜像仓库,个人版是免费的。 然后下载这个插件: Publish Over SSH 这个插件主 阅读全文
posted @ 2022-01-06 14:05 老马-Max 阅读(898) 评论(2) 推荐(3) 编辑
摘要:准备工作 一、开启docker的tcp 我的服务器是linux,以端口2376为例,找到docker.service,在ExecStart下新增这段代码即可: -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock 效果图: 然后重载服务列表,重启d 阅读全文
posted @ 2022-01-05 09:26 老马-Max 阅读(1373) 评论(8) 推荐(5) 编辑
摘要:CI/CD 持续集成/持续部署,这概念有段时间了,网上有很多八股文,我就不写了。我只说它可以替你做到什么程度:当你需要更新一个版本,只需通过git把代码提交到指定的仓库,然后就可以自动打包、构建镜像、发布、运行。在这几个步骤前后,你还可以通过shell脚本或者其他类似的方法来更好的控制每一个环节。从 阅读全文
posted @ 2022-01-04 10:24 老马-Max 阅读(1791) 评论(5) 推荐(10) 编辑
摘要:之前开内部培训,说到实时web应用这一块讲到了SignalR,我说找时间用它做个游戏玩玩,后面时间紧张就一直没安排。这两天闲了又想起这个事,考虑后决定用2天时间写个斗D主,安排了前端同学写客户端,我写游戏逻辑和服务。 这个项目难度并不高,但是游戏逻辑还是挺绕的,联调过程中也发现解决了很多小问题。来园 阅读全文
posted @ 2021-12-04 13:00 老马-Max 阅读(2409) 评论(15) 推荐(24) 编辑
摘要:基本概念 超时、熔断、限流听起来好像很远,但实际上用在方方面面。很多人可能还搞不懂熔断是做什么,其实可以把熔断理解为一种防护措施。做个假设,在微服务体系下,某个下游服务响应很慢,然后随着时间推移,会有越来越多的请求堆积,从而会导致各种严重后果,单说连接池大量被占用就很要命。更不用说服务之间还要相互调 阅读全文
posted @ 2021-11-16 11:50 老马-Max 阅读(2586) 评论(0) 推荐(6) 编辑
摘要:有consul基础的都知道,consul可以发现新增的服务,剔除掉无效的服务,赋予应用自动伸缩的能力。而ocelot如果集成了consul,那ocelot也能拥有这些能力,还可以自主选择负载均衡策略,灵活性更强。 (建议看完前一篇文章再来实践这一篇,不然可能有难度) 上干货。 首先打开上一篇新建好的 阅读全文
posted @ 2021-11-08 15:58 老马-Max 阅读(1546) 评论(0) 推荐(4) 编辑
摘要:网关是什么 简单来说,网关就是暴露给外部的请求入口。就和门卫一样,外面的人想要进来,必须要经过门卫。当然,网关并不一定是必须的,后端服务通过http也可以很好的向客户端提供服务。但是对于业务复杂、规模庞大的项目来说,使用网关有很多无法舍弃的好处,比如可以进行统一的请求聚合来节省流量、降低耦合度,可以 阅读全文
posted @ 2021-11-06 11:31 老马-Max 阅读(2163) 评论(0) 推荐(6) 编辑
摘要:延续上一篇的话题继续,顺便放上一篇的传送门:点这里。 集群的必要性 consul本身就是管理集群的,现在还需要给consul搞个集群,这是为啥?因为consul单点也容易挂啊!万一管理集群的consul挂掉了,那么相当于上下游应用都变成了瞎子,看不到也调不到。所以集群的必要性不用我说了吧? Serv 阅读全文
posted @ 2021-08-07 16:29 老马-Max 阅读(1983) 评论(1) 推荐(5) 编辑
摘要:继续上一篇的话题,顺便放上一篇的传送门:点这里。 健康检查 经过之前的操作,我的consul已经支持自动扩展,并且调用也很靠谱。但是这里有个问题,一旦服务列表里的某个服务挂了,consul并不知道,还是会把实际无效的地址返回给我,就算重启consul容器也无法刷新到最新的状态。所以,咱们要监控服务可 阅读全文
posted @ 2021-07-26 09:45 老马-Max 阅读(2349) 评论(5) 推荐(0) 编辑
摘要:今天有写文章的时间了,开心。延续上一篇的话题继续,顺便放上一篇的传送门:点这里。 服务调用 既然服务注册已经搞完了,那么现在就开始调用这些注册好的服务。先做一下准备动作,把consul容器跑起来: 打开控制台确认正常: 然后多跑几个应用程序模拟多点部署: 程序跑完以后检察一下服务列表: 戳进去看看: 阅读全文
posted @ 2021-07-20 15:25 老马-Max 阅读(2254) 评论(6) 推荐(7) 编辑
摘要:先思考一些问题:它是做什么的、以及怎么使用它。带着这些问题往下走。 consul是做什么的 consul用于微服务下的服务治理。服务治理是什么?它包含但不限于:服务发现、服务配置、健康检查、键值存储、安全服务通信、多数据中心等。 为什么需要服务治理?举个例子:最开始的服务比较简单,各服务之间通过AP 阅读全文
posted @ 2021-07-17 10:46 老马-Max 阅读(3281) 评论(4) 推荐(5) 编辑
摘要:想要用代码写代码,肯定是绕不开反射的。反射的概念相比都不陌生,只是应用多少就因人而异,今天分享一个代码生成器的思路,仅供参考,不要过分依赖哦。 思路分析 众所周知,利用反射可以在程序运行时获取到任一对象的类型、属性、参数、方法等,并加以调用,利用这些获取到的可以在程序运行时追加各种自定义的功能。以C 阅读全文
posted @ 2021-05-21 16:18 老马-Max 阅读(4064) 评论(22) 推荐(12) 编辑
摘要:关于JWT的基本概念,如果有不清晰的同学,请点击这里,就不在这里赘述了。接下来聊聊JWT是怎么发挥作用的。 第一,安装nuget包 Microsoft.AspNetCore.Authentication.JwtBearer 第二,配置【Startup】 首先是【ConfigureServices】方 阅读全文
posted @ 2020-11-14 12:17 老马-Max 阅读(2052) 评论(0) 推荐(2) 编辑
摘要:JWT(json web token),它并不是一个具体的技术实现,而更像是一种标准。 JWT规定了数据传输的结构,一串完整的JWT由三段落组成,每个段落用英文句号连接(.)连接,他们分别是:Header、Payload、Signature,所以,常规的JWT内容格式是这样的:AAA.BBB.CCC 阅读全文
posted @ 2020-08-10 14:19 老马-Max 阅读(26013) 评论(0) 推荐(4) 编辑
摘要:序 上一篇博客把grpc的概念说了个大概,介绍了proto的数据类型,基本语法,也写了个小demo,是不是没那么难? 今天要从理论到实际,写两个微服务,并利用grpc完成两者之间的通信。只是作为demo写的话会十分简单,毕竟理解为主。 服务端 首先要拿出之前写好的proto文件,然后修改两个属性: 阅读全文
posted @ 2020-07-13 20:25 老马-Max 阅读(1068) 评论(4) 推荐(1) 编辑
摘要:什么是rpc? rpc,全称Remote Procedure Call,通过它,你可以像调用本地方法一样调用远程服务。前端可以调用后端方法,后端也可以调用前端方法。其实这个概念并不陌生,上一篇关于web实时应用的文章也提到了这个概念,并实现了前后端互调的操作。 在正式开始使用grpc之前,我们还需要 阅读全文
posted @ 2020-07-03 16:30 老马-Max 阅读(1947) 评论(0) 推荐(2) 编辑
摘要:何为实时 先从理论上解释一下两者的区别。 大多数传统的web应用是这样的:客户端发起http请求到服务端,服务端返回对应的结果。像这样: 也就是说,传统的web应用都是客户端主动发起请求到服务端。 那么实时web应用呢?它不需要主动发起请求,服务端可以主动推送信息到客户端。 举栗子的话,实时聊天工具 阅读全文
posted @ 2020-06-26 17:08 老马-Max 阅读(4925) 评论(8) 推荐(11) 编辑
摘要:前言 netcore用了这么久,虽然多数都是部署在centos系统,但也有部署在windows上的情况。最省力的部署方式是发布后直接在发布目录打开cmd,运行dotnet命令。虽然很省力,但是保留一个命令窗口,如果需要同时部署多个程序的话,就会保留多个窗口,而且还不能叉掉,对强迫症(我这种)来说简直 阅读全文
posted @ 2020-02-15 23:15 老马-Max 阅读(612) 评论(0) 推荐(0) 编辑
摘要:开发的时候经常有固定某时操作某资源的需求,解决这种需求最简单的就是定时任务。 如果没有特别刁钻的要求,建议直接找来用,比如这一款:TimedJob 下载完以后去Startup里设置一下: 再然后新建一个类,继承Job,添加特性,如下: 解释一下: Begin:任务开始时间 Interval:间隔(毫 阅读全文
posted @ 2019-10-20 00:09 老马-Max 阅读(2336) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示