BLCL的博客小馆

📢📢📢 阿里云双十一,2核2G3M的服务器,99元一年,新老用户续费同享!!

首页

关于

归档

loading..

golang Map用法和源码分析

本文从源码角度学习 golang map的一些操作,和对应的源码分析。 Golang的map使用哈希表作为底层实现,一个哈希表里可以有多个哈希表节点,也即bucket,而每个bucket就保存了map中的一个或一组键值对。 声明和初始化 golang中的map声明非常简单,我们用map关键字表示声明一个map,然后在方括号内填上key的类型,方括号外填上value的类型。 1 var m map[string] int 这样我们就声明好了一个map。 但是要注意,这样声明得到的是一个空的map,map的零值是nil,可以理解成空指针。所以我们不能直接去操作这个m,否则会得到一个panic。 1 panic: assignment to entry in nil map 我们声明了..

更多
loading..
技术flutter

开源小事一则

这两天更新了一个两年前的 Flutter 插件,有感而发。前言上周收到了一封邮件,询问我两年前开发的一个 Flutter 插件,我惊讶于这个插件还有人在用,便回复了邮件,后来相互加了微信,解决他提的问题。提问的人很大方,一上来就发了一个微信红包,说问题解决之后再发一个,于是我花了大概两个多小时,总算是解决了问题,果不其然他又发了一个红包,让我对他好感倍增 🐶后来想想这个插件还是有用的,于是又更新了一下这个”年久失修”的插件 flutter-tree添加了 在线示例现在这个插件变的更加易用,有了更多的功能,完善的文档,希望对更多人有帮助吧。PS: 果然对于我来说金钱才是第一生产力啊 🐶

更多
loading..

golang 几种负载均衡算法(随机,加权随机,轮询,一致性哈希)

本篇我们详细讲解一些常用的负载均衡算法。 什么是负载均衡 负载均衡指多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。 通过某种负载分担任务,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接受到的请求的服务器独立地回应客户的请求。 负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题,这种集群技术可以用最少的投资获得接近于大型主机的性能。 在分布式系统中,多台服务器同时提供一个服务,并统一到服务配置中心进行管理,消费者通过查询服务配置中心,获取到服务到地址列表,需要选取其中一台来发起RPC远程调用。如何选择,则取决于具体的负载均衡算法,对应于不同的场景,选择的负载均衡算法也不尽相同。..

更多
loading..
TechConfigurationEESipeedLicheeRV

EE | Sipeed 荔枝派 LicheeRV | 1 开箱及上手入门

