Kratos-Realworld 项目链接: GitHub - serendipity565/Kratos-realworld RealWorld有官方文档,并且有不同语言不同架构的实现。 本项目采用的是Go语言的kratos的微服务模式实现后端服务,Kratos微服务采用的是类似DDD的结构,在Kratos的官方文档有说明,下图是官方文档上的结构说明。 在本项目中,结构结构如下: 2024-06-20 开发 #Go
深入理解C语言指针 指针是C语言中一个非常强大且重要的概念,它不仅能够提供直接的内存访问,还能用于实现许多高级的数据结构和算法。然而,指针的概念相对复杂,新手程序员常常感到困惑。本文将深入探讨C语言中的指针,从基本概念到高级应用,帮助你全面理解指针的使用。 引入、什么是内存地址 内存地址是计算机系统用来访问内存中某个特定存储单元的标识符。每个存储单元都有一个唯一的地址,就像每个房子都有一个唯一的门牌号码。 内存地址的 2024-06-15 开发 #C/C++
Mike and gcd problem 题目链接: Problem - 798C - Codeforces 题目描述 迈克有一个长度为nnn的序列 A = [a1, a2, ..., an]A = [a_1, a_2, ..., a_n]A = [a1, a2, ..., an] 。如果序列 B = [b1, b2, ..., bn]B = [b_1, b_2, ..., b_n]B = [b1, b2, ..., bn] 2024-05-11 算法 #题解
怎么理解CAP理论 分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。 分布式系统的最大难点,就是各个节点的状态如何保持一致。CAP理论是在设计分布式系统的过程中,处理数据一致性问题时必须考虑的理论。 什么是CAP理论 CAP即: Consistency(一致性) Availability(可用性) Partition tolerance(分区容忍性) 这三个性质对应了 2024-05-09 开发 #后端
注册中心 注册中心基本概念 什么是注册中心? 注册中心主要有三种角色: 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。 服务消费者(RPC Client):在启动时,向 Registry 订阅服务,把 Registry 返回的服务节点列表缓存在本地内存中,并与 RPC Sever 建立连接。 服务注册中心(Registr 2024-05-09 开发 #后端
怎么样实现微服务 怎么具体实践微服务 要实际的应用微服务,需要解决一下四点问题: 1、客户端如何访问这些服务 2、每个服务之间如何通信 3、如此多的服务,如何实现? 4、服务挂了,如何解决?(备份方案,应急处理机制) 1、客户端如何访问这些服务 原来的Monolithic方式开发,所有的服务都是本地的,UI可以直接调用,现在按功能拆分成独立的服务,跑在独立的(一般都在独立的虚拟机上的)进程了。客户端UI如何访问他的 2024-05-06 开发 #后端
微服务 什么是微服务? 微服务(英语:Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关,而且复杂的服务背后是使用简单 URI 来开放接口,任何服务,任何细粒都能被开放。这个设计在 HP 的实验室被实现,具有改变复杂软件系统的强大力量。 要理解微服务,首先需要理解软件架构的演变。 单体式架构 2024-04-30 开发 #后端
01trie 01 trie树 类似于字典树的做法,将每一个数化为二进制数,看作01串,插入到字典树中。如图1: 典型例题 给一个长为nnn的数列,要求一个 aia_iai,aja_jaj ,使得 aia_iai^aja_jaj 最大。 异或的一些性质 0^1=1 1^1=0 0^0=0 p^p=0 p^0=1 自反性:a^b=c,b^c=a 问题解答 首先建好01trie树,以图1为例,然后对于 2024-04-25 算法 #算法
Go操作Kafka Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据,具有高性能、持久化、多副本备份、横向扩展等特点。 首先来看几个概念: 消息队列: Kafka 通过消息队列的方式来处理数据流。生产者将消息发布到 Kafka 集群中的主题(topic)中,消费者订阅这些主题并处理消息。这种解耦的模式使得生产者和消费者之间可以独立操作,从而提高了系统的可伸缩性和灵活性。 2024-04-20 开发 #Go
Go语言操作Redis Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端分片等特性,我们可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统。 Redis支持的数据结构 Redis支持诸如字符串(string)、哈希(hashe)、列表(list)、集合(set 2024-04-17 开发 #Go