DDD-领域驱动设计在Go中的探索与实现 DDD概述DDD是由Eric Evans于2004年提出的一种软件开发方法,它强调将业务领域的专业知识与软件设计过程结合起来,从而实现高效的软件开发。DDD认为软件系统的设计应该围绕业务领域展开,而不是技术实现的细节。它强调设计应该基于领域的概念,而不是技术的实现细节。 DDD包含以下核心概念: 实体(Entity):实体是具有唯一标识符的对象,它在系统中具有独特的身份和生命周期。 值对象(V 2023-03-06 编程语言 > Golang > 应用架构 #DDD
网络篇-深入理解防火墙工作原理 背景防火墙这个名词相信我们都不陌生,在现实生活中我们在地下车库经常会看到下面这种防火卷帘门,这就是我们房子的防火墙(门),其作用是当发生火灾时隔绝火的蔓延,降低损失。 现实中的防火墙了解了,下面我们来了解了解计算机里的防火墙 计算机防火墙的概述计算机防火墙用于保护计算机和网络免受来自互联网或局域网内部的未经授权的访问、攻击、病毒和恶意软件的侵害。防火墙通过监控网络流量,识别和过滤掉非法或有害的 2023-03-01 操作系统 > 计网相关 #Firewalls
Nexus-搭建私服软件包 简介Nexus Repository是一种用于存储和管理软件包、镜像和元数据的仓库系统。它支持多种类型的仓库,如Maven、NPM、Docker等,可以帮助开发人员快速访问和下载所需的软件包,提高了软件开发的效率。Nexus Repository还提供了强大的权限控制和安全管理功能,帮助企业组织保护敏感数据和资产。 Nexus Repository具有以下几个特点: 多种仓库类型支持:支持多种 2023-02-13 基建相关 #Nexus
Jaeger-分布式链路追踪系统 简单介绍Jaeger是Uber开源的分布式链路追踪系统,其设计借鉴了Dapper和OpenZipkin,常用于监控和分布式系的故障排查,其主要的特性如下 分布式上下文传播 分布式事务监控 root原因分析 服务依赖性分析 性能/延迟优化 jaeger提供了可视化界面,可以很直观的观察数据链路 基本概念 tracer :表示一条链路 span:表示一个操作,隶属于tracer 系统架构 快速 2023-02-09 编程语言 > Golang > 开发框架 #链路追踪
Istio 大型微服务系统管理工具 背景 在基于的微服务体系结构中,都会存在一些需要解决的问题,例如当我们的不同服务(应用)直接进行交互访问,如何进行流量控制、鉴权、服务熔断、治理等问题,不同的微服务架构实现这些功能方式不一,像Spring Cloud与Netflix OSS是偏向于通过使用微服务的框架来实现,而基于Kubernetes的微服务体系是通过服务网格方式来进行实现 什么是服务网格(Service Mesh):服务网 2023-01-31 基建相关 > 云原生组 > 服务网格 #Istio
分布式系统-CAP理论 CAP定理在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Consistency)(等同于所有节点访问**同一份最新**的数据副本)注意这里和我们数据库一致性是不一样的,前者是副本的一致性,后者最终数据一致性 可用性(Availability)(每次请求都能 2023-01-09 基建相关 > 分布式篇 #CAP
Golang篇-深入理解GMP调度模型 之前对GMP的认识较为浅显,一直没有很深入的分析过GMP的调度模型,趁着这阵子有时间写一篇笔记记录一下 简介 携程是go中的一大特色,其占用较低的内存,通过携程使我们的应用能支持更大的并发,下面我们来剖析他的工作原理 概念G(goroutine)即Go协程,每个go关键字都会创建一个协程,它存储了goroutine的执行stack信息(运行时栈信息)、goroutine状态以及gorout 2022-12-20 编程语言 > Golang > 基础知识 #GMP
ETCD-高可用的 Key/Value 存储系统 简介是一种强一致性的分布式键值存储,它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它可以在网络分区期间优雅地处理领导者选举(Raft) 简单接口 读写使用标准HTTP工具,例如CURL 键值存储 将数据存储在分层组织的目录中,如标准文件系统中 观察变化监视特定键或目录的更改,并对值的更改做出反应 安装1.获取二进制文件 1wget https://github.com/e 2022-12-19 基建相关 > 数据库组 > ETCD #数据库