0x00 引言最近 不知道为啥 对硬件又很感兴趣了,可能是因为喵喵的树莓派出了点问题跑不起来了,于是想整点替代的东西。 由于疫情原因封校了,快递大多也不发货,不过学弟买了个 Sipeed 荔枝派 LicheeRV Dock 全志D1开发板,然而他玩不起来放着吃灰了,于是正好合适咱就拿过来折腾折腾好了。(好耶,有新玩具了! 啊,是块 RISC-V 架构的板子! 众所周知,喵喵一篇博客一般会写很多东西。这篇博客就是喵喵对这块板子的开箱体验及上手入门的折腾过程,咱尽量写正确的操作,可能有误导性或者尝试失败的操作放在了每部分的最后面,就留作个记录吧。 文中的先后顺序有所调整,不影响整体阅读 hhh。 (论喵喵翻车了多少次 0x01 开箱 & 板卡介绍喵喵手里的板子大概是图里的这款,相对而言挺便宜的了。 ..

更多

golang Slice的创建、添加、删除等操作和源码分析

本文从源码角度学习 golang slice 的创建、删除、扩容,深拷贝和slice的源码实现。 golang 中的 slice 非常强大,让数组操作非常方便高效。在开发中不定长度表示的数组全部都是 slice 。但是很多同学对 slice 的模糊认识,造成认为golang中的数组是引用类型,结果就是在实际开发中碰到很多坑,以至于出现一些莫名奇妙的问题,数组中的数据丢失了。 slice的用法 定义slice的几种方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 //声明一个slice,值是nil var s []int //静态显式初始化 初始化成一个大小为0的slice. //此时变量(s == ni..

更多

golang ReverseProxy源码分析

ReverseProxy是golang自带的简单网络Daili工具,仅适合自己测试用,不过麻雀虽小五脏俱全,功能还是挺多的。今天我们一起分析下这个工具的源码。 功能支持 支持自定义修改响应内容 支持连接池 支持错误信息自定义处理 支持 websocket 服务 支持自定义负载均衡 支持 https Daili 支持 url 重写 简单使用 最简单使用: 1 2 3 4 5 6 7 8 9 10 11 12 13 //Daili服务器ip addr := "127.0.0.1:4001" //后端真实服务器ip rs1 := "http://127.0.0.1:2000" url1, err1 := url.Parse(rs1) if err1 != nil..

更多
loading..
云原生技术Kubernetes容器编排集群管理集群联邦

Kubernetes、集群联邦和资源分发

Kubernetes 从比较早的版本就声称单机群可以支持 5,000 节点,而且也没有计划在短期内提高单个 Kubernetes 集群支撑的节点数,如果需要在 Kubernetes 中支持 5,000 以上的节点,更推荐使用集群联邦(Federation)的方式。People frequently ask how far we are going to go in improving Kubernetes scalability. Currently we do not have plans to increase scalability beyond 5000-node clusters (within our SLOs) in the next few releases. If you need cl..

更多
loading..
其他Windows Serverdockerdocker desktop无docker desktop无GUIWindows SubLinuxwsl

云主机WindowsServer无GUI上如何安装Docker环境

分享一个在云主机上的无桌面环境的Windows Server上,不安装Docker Desktop,运行Docker。系统要求Windows2016及以上即可。起因前段时间,一朋友委托我研究一个技术方案。说他技术这边搞了一个分布式的Windows程序,依赖Docker环境,现在只能在电脑上安装,非常不方便维护,扩容起来也很麻烦。于是我也花了差不多花了一百多块钱,一个周末,买了一个云主机来研究研究。太长不看利用DOCKER_HOST参数将windows的docker客户端通过tcp方式连接到wsl内的dockerd服务参数字段daemon-socket-option说起来是很简单,第一次操作起来还是遇到了很多问题。研究现在因为已经知道结论了,所有写起来理所当然,实际上花了大把时间才得到这个结局。众所周知,W..

更多

CSS实现字体阴影效果

shadow 对于阴影我们一般可以设置以下几种效果水平偏移:正值向右偏移阴影,而负值向左偏移。垂直偏移:正值向上偏移阴影,而负值向下偏移。模糊半径:阴影的长度。长度越长,阴影就越大越轻。没有负值。传播半径:这是另一个长度值,较大的值会导致更大、更长的阴影。颜色:这定义了阴影的颜色,就像我们为 CSS 颜色属性所做的那样。inset:默认值(初始)会产生阴影。使用 inset 值移动元素框架内的阴影,从而产生内部阴影(只有box-shadow支持)box-shadow 一般来说,提到实现阴影效果,我们首先想到的是box-shadow,但是这个属性只能用在盒模型上,为了显示立体感如弹框、按钮等。<p style="box-shadow: 0 0 10px red;">HelloWorld</..

更多
loading..

nsq - 一条消息的生命周期(一)

本篇我们带着大家一起走完一遍nsq的生命周期。 经过前面几篇的学习,相信大家对nsq已经有了一个大概的了解,我在写这篇文章的时候也看了很多其他人写的教程,发现大家对于分析系统每个点写的很不错,但是都很少有整体串起来一起走一遍,所以,我打算分成2-3章来带着大家从nsq启动到创建一个topic,然后发一条消息,最后再开个消费者接收消息,中间的所有流程都带大家一起走一遍,从而让大家能够深入地理解nsq的整体运行机制。 今天,这篇文章是整个 《一条消息的生命周期》第一章,我会从nsq的启动,nsqlookupd连接等方面开始讲起。 启动nsq 相信看了nsq这个系列的童鞋应该都知道nsq的启动脚本在哪里了吧,没错。就是在apps/nsqd/main.go 文件。我们可以切到当前目录,不过在这之前我们要先启动位..

更多
1555657585980