golang
牛宝贝儿哦
这个作者很懒,什么都没留下…
展开
-
FSM(有限状态机)golang基本状态操作
golang中fsm(状态机)使用和简单状态转换原创 2022-05-31 13:25:37 · 1226 阅读 · 2 评论 -
golang结构体转为JSON
/* * @Description: ZhaoHuiMing * @Version: 2.0 * @Autor: Seven * @Date: 2022-01-25 17:44:41 * @LastEditors: Seven * @LastEditTime: 2022-01-25 18:17:54 */package mainimport ( "encoding/json" "fmt")type User struct { ID uint64 Name string.原创 2022-01-25 18:19:04 · 1606 阅读 · 0 评论 -
什么事缓存雪崩,击穿,穿透?
雪崩:在同一时间大量缓存大面积的失效,大量的请求访问数据库,造成数据库的崩溃。解决方案:1.缓存过期的时间随机2.缓存数据增加标记,发现缓存失效,则更新数据到缓存中。3.缓存预热4.使用互斥锁击穿:缓存失效,在同一时刻大量的求情并发到数据库,造成数据库崩溃。数据库中有数据,缓存中没有数据。解决方案:1.互斥锁2.热点数据永不过期穿透:数据库中没有数据,缓存存也没有数据。大量请求落到数据库上,造成数据库的崩溃。解决方案:1.接口增加校验,大于0的ID才能进行访问原创 2022-01-21 12:20:56 · 942 阅读 · 0 评论 -
分布式理论之BASE理论
CAP理论是伪3选2理论CAP详解:(1条消息) CAP原则(定理)分布式系统设计_牛宝贝儿哦的博客-CSDN博客https://blog.csdn.net/weixin_54433389/article/details/122388294?spm=1001.2014.3001.5502BASE理论的内容:1.基本可用(Basically Available)2.软状态(Soft State)3.最终一致性(Eventually Consistent)基本可用呢:1.损失响应的时原创 2022-01-19 19:38:14 · 1372 阅读 · 0 评论 -
golang字符串分割,指定分割符
func main() { str := "10086:10:20:30:40:50:60:70:80:90:100:200:300:400:500:600:700:800:900:1000" st := ":" //指定分隔符 countSplit := strings.Split(str, st) ids := make([]orderSkuID, 0) var orderId uint64 var b uint64 for i, v := range countSplit { i.原创 2022-01-18 17:03:09 · 1024 阅读 · 0 评论 -
golang中map的使用方法
// 声明map 方案一var m map[string]string// 再使用make函数创建一个非nil的map,nil map不能赋值m = make(map[string]string)// 最后给已声明的map赋值m["yan"] = "su"m["bao"] = "bao"// 创建map方案二m1 := make(map[string]string)// 然后赋值m1["bao"] = "yansu"m1["bei"] = "niu"// 初始化 + 赋值一体化.原创 2022-01-16 22:59:26 · 968 阅读 · 0 评论 -
golang切割字符串(中文英文),(如***xx),字符串加*
package mainimport ( "fmt" "unicode/utf8")func main() { s := "mynameisyansu言素" // 取字符串的倒数地n位开始截取,到末尾位置 getRune(s, 1) getRune1(s, 5)}// 方案1func getRune(str string, n int) { j := len(str) for i := 0; i < n && j > 0; i++ { .原创 2022-01-15 19:33:29 · 620 阅读 · 0 评论 -
分布式系统的设计目标
可扩展性:通过对服务,存储的扩展,来提高系统的处理能力,使用多台服务器协同工作,来完成单台服务器无法处理的任务,尤其是高并发或者大数据量的任务。高可用:单点故障不影响整体业务,单点故障指系统中某个组件一旦失效,会让整个系统无法工作。无状态:无状态的服务才能满足部分宕机不影响其它部分,可以随时扩展需求。可管理:便于运维,出问题能不能及时发现问题,解决问题。高可靠:同样的请求返回的数据是一致的;更新后可以持久化;不会造成数据丢失。...原创 2022-01-12 20:13:03 · 392 阅读 · 0 评论 -
消息队列(消息中间件 )的有缺点以及使用场景
消息队列的优点:1:应用解耦。降低系统程序之间的耦合性。2:异步处理。不需要同步等待。3:流量削峰。将流量从高峰期引到低峰期去处理。消息队列的缺点:1:增加了系统的复杂性。将系统的幂等,消息的重复消费,消息的丢失带入到了系统之中。2:系统的可用性降低。一旦消息队列挂机,程序可能崩溃。3:数据一致性问题。消费端可能消费失败。应用的场景:日志采集,发布订阅。...原创 2022-01-11 22:44:04 · 307 阅读 · 0 评论 -
分布式,微服务,集群和SOA的概念,区别?
分布式:服务的不同模块部署在不同的服务器上,单个节点不能提供完整的服务,需要多节点协调才能提供服务,也可以是相同组件部署在不同节点上,但节点通过交换信息协调提供服务。分布式强调的是工作方式。微服务:原有的单个业务系统拆分成多个可以独立开发,设计,运行的小型应用。这些应用通过服务完成集合和交互。微服务强调的是业务需要彻底的组件化和服务化。集群:在不同的服务器部署同一套应用程序对外提供访问,实现服务的负载均衡(主从,备份),是同一组件的多个实例,在逻辑上形成了一个整体。单个节点可以提供完整的服务SO原创 2022-01-10 13:27:34 · 1232 阅读 · 0 评论 -
如何比较golang中的结构体是否相等
结构体是否能比较?如果是相同的无复杂类型的结构体是可以比较的。如果是复杂类型则不能进行比较。复杂类型:slice,map,function简单类型:int,float,string还可以比较的数据类型有:Boolean,Complex,Pointer,Channel,Interface和Array...原创 2022-01-09 23:21:21 · 1009 阅读 · 0 评论 -
Golang当中同步锁(Mutex,RWMutex)的特点和作用(面试题)
同步锁的特点:1.Mutex:当一个Goroutine(协程)获得了Mutex后,其他Gorouline(协程)就只能进入等待之中,除非该gorouline释放了该Mutex。2.RWMutex(读写锁):RWMutex在读锁占用的情况下,会阻止写,但不阻止读;RWMutex在写锁占用情况下,会阻止任何其他goroutine(读和写)进来,整个锁相当于由该goroutine(协程)独占。同步锁的作用:保证资源在使用时的独有性,不会因为并发而导致数据错乱,保证系统并发时的稳定性。..原创 2022-01-07 23:56:10 · 679 阅读 · 0 评论 -
kubenetes(k8s)集群搭建(kubeadm 方式)详细教程
下载wget命令#yum install wget关闭防火墙#systemctl stop firewalld#systemctl disable firewalld关闭 selinux#sed -i 's/enforcing/disabled/' /etc/selinux/config // 永久#setenforce 0 // 临时关闭 swap:#swapoff -a // 临时主机名://主节点#hostnamectl set-hostname k原创 2022-01-06 10:00:00 · 475 阅读 · 1 评论 -
golang变量的作用域
package mainimport "fmt"// 姓名var name stringfunc main() { if name, err := test(); err == nil { fmt.Println("name:", name) } fmt.Println("name:", name)}func test() (name string, err error) { name = "牛宝贝儿哦" return}预期的结果为:name: 牛宝贝儿哦na.原创 2022-01-04 06:00:00 · 263 阅读 · 0 评论 -
golang拼接字符串的方式
拼接字串串的方式共5种方式一:使用 “+”字符串只能被访问,不能被修改。所以在拼接字符串时,需要内存拷贝,会带来性能的消耗。但是可读性强,适合少量字符串拼接package mainimport "fmt"func main() { var ( a string = "一" b string = "二" c string = "三" stringJoin string ) stringJoin = a + .原创 2021-11-01 17:31:12 · 2209 阅读 · 0 评论