![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
云原生
文章平均质量分 73
summer_west_fish
本科毕业深圳大学,拥有Java开发10年的经验。 拥有Devops、敏捷和项目管理多年的经验,并且获得PMP、ACP和DOP等相关证书。
展开
-
GraalVM
GraalVM 和 Kata 都可以用于容器化环境中,GraalVM 提供高性能的运行时环境,适合在容器中执行各种类型的代码,而 Kata 提供更高级别的容器隔离,增强了容器的安全性。Kata 是一个轻量级的容器运行时环境,旨在提供额外的安全性保护,通过在容器中使用轻量级虚拟机(如Firecracker)来实现容器的隔离。GraalVM 是一个通用虚拟机,旨在提供多语言支持和高性能执行环境,可以执行多种编程语言的代码,并支持在不同语言之间互操作。GraalVM 提供运行时环境的安全性。原创 2023-08-06 14:24:16 · 359 阅读 · 0 评论 -
WebAssembly
总的来说,WebAssembly 是为了提高Web应用程序的性能和安全性而设计的,它解决了传统Web开发中的性能问题,提供了更多的编程语言选择,并提供了高效的跨平台执行环境。由于它的优势和特点,WebAssembly 在Web开发中逐渐得到广泛应用。WebAssembly(简称Wasm)是一种面向Web的二进制指令格式,用于在现代Web浏览器中运行高性能的可移植代码。WebAssembly 的主要设计目的是增强Web应用程序的性能和安全性。原创 2023-08-06 14:18:10 · 495 阅读 · 0 评论 -
Mecha
Mecha 是一个开源的多云 Kubernetes 管理平台,旨在简化和统一在多个云提供商上运行 Kubernetes 集群的管理和操作。它是由阿里巴巴集团开发和维护的项目。Mecha 的主要目标是提供一个统一的界面和工具,使用户能够更轻松地在不同的云提供商上创建、部署、扩展和管理 Kubernetes 集群,从而降低多云部署和管理的复杂性。它提供了一套功能强大的工具和自动化机制,使用户能够在多云环境下无缝地迁移、管理和调整 Kubernetes 集群。原创 2023-08-06 12:24:32 · 165 阅读 · 0 评论 -
xDS协议
xDS 协议是基于 gRPC 的,可以支持多种编程语言和平台,使得配置管理系统和 Envoy 可以在不同的环境中灵活部署和交互。Envoy 可以根据配置管理系统的动态变化实时更新路由规则、负载均衡策略、健康检查等配置,从而实现对流量的动态调整和管理。通过动态配置和负载均衡,xDS 可以实现服务的高可用性和容错能力,使得服务能够适应动态变化的网络环境。总之,xDS 协议是 Envoy Proxy 用于动态配置的一组管理接口,用于监听器配置,定义了 Envoy 接收请求的网络监听端口和配置。原创 2023-08-06 11:46:08 · 444 阅读 · 0 评论 -
Openshift
OpenShift 是一个由 Red Hat 公司开发和维护的容器应用平台,OpenShift 可以在本地部署或者使用 Red Hat 的托管服务(OpenShift Online、OpenShift Dedicated)。原创 2023-07-31 11:52:07 · 198 阅读 · 0 评论 -
Kata Containers
综上所述,Kata Containers 提供了一种虚拟化容器的解决方案,可以提供更高的安全性和隔离性,同时保持与容器生态系统的兼容性。它适用于需要更强安全隔离或对性能有一定要求的场景。但也需要权衡资源消耗和启动时间等因素。原创 2023-07-31 10:43:42 · 487 阅读 · 0 评论 -
什么是云原生和 CNCF?
云原生(cloud native)是一种基于云的基础之上的软件架构思想以及基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。云原生从字面意思上来看可以分成云和原生两个部分。云是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端,云包含了 IaaS、PaaS 和 SaaS。原生就是土生土长的意思,我们在开始设计应用的时候就考虑到应用将来是运行云环境里面的,要充分利用云资源的优点,比如️:云服务的弹性和分布式优势。原创 2023-07-28 15:53:02 · 1527 阅读 · 0 评论 -
Fluentbit
Fluent Bit(常简称为Fluent-Bit 或 Fluentbit)是一个开源的、轻量级的日志数据收集器(log collector)和 转发器(log forwarder),旨在高效地收集、处理和转发日志数据。它是Fluentd项目的一个子项目,旨在解决日志收集和处理的特定需求。原创 2023-07-28 15:32:59 · 1461 阅读 · 0 评论 -
MinIO对象存储
MinIO 是一个高性能的分布式对象存储系统。它是软件定义的,在行业标准硬件上运行,并且 100% 开源,主要许可证是 GNU AGPL v3。因为 MinIO 是专门为对象而构建的,所以单层架构可以毫不妥协地实现所有必要的功能。结果是一个同时具有高性能、可扩展性和轻量级的云原生对象服务器。虽然 MinIO 在二级存储、灾难恢复和归档等传统对象存储用例方面表现出色,但它在克服与机器学习、分析和云原生应用程序工作负载相关的挑战方面独树一帜。原创 2023-07-27 16:35:58 · 701 阅读 · 0 评论 -
DDD代码分层结构
通过合理的代码分层结构,DDD能够更好地组织代码、降低复杂性,并促进业务领域和技术实现之间的分离。这样的结构使得代码更易于理解、扩展和维护,同时也有助于保持代码的可测试性和可复用性。原创 2023-05-30 11:27:22 · 1083 阅读 · 0 评论 -
DDD 聚合根
在DDD中,聚合根是一种实体,它代表了一个聚合(Aggregate)的根节点。一个聚合是一组相关联的领域对象的集合,这些对象一起形成了一个有机的整体。聚合根是聚合内部的一个特殊实体,通过它我们可以访问和操作整个聚合。原创 2023-05-30 10:49:28 · 1769 阅读 · 0 评论 -
微服务架构下网关的技术选型
网关的角色是作为一个API架构,用来保护、增强和控制对于API服务的访问。它是一个处于应用程序或服务(提供REST API接口服务)之前的系统,用来管理授权、访问控制和流量限制等。这样REST API接口服务就被网关保护起来,对所有的调用者透明。因此,隐藏在API网关后面的业务系统就可以专注于创建和管理服务,无需关心这些策略性的请求。原创 2023-05-12 11:07:41 · 544 阅读 · 0 评论 -
微服务架构路线
众所周知,单体应用程序,由于其种种不足,几乎不支持敏捷方法。如果你想为一个大型或复杂的业务创建一个软件项目,最好从微服务架构开始。微服务架构是一种灵活的架构,可以显著性地提高应用程序灵活性、可扩展性等。原创 2023-05-12 09:39:56 · 457 阅读 · 0 评论 -
浅谈分布式系统中的补偿机制设计问题
我们知道,应用系统在分布式的情况下,在通信时会有着一个显著的问题,即一个业务流程往往需要组合一组服务,且单单一次通信可能会经过 DNS 服务,网卡、交换机、路由器、负载均衡等设备,而这些服务于设备都不一定是一直稳定的,在数据传输的整个过程中,只要任意一个环节出错,都会导致问题的产生。这样的事情在微服务下就更为明显了,因为业务需要在一致性上的保证。也就是说,如果一个步骤失败了,要么不断重试保证所有的步骤都成功,要么回滚到以前的服务调用。转载 2023-05-11 10:25:37 · 197 阅读 · 0 评论 -
Kubernates滚动更新策略
最小pod数是:replicas - maxUnavailable = 5-0 = 5,最小pod数是5,所以只能先启动一个pod,再删除一个pod。更新时最大的pod数是: replicas+ maxSurge = 5+1 =6,最大的个数是6。maxSurge和maxUnavailable可以用来决定更新是的最大pod数和最小pod数。是先启动一个pod再删除一个pod还是先删除一个pod再启动一个pod。滚动更新时最多可以多启动多少个pod。滚动更新时最大可以删除多少个pod。原创 2023-05-06 18:17:26 · 431 阅读 · 0 评论 -
DDD 领域驱动设计落地实践系列:战略设计和战术设计
本文主要围绕 DDD 领域驱动设计落地时间的三大过程进行了阐述,详细说明了战略设计阶段以及战术设计阶段的输入和输出。原创 2022-11-17 12:03:22 · 535 阅读 · 0 评论 -
Linux安装Keepalived
【代码】Linux安装Keepalived。原创 2022-11-09 15:57:30 · 1600 阅读 · 0 评论 -
SpringCloud OpenFeign
Feign 提供了很多的扩展机制,让用户可以更加灵活的使用。:修改日志级别,包含四种不同的级别:NONE、BASIC、HEADERS、FULL。:响应结果的解析器,http远程调用的结果做解析,例如解析json字符串为java对象。:请求参数编码,将请求参数编码,便于通过http请求发。:支持的注解格式,默认是SpringMVC的注解。:失败重试机制,请求失败的重试机制,默认是没有,不过会使用Ribbon的重试。1、日志配置可以通过配置Feign的日志级别来显示需要的日志。原创 2022-11-07 22:21:54 · 428 阅读 · 0 评论 -
Docker安装Prometheus + Grafana
【代码】Docker安装Prometheus + Grafana。原创 2022-11-07 17:56:00 · 1144 阅读 · 0 评论 -
SkyWalking监控视角与指标介绍
cpm 全称 call per minutes,是吞吐量(Throughput)指标。下图是拼接的全局、服务、实例和接口的吞吐量及平均吞吐量。第一条185cpm=185/60=3.08个请求/秒。原创 2022-11-07 10:10:50 · 3817 阅读 · 1 评论 -
Zookeeper作为协调服务发展史
zookeeper作为一款优秀的协调服务,在数据量不是特别大且读多写少的场景下,还是很好用的。但是随着数据量越来越大,处理压力也越来越大,这种情况下zookeeper也越来越力不从心了。这点从新一代大数据组件很少使用zookeeper,而使用zookeeper的组件正在减少对zookeeper的依赖(HBase)或者尝试摆脱zookeeper(2.8版本以后的kafka,尝试使用raft代替zookeeper)就可以看得出来。但是这也正是技术的魅力,江山代有人才出,各领风骚数百年。原创 2022-11-06 17:35:09 · 222 阅读 · 0 评论 -
SSO 单点登录和 OAuth2.0
SSO是Single Sign On的缩写,OAuth是Open Authority的缩写,这两者都是使用令牌的方式来代替用户密码访问应用。流程上来说他们非常相似,但概念上又十分不同。SSO大家应该比较熟悉,它将登录认证和业务系统分离,使用独立的登录中心,实现了在登录中心登录后,所有相关的业务系统都能免登录访问资源。OAuth2.0原理可能比较陌生,但平时用的却很多,比如访问某网站想留言又不想注册时使用了微信授权。原创 2022-11-04 22:12:59 · 564 阅读 · 0 评论 -
服务端高并发分布式架构演进
本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程。同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知。文章最后汇总了一些架构设计的原则。特别说明:本文以淘宝为例仅仅是为了便于说明演进过程可能遇到的问题,并非是淘宝真正的技术演进路径。原创 2022-10-30 09:32:13 · 574 阅读 · 0 评论 -
如何清理Docker占用的磁盘空间?
Docker一直非常稳定,没有出什么问题。但是,它有一个不大不小的问题,会比较消耗磁盘空间。如果Docker一不小心把磁盘空间全占满了,你的服务也就算玩完了,因此所有Docker用户都需要对此保持。当然,大家也不要紧张,这个问题还是挺好解决的。原创 2022-10-21 17:26:26 · 3497 阅读 · 0 评论 -
Linux安装haproxy
Linux安装haproxy原创 2022-10-19 18:02:24 · 1328 阅读 · 0 评论 -
Logstash数据同步
结果:原创 2022-10-12 11:31:23 · 1119 阅读 · 0 评论 -
Zookeeper集群搭建
到apache官网下载对应的zookeeper:Apache ZooKeeperhttps://zookeeper.apache.org/进入安装目录的 目录下,拷贝配置样本并进行修改:指定数据存储目录和日志文件目录(目录不用预先创建,程序会自动创建),修改后完整配置如下:配置参数说明:分别在三台主机的 目录下新建 文件,并写入对应的节点标识。Zookeeper 集群通过 文件识别集群节点,并通过上文配置的节点通信端口和选举端口来进行节点通信,选举出 Leader 节点。1、创建存原创 2022-10-08 11:43:02 · 752 阅读 · 0 评论 -
分布式系统的缓存设计
缓存就是数据交换的缓冲区。缓存的本质是一个内存 Hash。缓存是一种利用空间换时间的设计,其目标就是更快、更近:极大的提高性能。将数据写入/读取速度更快的存储(设备);将数据缓存到离应用最近的位置;将数据缓存到离用户最近的位置。缓存中的数据可能是提前计算好的结果、数据的副本等。典型的应用场景:有 cpu cache, 磁盘 cache 等。本文中提及到缓存主要是指互联网应用中所使用的缓存组件。缓存命中率是缓存的重要度量指标,命中率越高越好。缓存命中率 = 从缓存中读取次数 / 总读取次数。原创 2022-10-07 12:22:28 · 203 阅读 · 0 评论 -
服务网关与流量网关
传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关,客户端只能在本地记录每个微服务的调用地址,当需要调用的微服务数量很多时,它需要了解每个服务的接口,这个工作量很大。那有了网关之后,能够起到怎样的改善呢?但是 API 网关也存在不足之处,在微服务这种去中心化的架构中,网关又成了一个中心点或瓶颈点,它增加了一个我们必须开发、部署和维护的高可用组件。原创 2022-10-07 08:22:31 · 1512 阅读 · 0 评论 -
SpringBoot性能优化
在开始对SpringBoot服务进行性能优化之前,我们需要做一些准备,把SpringBoot服务的一些数据暴露出来。比如,你的服务用到了缓存,就需要把缓存命中率这些数据进行收集;用到了数据库连接池,就需要把连接池的参数给暴露出来。我们这里采用的监控工具是Prometheus,它是一个是时序数据库,能够存储我们的指标。SpringBoot可以非常方便的接入到Prometheus中。创建一个SpringBoot项目后,首先,加入maven依赖。然后,我们需要在配置文件中,开放相关的监控接口。原创 2022-10-05 21:07:17 · 1367 阅读 · 0 评论 -
解决RabbitMQ脑裂问题
如果一个节点在一段时间内(默认是60秒)无法与对等端节点联系,则节点将认为其对等节点是否已关闭。如果两个节点重新接触,都认为另一个已关闭,则这些节点将确定已发生分区原因:集群脑裂。原创 2022-09-26 18:12:40 · 1574 阅读 · 0 评论 -
Maven常见的编译报错
Maven 编译SpringBoot程序出现错误:2022-09-21 06:38:52 UTC| Exception in thread "main" java.lang.AssertionError上传好第三方jar和jar相关pom文件到私有仓库。原创 2022-09-23 14:29:58 · 6911 阅读 · 1 评论 -
实战RabbitMQ:消息丢失、消息重复 、消息积压
本篇主要讲了RabbitMQ的三种常见问题及解决方案,同时分享了一些作者本人工作中使用的心得,我想网上是很难找到的,如果哪一天用到了,不妨再打开看看,也许能避免一些生产环境可能出现的问题。我总结下来就是三点:1)、消息100%投递会增加运维成本,中小企业视情况使用,非必要不使用;2)、消息确认机制影响性能,非必要不使用;3)、消费者先保证消息能签收,业务处理失败可以人工补偿。工作中怕的永远不是一个技术不会使用,而是遇到问题不知道有什么解决思路。原创 2022-09-14 10:13:51 · 341 阅读 · 0 评论 -
常见负载均衡服务器介绍
当前大多数的互联网系统都使用了服务器集群技术,集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是 Web 应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等。在实际应用中,在 Web 服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为 Web 服务器流量的入口,挑选最合适的一台 Web 服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发。原创 2022-08-24 10:06:38 · 2865 阅读 · 0 评论 -
Docker Login私有仓库
Docker Login私有仓库原创 2022-08-19 10:22:22 · 3588 阅读 · 0 评论 -
Linux安装Redis
Linux安装Redis原创 2022-08-17 09:33:57 · 352 阅读 · 0 评论 -
Docker安装Nacos
Docker安装Nacos原创 2022-08-16 14:23:44 · 606 阅读 · 0 评论 -
Linux环境中编译C、C++、Python程序
1、安装vim 和 gcc工具2、编写程序3、编译+运行。原创 2022-08-08 15:31:59 · 440 阅读 · 0 评论 -
携程Apollo配置中心架构剖析
Apollo(阿波罗)是携程框架部研发并开源的一款生产级的配置中心产品,它能够集中管理应用在不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。Apollo目前在国内开发者社区比较热,在Github上有超过5k颗星,在国内众多互联网公司有落地案例,可以说Apollo是目前配置中心产品领域Number1的产品,其成熟度和企业级特性要远远强于SpringCloud体系中的SpringCloudConfig产品。...转载 2022-08-01 15:52:59 · 1780 阅读 · 0 评论 -
Docker安装Apollo
Docker安装Apollo。原创 2022-08-01 12:10:27 · 2778 阅读 · 0 评论