快乐的程序员
GO 函数内部能改变数组元素吗 GO 函数内部能改变数组元素吗
写在前面很多人对数组和切片以及函数参数理解不够深刻。今天就来讲一讲 数组和切片go中数组类型包括元素数量,即 [1]int,[2]int,[3]int这是3个不同的数据类型。 切面底层是指向一个数组的结构体,并且数组的大小、地址可能会发生变
2024-03-13
从零搭建一个网站 从零搭建一个网站
写在前面最近老丈人叫我帮他做个官网,老婆家里是生产地坪漆的,自己的工厂生产,然后销售到各个代理点、工地等等。 于是就有了从零开始,搭建一个网站。 买云服务器、域名、备案我买的是腾讯云,挺贵的,450一年。 买了一个域名,并且备案好。由于是企
2024-03-13
如何实现大数求组合 如何实现大数求组合
C(10000,3) 如何实现n个互不相同的数的全排列是n!个。 一个有n个元素的集合的含有m个元素子集的个数为C(n,m)。 C(n,m)的计算方式: 1.公式:C(n,m) = n!/((n-m)! * m!),在算法上较难实现,阶乘很
2024-03-13
架构 秒杀系统优化思路 架构 秒杀系统优化思路
写在前面秒杀系统是经常需要优化的系统,对架构设计要求很高,面试过程中也经常问到,今天就来系统学习一下如何优化秒杀系统 秒杀场景 每个人都读自己的数据:im系统,如qq,微博 一个人读多个人的数据:微博关注人的动态、微信朋友圈动态、抖音关注的
2024-03-13
数据库设计规范 数据库设计规范
基础规范(1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用utf8mb4字符集 解读:万国码,无需转码,无乱码风险 (3)数据表、数据字段必须加入中文注释 解读
2024-03-13
架构设计:反向依赖与解耦 架构设计:反向依赖与解耦
写在前面你有没有遇到过,修改db地址需要同时修改上有多个服务的配置?者某个db不可用了导致上有多个服务不可用? 这是架构耦合问题,多个服务之间相互依赖,当某个服务不可用或者做出修改,需要上游服务同时做出修改。这就是你的问题,导致我需要修改(
2024-03-13
引用外部资源最好自己封装一层 引用外部资源最好自己封装一层
写在前面在公司开发业务过程中发现经常需要引用外部资源,包括外部服务rpc、http、rocketmq,还有外部依赖包log、error、common等,在代码各个模块、各个文件里面直接引用,这有什么问题呢? 需要替换某个包的时候需要修改所
2024-03-13
高性能的4个指标 高性能的4个指标
响应时间系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。 吞吐量单位时间内处理的请求数量。 QPS每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。 用户并发数同时承载
2024-03-13
如何解决单点故障问题 如何解决单点故障问题
写在前面虽然目前都是微服务,多机房、多实例部署,但难免还是会存在单点服务。例如写数据服务、登录服务、服务发现等,如何解决单点故障问题呢? 什么是单点故障通常分布式系统采用主从模式,一个主机连接多个处理节点,主节点负责分发任务,而子节点负责处
2024-03-13
谈谈缓存穿透、缓存雪崩、缓存击穿 谈谈缓存穿透、缓存雪崩、缓存击穿
写在前面面试的时候经常被问到缓存失效的问题,今天就来详细谈一下 缓存穿透缓存穿透(cache penetration)是用户访问的数据既不在缓存当中,也不在数据库中 缓存穿透发生的场景一般有两类: 原来数据是存在的,但由于某些原因(误删
2024-03-13
mac 安装 protoc mac 安装 protoc
用brew  安装 protoc brew install grpc brew install protobuf brew install protoc-gen-go brew install protoc-gen-go-g
2024-03-13
GO每日一题(7) GO每日一题(7)
`# 下面代码会输出什么 type People struct { Gender bool Name string } func (p *People) GetName() string { return p.Name } t
2024-03-13
14 / 23