
微服务
文章平均质量分 75
.NET跨平台
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
深入理解微服务中的高并发、高性能、高可用及处理方式
首先要明确的一个概念是: 高并发是根因,而高性能和高可用是结果。通俗点来说,就是指为了解决高并发这一现象,怎么做,才能保证系统的高性能和高可用?系统在巨大的流量洪峰(即指高并发场景)冲击下,依然能高效、稳定、正常地(即指高性能、高可用)对外提供服务,这是系统设计的主要目标之一。具体的指标定义,如:高并发方面要求 QPS(Queries Per Second,每秒查询率) 大于 10 万,高性能方面要求请求延迟小于 100 ms,高可用方面要高于 99.99%。转载 2024-11-18 01:53:36 · 225 阅读 · 0 评论 -
基于.NET 6 和 K8S API 的资源管理系统
该项目是基于 .NET 6 和 Kubernetes API 构建的资源管理工具,旨在简化 Kubernetes 集群的资源管理和操作。通过集成 K8S API,用户可以在应用内管理和监控容器、服务、Pods 等 Kubernetes 资源。K8sManagementProject 是一个功能强大且简洁的 Kubernetes 资源管理工具。通过结合 .NET 6 和 Kubernetes API,提供了用户友好的界面和命令工具,帮助用户在容器集群中更加高效地管理资源。原创 2024-09-21 11:19:29 · 651 阅读 · 0 评论 -
.NET Core微服务之服务间的调用方式(REST and RPC)
Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Go,Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。原创 2024-07-25 23:31:20 · 1374 阅读 · 0 评论 -
kubectl命令大全
滚动升级时,如果镜像版本一致,不会触发pod重建,容器更新。集群外部访问,通过任意Node IP:32072端口。集群内部访问,通过Cluster IP:80端口。把Pod的80端口映射到本地的8888端口。查看指定标签使用cpu最高的。,但上一个Pod一直处于。更新容器镜像的几种方式。转载 2024-06-27 22:44:42 · 264 阅读 · 0 评论 -
ASP.NET Core Web API中实现监控
要在ASP.NET Core Web API中实现监控,可以使用一些流行的开源项目。这些工具可以帮助你监控API的性能、请求、响应时间、错误率等。Serilog。原创 2024-06-05 16:37:33 · 1665 阅读 · 0 评论 -
APM(应用性能管理)之Elastic APM和Datadog APM
APM(应用性能管理)工具可以帮助你监控和优化 ASP.NET Core Web API 的性能。这些工具通常提供详细的性能分析、分布式追踪、错误报告等功能。原创 2024-06-05 16:37:01 · 1693 阅读 · 0 评论 -
ASP.NET Core Web API 项目中集成 Opserver 进行监控
Opserver 是由 Stack Exchange 开发的开源监控仪表盘,用于监控不同的系统和服务。它提供了一个统一的界面来查看和管理系统的健康状况和性能数据。Opserver 支持多种监控数据源,包括 SQL Server、Redis、ElasticSearch 等。原创 2024-06-05 16:26:16 · 550 阅读 · 0 评论 -
SkyAPM 集成到ASP.NET Core Web API 项目
SkyWalking 是一个开源的 APM(应用性能管理)工具,支持分布式系统的服务、容器和云原生架构。SkyAPM 是 SkyWalking 的一个 .NET 客户端库,用于监控和跟踪 .NET 应用程序。原创 2024-06-05 16:02:11 · 520 阅读 · 0 评论 -
基于.NET技术栈的分布式跟踪和日志聚合
通过以上步骤,你可以在 .NET 项目中集成 SkyWalking,用于分布式跟踪和性能监控。SkyWalking 提供了强大的可视化工具,帮助你了解每个单据在微服务中的处理路径和状态。这对于调试和性能优化非常有帮助。通过 SkyWalking,你可以实现单据的端到端追踪,了解每个单据在微服务中的流转路径和状态。SkyWalking 提供了强大的可视化工具,使你能够轻松查看和分析追踪数据,对于微服务架构的调试和性能优化非常有帮助。原创 2024-06-05 15:29:37 · 777 阅读 · 1 评论 -
基于.NET 技术栈在微服务架构中实现统一异常处理和日志记录
通过以上方法,可以在基于 .NET 技术栈的微服务架构中实现统一异常处理和日志记录。使用中间件实现全局异常处理,使用 Serilog 和 ElasticSearch 实现集中化日志管理,通过事件驱动架构处理业务流转日志,并使用分布式追踪工具实现跨服务的请求追踪。这些方法有助于提升系统的可靠性、可维护性和可监控性。原创 2024-06-05 15:28:30 · 425 阅读 · 0 评论 -
Containerd常用命令
这只是Containerd命令的一个简要概述。实际使用中,你可能需要参考Containerd的官方文档以获取更详细的信息和使用说明。Containerd提供了一组命令行工具,用于管理容器运行时的各个方面。是Containerd的主要命令行工具,用于执行各种容器操作。:Containerd可以通过插件来扩展其功能。:与快照相关的命令,用于管理容器快照。原创 2024-04-22 22:54:55 · 770 阅读 · 0 评论 -
Nacos应用场景
Nacos(前身为阿里巴巴的Nacos Config和Nacos Discovery)是一个开源的分布式服务发现和配置管理系统,它具有广泛的应用场景,特别适用于微服务架构和容器化应用。总之,Nacos是一个功能强大的工具,适用于构建和管理现代化的分布式、微服务化和容器化应用程序。它为应用程序的发现、配置和管理提供了一种集中且可扩展的解决方案。原创 2023-09-24 15:04:51 · 784 阅读 · 0 评论 -
使用Docker-Compose快速集群部署.NET6
Compose项目是Docker官方的开源项目。负责实现对Docker容器集群的快速编排,原理是它将你项目用到的所有容器按照你指定的启动顺序设置成一个文件,根据文件中的命令一次就可以完成部署。与Dockerfile不同的是,Dockerfile模版文件是定义一个单独运行的容器,而Compose是多个容器相互配合完成某一个任务的情况。比如要实现一个Web项目集群部署,另外里面除了Web容器本身之外还有数据库、负载均衡容器等等,那么就需要Compose进行一键部署。转载 2023-08-08 23:20:08 · 703 阅读 · 0 评论 -
Net6 对接 Skywalking
/获取全局的skywalking的TracId var TraceId = _segContext . Context . TraceId;TraceId//获取全局的skywalking的TracId var TraceId = _segContext . Context . TraceId;DateTimeNow//获取全局的skywalking的TracId var TraceId = _segContext . Context . TraceId;转载 2023-07-27 14:48:37 · 522 阅读 · 0 评论 -
Kubernetes Deployment 技巧
使用 JSON 合并 patch,如果你想更新列表,你必须指定整个新列表。新的列表完全取代现有的列表。此时,每个 Pod 都有一个运行 nginx 镜像的容器。中指定的容器列表只有一个容器。输出显示您的一个容器列表替换了现有的容器列表。输出显示正在运行的 Pod 与以前运行的 Pod 有不同的名称。在某些情况下,列表是替换的,而不是合并的。中的列表与现有列表合并。把运行的 Pod 的名字记下来。在前面的练习中,我们做了一个策略性的合并。,并创建了两个 符合更新的部署规范的新。列表被替换,而不是合并。转载 2023-07-27 13:38:11 · 264 阅读 · 0 评论 -
.NET Core + K8S 玩转容器编排
本文从使用docker创建image,到使用k8s创建第一个pod,到暴露第一个Service,再到使用ReplicaSet进行容器伸缩,基本串通了k8s的核心基础概念,从而对k8s有了基础的认知,希望对你的K8S之路有所帮助。由于篇幅有限,笔者也是初玩,k8s的很多功能并未一一罗列,那就留着下次分享吧。转载 2023-07-12 00:11:07 · 625 阅读 · 0 评论 -
一些常见的Dockerfile指令以及它们的解释说明
指令,您可以根据具体需求和项目要求进行进一步的调整和添加。这将复制当前目录中的所有文件和目录到容器内的工作目录。的编写非常灵活,可以根据您的项目结构和需求进行定制化。的.NET 6.0 SDK镜像作为基础镜像。这将指定容器中应用程序的运行用户为。这将作为容器启动时要执行的命令。的环境变量,并将其值设为。这将设置容器内的工作目录为。这将声明容器将监听80端口。目录挂载为容器的卷。原创 2023-07-09 21:27:23 · 421 阅读 · 0 评论 -
k8s部署.NET 6程序相关命令行和脚本文件
Dockerfile是您的镜像仓库地址。这些命令行和脚本示例可作为在Kubernetes上部署.NET 6程序的起点。根据您的具体需求和环境,您可能需要进行进一步的调整和自定义。确保在执行任何生产环境更改之前,充分测试和验证您的配置和脚本。转载 2023-07-09 21:20:33 · 816 阅读 · 0 评论 -
k8s+Jenkins+GitLab-自动化部署asp.net core项目
大致的部署流程是这样的:开发人员把做好的asp.net core项目代码通过git推送到gitlab,然后Jenkins通过(前提是配置好),自动从拉取gitlab上面拉取代码下来,然后进行build,编译、生成镜像、然后把镜像推送到Harbor仓库;然后在部署的时候通过k8s拉取Harbor上面的代码进行创建容器和服务,最终发布完成,然后可以用外网访问。(ps:看着我讲这么简单,但心里有许多小鹿在心里乱撞,没关系,下面将会好好的分享给大家)当然啦,上面只是粗略的,请看下图才更加形象。转载 2023-07-09 19:04:25 · 1693 阅读 · 1 评论 -
.NET Core + Kubernetes:快速体验
其实很长一段时间都在尝试自己把玩一下Kubernetes,说实话阻力确实不少,特别是看到很多基于二进制文件的搭建介绍,简直了。所以好的指导教程确实可以给我们带来事半功倍的效果,作为入门学习我们并不需要多么强大和安全的测试环境,基本套路都是先玩起来,再深入研究。转载 2023-07-09 18:12:30 · 473 阅读 · 0 评论 -
Docker 安装 zookeeper,redis,rabbitmq
一定要挂载数据卷。转载 2023-07-03 14:34:33 · 1247 阅读 · 0 评论 -
Kubernetes port-forward
Pod通过端口转发映射本地端口到指定的应用端口.在需要调试部署的pod、svc等资源是否提供正常访问时使用。实例:1.我在k8s集群中部署了prometheus的服务,用于收集系统的信息的svc采用的是ClusterIP模式,端口不能直接对外访问,但是我现在想通过的方式在浏览器测试资源是否正常,用实现,其实这种方法访问方式就类似使用NodePort的访问模式。2、将本地端口9800映射到svc的9100端口,如果不指定address则默认为127.0.0.1的地址.3.在浏览器输入端口进行访问.转载 2023-06-19 21:42:23 · 1758 阅读 · 0 评论 -
K8S 模拟项目 pod 发布
在不定义的情况下,缺省值为none,当历史版本较多时,不便于咱们回滚时辨认版本号。因此,建议定义为服务版本以帮助咱们辨认当前服务。转载 2023-06-19 21:29:52 · 476 阅读 · 0 评论 -
【k8s】将服务暴露给外部的方式
NodePort 服务是引导外部流量到你的服务的最原始方式。在所有节点(虚拟机)上开放一个特定端口,任何发送到该端口的流量都被转发到对应服务。相反,它处于多个服务的前端,扮演着“智能路由”或者集群入口的角色。这意味着你几乎可以发送任何种类的流量到该服务,像。在网络栈(HTTP)的应用层操作,并且可以提供一些服务不能实现的功能,注入基于。暴露的服务都会有它自己的 IP 地址,每个用到的。,它可以为你的服务自动提供 SSL 证书。,它是集群内的服务,集群外部无法访问。都需要付费,这将是非常昂贵的。转载 2023-06-17 02:43:19 · 892 阅读 · 0 评论 -
k8s部署nginx的三种方式
使用kubernetes来部署nginx服务,nginx一般是作为服务的入口,其在kubernetes的部署方式也大致相似,我将其分为三种----直接部署、使用数据卷部署、使用ConfigMap部署。个人建议使用ConfigMap部署。转载 2023-06-17 02:26:15 · 10394 阅读 · 0 评论 -
docker安装FastDFS
更改配置文件,因为之前已经改过一次了,所以现在直接拷贝。全过程,如有问题,请及时联系本人,评论区相互交流!将文件复制一份出来修改成想要的ip。将修改好的文件复制到容器中。安装过程需要关闭机器防火墙。转载 2023-06-17 01:36:19 · 516 阅读 · 0 评论 -
docker查看容器IP的方法
可以看到单个容器的IP。转载 2023-06-17 01:23:14 · 3173 阅读 · 0 评论 -
docker iptables详解
该环境安装了docker ,并启动了一个容器做了端口映射docker数据如何经过iptables接着来梳理,数据经过iptables是如何处理的。首先需要了解iptablesiptables有4表()5链(查看各个表命令Filter表:过滤数据包NAT表:用于网络地址转换(IP、端口)Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOSRaw表:决定数据包是否被状态跟踪机制处理INPUT。转载 2023-06-17 01:16:02 · 2182 阅读 · 0 评论 -
不同主机上的docker容器互相通信
最简单的思路,修改一台主机docker默认的虚拟网段,然后在各自主机上分别把对方的docker网段加入到路由表中,即可实现docker容器夸主机通信。只是一个在绑定到这上面的其他网卡间自动转发数据包的虚拟以太网桥,它可以使容器和主机相互通信,容器与容器间通信。问题是,如何让位于不同主机上的docker容器可以通信?启动时,会在宿主主机上创建一个名为。通对方容器ip,至此也就ok了。然后在v1,v2上把对方的。的虚拟网络接口,默认选择。位的子网掩码给容器提供了。网段加入到自己的路由表中。转载 2023-06-16 23:05:32 · 1647 阅读 · 0 评论 -
云计算核心技术Docker教程:exec 命令详解播
命令查看已经在运行的容器,然后使用容器 ID 进入容器。:设置用户名(format: [:]):即使没有附加也保持STDIN 打开。命令在运行的容器中执行相关命令。客户端命令行中我们可以输入。:分离模式: 在后台运行。中以交互模式执行容器内。命令对指定的容器执行。转载 2023-06-16 22:51:38 · 929 阅读 · 1 评论 -
K8S管理命令(一)
创建kubectl create < 资源类型 > < 资源名称 > --image = < 镜像名 > 【--port = --relicas】发布kubectl expose < 资源类型 > < 资源名称 > --port = --target-port = --type = ClusterIP | NodePort | .. .更新kubectl set image < 资源类型 > < 资源名称 > < 容器名 >= < 镜像名 >回滚。转载 2023-06-16 00:28:49 · 324 阅读 · 0 评论 -
Kubernetes API 列表获取
熟悉client-go的同学非常清楚,Kubernetes中的资源是按照GVR定义的,即,那么我们如何知道当前Kubernetes集群中有哪些资源的呢?他们的api路径是什么?转载 2023-06-15 20:54:46 · 898 阅读 · 0 评论 -
k8s 缺点
Kubernetes 是一种开源容器编排工具,它拥有广泛的应用和支持。转载 2023-06-15 18:38:23 · 914 阅读 · 0 评论 -
如何使用 Kubectl 端口转发访问远程 Kubernetes 应用程序
需要调试在 Kubernetes 集群中运行的应用程序?端口转发是一种连接到不可公开访问的Pod的方法。您可以使用此技术来检查数据库、监控工具和其他您希望在没有公共路由的情况下在内部部署的应用程序。端口转发内置于Kubectl中。CLI 可以启动隧道会话,将本地端口上的流量重定向到 Kubernetes 集群中的Pod。这是设置它的方法。转载 2023-06-15 01:08:14 · 738 阅读 · 0 评论 -
kubernetes 中patch与update比较
看了上述的介绍,大家应该对 K8s 更新机制有了一个初步的了解了。接下来想一想,既然 K8s 提供了两种更新方式,我们在不同的场景下怎么选择update或patch来使用呢?如果要更新的字段只有我们自己会修改(比如我们有一些自定义标签,并写了operator来管理),则使用patch是最简单的方式;如果要更新的字段可能会被其他方修改(比如我们修改的replicas字段,可能有一些其他组件比如HPA也会做修改),则建议使用update来更新,避免出现互相覆盖。转载 2023-06-14 20:06:14 · 1288 阅读 · 0 评论 -
使用kubernetes的几大优势
整理了一些使用k8s的理由和优势!转载 2023-06-14 19:39:57 · 1376 阅读 · 0 评论 -
一文搞定 Containerd 的使用
在学习 Containerd 之前我们有必要对 Docker 的发展历史做一个简单的回顾,因为这里面牵涉到的组件实战是有点多,有很多我们会经常听到,但是不清楚这些组件到底是干什么用的,比如等等。转载 2023-06-14 19:29:26 · 1726 阅读 · 0 评论 -
如何丝滑般将 Kubernetes 容器运行时从 Docker 切换成 Containerd
前面我们了解了containerd的发展历史和基本使用方式,本节我们就来尝试下使用containerd来作为 Kubernetes 集群的容器运行时。前面我们安装的集群默认使用的是 Docker 作为容器运行时,那么应该如何将容器运行时从 Docker 切换到containerd呢?转载 2023-06-14 18:30:14 · 1121 阅读 · 0 评论 -
k8s部署consul集群
Consul是由HashiCorp基于Go语言开发的支持多数据中心分布式高可用的服务发布和注册服务软件,采用Raft算法保证服务的一致性,且支持健康检查。但是在kubernetes里,当节点发生故障或者资源不足时,会根据策略杀掉节点的一些pod转而生成新的pod,而新生成的pod的ip地址和名称(hash值)都发生了变化。这时候我们如何保证新的pod和原有的pod的唯一标识不变呢?statefulset可以做到,他能保证pod具有唯一的网络标识。转载 2023-06-14 15:56:57 · 869 阅读 · 1 评论 -
docker ps 命令显示格式化和显示完整信息
参数可以实现格式化输出自定义列。,大概是不省略的意思,可以显示列的完整信息。在显示容器列表的命令后面加上。转载 2023-06-11 21:25:05 · 1101 阅读 · 0 评论