- 博客(294)
- 资源 (14)
- 收藏
- 关注
原创 一致性哈希负载均衡算法Golang实现
在实际业务环境中,为了进一步提高负载均衡效果,一致性哈希通常会结合虚拟节点(也称为副节点)的概念,即将每个物理节点映射到哈希环上的多个位置。:当一个数据项需要存储或请求时,一致性哈希算法会从数据项映射的位置开始沿哈希环顺时针查找,直到找到第一个节点,然后将数据项存储在该节点或由该节点提供服务。:当有新节点加入或旧节点离开时,只需要重新计算涉及节点的哈希位置,而不需要重新映射整个哈希环上的数据,大大减少了工作量。:通过合理的哈希函数设计,可以实现数据的均匀分布,避免某些节点负载过重,而其他节点闲置。
2024-04-12 19:30:00 235
原创 动态规划在电商订单计算的应用例子
你在网上买了一堆商品,比如说,你买了2件T恤,每件10块,5件袜子,每双5块,还有1个帽子,8块钱。比如,T恤买3件以上,每件就变成9块了。比如,如果你已经买了2件T恤,再买1件就变成了3件,这时候就得看看是按原来的10块一件算便宜,还是按促销的9块一件算便宜。然后,我们通过两层循环来填充整个数组,每次计算都考虑两种情况:不购买当前商品(取上一个商品的最小价格)和购买当前商品(取上一个商品的最小价格加上当前商品的价格)。最后,表格的最右下角那个格子,就告诉你,如果你买下所有这些商品,最少要花多少钱。
2024-04-12 18:00:47 384
原创 最小活跃数负载均衡算法Golang实现
在这种算法下,负载均衡器会持续追踪每台服务器上的活跃连接数量,并在接收到新请求时,将其分配给当前活跃连接数最少的服务器。由于它考虑的是实时的连接数,因此即使某台服务器配置较高,但如果其已经承载了大量活跃连接,新的请求就会被分配到其他相对空闲的服务器上。例如,如果某台服务器的处理速度比其他服务器慢,那么它的活跃连接数可能会一直保持在较高水平,从而导致负载均衡器无法将其识别为“最不繁忙”的服务器。此外,这种算法也需要一定的计算开销,因为它需要不断地更新和比较服务器的活跃连接数。,用于表示服务器的活跃连接数。
2024-04-12 07:30:00 214
原创 多时间尺度源储荷协调调度策略:储能电站特性分布与电网接入
因为这些能源是受天气影响的,有时候发电量多,有时候又不够,这就要求电网具有很强的调节能力。:文章建立了一个以系统运行成本最小化为目标的多时间尺度调度模型,通过混合整数规划优化方法,实现了对新能源消纳率的提升和系统运行成本的降低。白天太阳能发电量足,多余的电就存起来。储能电站,说白了就是大型的“电池”,能储存多余的电能,等需要的时候再释放出来。《考虑特性分布的储能电站接入的电网多时间尺度源储荷协调调度策略》(作者:金力等)这标题听起来有点拗口,但其实它讲的是关于电网里储能电站怎么更高效地工作的策略。
2024-04-11 15:09:59 312
原创 最短响应时间负载均衡算法Golang实现
在这种算法下,负载均衡器会跟踪后端服务器的历史响应时间,并将新的连接请求分配给那些具有最短历史响应时间的服务器。这种方法的优势在于它能够自动适应服务器性能的变化,比如CPU负载的增加或网络延迟的变化,从而提供更为平滑的用户体验。需要注意的是,这个例子假设服务器的响应时间是固定的,但在实际应用中,服务器的响应时间可能会随着负载和网络条件的变化而变化。因此,最短响应时间负载均衡算法通常需要实时监控服务器的响应时间,并根据最新的数据做出决策。首先,它需要一个可靠的机制来测量服务器的响应时间。
2024-04-11 10:17:49 527
原创 加权随机负载均衡算法golang实现
通过这种方式,加权随机负载均衡算法能够确保高处理能力的服务器承担更多的请求,而低处理能力的服务器则承担较少的请求,从而达到优化资源利用和提高系统整体性能的目的。值得注意的是,加权随机负载均衡算法并不保证绝对的公平性,因为权重较高的服务器可能会连续多次被选中,而权重较低的服务器可能长时间不被选中。加权随机负载均衡算法是一种根据服务器权重分配请求的算法,其核心思想是为每个服务器分配一个权重值,权重值高的服务器被选中的概率更大。接着,它遍历服务器列表,累加每个服务器的权重,直到累加的权重大于或等于生成的随机数。
2024-04-11 10:09:48 552
原创 碳交易机制下考虑需求响应的优化运行-MATLAB复现
文章里头提到的那些复杂的数学模型和算法,虽然听起来有点高大上,但其实它们就像是给能源系统装上了一个智能大脑,让它能更聪明地分配电力,减少浪费,还能降低碳排放,这对环保来说可是大好事。读完这篇文章,我真心觉得,通过科技和政策的双重努力,我们的能源系统不仅能更高效,还能更绿色,这对于我们每个人的未来都意义重大。碳交易机制的设计是文章的另一个亮点。文章从技术角度出发,提出了一个将需求响应与碳交易机制相结合的综合能源系统优化运行模型,这一模型不仅关注了经济效益的最大化,同时也兼顾了环境效益的提升。
2024-04-10 22:51:37 500
原创 31点经验分享与吐槽
本来在家安心的写 golibs,写到数据库这块时想写个备注,可能有些东西累积已经太久,然后就一发不可收拾,写了很多。放在代码仓库已经不合适了,删了又可惜,就放在这吧。 如果要用数据库中间件,个人看目前 小米的 Gaea 可能是相对更成熟的。但还是建议先在非核心系统试用,否则一次踩坑,可能足以致命 见过在 Go 框架中使用 Java 那套手写 xml 配置管理 SQL 的方案。很难理解,不同语言的开发理念是不同的,一定要这样南橘北枳吗? SQLHooks 是个好东西,但最好多测试,各
2022-05-20 12:06:34 331
原创 利用Chrome Headless模式,网页转PDF
原来一直是用wkhtmltopdf来将网页打印成PDF文件,它是基于QtWebKit内核的。但最近有个很奇怪的字体问题困扰着我。所以找找其它能在Linux下实现相同功能的方法。然后发现Chrome Headless模式可以实现我想要的,而且用Chrome来实现,可以排除掉很多Bug怀疑。 Chrome Headless模式相当于一个没有界面的浏览器,能实现很多功能,能实现pdf打
2017-07-21 23:34:02 9280 3
原创 Golang plugin 插件例子
好像手上有场景可以用Go1.8的插件来弄,写了个例子.plug3/plug3.go:package main/*封装Key到.soAuthor: XCLDate: 2017-7-16*/type ApiKey struct { key string}var myApiKey ApiKeyfunc init() { myApiKey = ApiKe
2017-07-16 15:22:05 7227
原创 map之类数据集合的几个代码小例子
Map之类的一些KV存储数据集合之类,在业务中使用蛮广泛的,其中,在CodeReview中发现,希望用map存储数据,但又能有序取出数据,以及并发安全的map的需求出现的比较多,而各自的代码实现都有点绕,其实有更好的封装,大家直接拿过来用就好了。给几个例子:几个集合的小例子
2017-06-25 12:52:09 1526
原创 随机数生成整理(C++,Go)
年前被随机数困扰了一下,年后才有时间来进行整理记录。随机数生成分为真、伪两种。通常用开发语言自带的随机函数来生成即可,但碰上较真的情况,可以调用第三方的真随机生成库或系统特殊设备来生成真随机数。Linux下可以用"/dev/random"或"/dev/urandom"来生成。关于这两个文件可以看下维基百科: https://zh.wikipedia.org/wiki//dev/
2017-02-12 15:27:00 1471
原创 Can't create more than max_prepared_stmt_count statements
前两天线上狂报"Error 1461: Can't create more than max_prepared_stmt_count statements".调完MySQL的max_prepared_stmt_count参数并重启部分服务才消停。调整参数只是暂时解决问题,根子在哪?还需要抽出时间排查代码和监控数据库,我初步怀疑是哪个业务场景同一时间突然产生大量的Prepare直至超过上
2016-12-25 18:15:05 9696
原创 HTTP/2服务端与客户端例子(Go)
圣诞节独自一人在家,火车票只抢到一张无座... 还是弄下Blog吧,不然Blog感觉要长草了。 这是翻以前的测试代码整理贴上来的。 一个完整的HTTP/2的服务端与客户端的Demo. 也许有人用得上。服务端代码:package main/*HTTP/2 服务端例子Author: XCLDate: 2016-12-25HTTP2 测试证书生成.go
2016-12-25 15:12:58 8566 1
原创 打造一个让你安稳休息的机器人助手
系统上线了,然后各种呼叫就开始没完没了,周末出去玩一下都不得安宁。而且无语的是,这些系统问题基本不是因为你写的代码有问题,而是她们误操作或需要查导各种数据,如:数据输反了,价格单位奇葩了或者有Fraud来了。真是烦燥。 难道以后到哪都要带着电脑跑。。。 我一直在找适合公司现状的好一点的方案,直到这几天在玩Slack Bot。 因为它的API很好用,我可以把一些常见的,特殊的。又不
2016-08-07 13:33:10 1407
原创 编译go1.7beta2
今天有碰到个"local error: no renegotiation"问题,就去尝试编译了下Go1.7beta2记录下: 1. 安装 go1.4 [root@ip-172-31-16-112 src]# export GOROOT=/root/go1.4[root@ip-172-31-16-112 src]# export PATH=$PATH:$GOROOT/bin
2016-07-01 00:41:47 6551
原创 Atom和Webstorm开发环境搭建
今天再折腾了一下开发环境,记录一下。一、Atom 配置C/C++开发环境 autocomplete-clang linter-clang二、Atom 配置Golang开发环境 go-plus 这个插件非常好用,安装后,初步建项目时,会get一堆相关插件. 如果其中有些东西没下载成功,手工安装也一样. 比如无代码提示之类, 可手工安
2016-04-24 11:06:30 4635
原创 glog的二次封装
二次封装glog的原因在于,现在有多个语言的不同服务在跑,为了日志管理方便,会统一下日志级别及日志显示格式。Go这边的日志一直用的glog.我之前也介绍过,这是个很好用的日志包,但它有它的一套定义,要统一风格的话,只能在其基础再封装一层,以满足通用的INFO/WARN/ERROR/FATAL/DEBUG定义之类。 这是我初次封装后的效果: 看起
2016-04-16 12:20:58 3952 2
原创 简转繁等中文转换(Golang)
之前项目需要个简体转繁体的功能,工期太紧,就自己撸了一个,效果还行. 在做这个的过程中发现简转繁其实远比想的要复杂.中间有很多简体字习惯的用法,在繁体中是不同的。且有些字如(後,后,臺灣,台灣) 在繁体中有几种写法和用法。简体字将其简化成了一个字... 然后相同的字,在不同的词组中时,有些用简体那个,有些用繁体那个... 最后,台湾繁体和香港繁体还有不同的差异.
2016-04-10 02:36:50 9054
原创 Atom插件go-plus的离线安装
Atom用了段时间了,用起来还不错。用来开发Go的话,需要安装go-plus这个插件。没在线安装成功,只好离线安装了,记录一下,说不定别人也需要. 步骤如下: 一。配置node环境 brew update brew install node brew reinstall node --with-full-ic
2016-01-24 13:53:26 6420
原创 Go语言条件变量的两个例子
在Go语言中 sync.Cond 代表条件变量,但它需要配置锁才能有用.var m Mutex c := NewCond(&m)或c := sync.NewCond(&sync.RWMutex{})之类.它有三个函数: wait/signal/broadcast 望文知义,和Windows下的InitializeConditionVariable与WaitForSing
2015-11-29 19:09:17 2285 3
原创 BlotDB数据库例子
一直想在Go系中找个类似PHP+Sqlite的组合,查了下,发现了BlotDB数据库正合用。 这个库在GitHub上star数很高,看来我是孤陋寡闻了 。 研究了下,它是个Key/Value数据库,会在磁盘上生成一个db文件,支持事务处理,支持只读打开..... 不过它不支持SQL语句,需通过相关函数和代码来手工实现。 弄了个例子:/*BlotDB 练习
2015-11-25 21:57:25 3420
原创 介绍一些有助于写出更好Go程序的工具
前面讲了测试和性能调优之类,这篇主要讲如何利用Go提供的一些工具和参数,帮助写出更好的代码.一. golint 检查代码规范二. go vet 检查代码存在的隐患三. -race 检查是否有race condition
2015-11-22 22:26:41 9122
原创 Go语言HTTP测试及程序性能调优
这篇要讲的东西,主要是HTTP,WebSocket的测试及如何调优Go程序的一些方法.分下面几个内容:一.httptest测试包二.性能测试三.怎么利用参数分析和调优程序四.在运行中实时监控调优一.httptest测试包对于HTTP和WebSocket测试,Go标准库有一个HTTP测试框架.在"http/httptest"包下. go1.5.1\go\src
2015-11-22 19:11:23 7125
原创 Go语言程序测试
最近一直在搞各种测试,然后今天周末翻翻书,发现特价萝卜的书上在测试方面写得挺全的。 这书是之前CU(chinaunix.net)论坛。搞活动得到奖品(还有作者亲笔签名),拿回来都没看完.因为写得太太太细了,又厚。 参考他的书及官网的东西,再把测试方面的东西过一下还是有点意思的.这篇主要讲这几点:一.Testing的几种不同形式功能测试:TestXxxx(t
2015-11-22 13:04:34 4548
原创 多懂点SQL可以写出更好的接口
引子: 今天被人说我MySQL懂得很浅,作为一个老OCP,我竞然无言以对。因为确实我这么多年一直都用的ORACLE,没玩过啥重量级的MySQL应用. 不过,这个刚好让我想起了前几天,一个API接口的讨论,可以拿出来聊聊. 当时的需求是如下图这样子在APP端显示一个商家列表(商家来自各行各业.).
2015-11-17 21:59:09 3812 2
原创 帐号重复登录处理
前面说了"一个帐号多设备登录的处理"这里说说另一种情况,在不允许重复登录的要求下,如何处理用户帐号重复登录后台服务? 这个看起来简单的问题,可很是纠缠了我一段时间。 一.选择哪种处理方法。 首先,有两种可选择的方法:
2015-11-15 23:26:55 6168
原创 一个帐号多设备登录的处理
多设备登录的问题处理,远没有看起来那么简单。除了设计理念,安全方面的考量外,在技术上处理也是个麻烦事。 列几种情况: 情况A: 同用户在多个同类型设备上登录。 如,同一个帐号在多个Android手机上登录. 情况B: 同用户在多个不同类型设备上登录。如,同一个帐号在手机,PC或Pad上登录. 情况C: 在一台
2015-11-15 17:40:33 21821 1
原创 文件存储相关的一些东西整理
做App后端,特别是像IM这类,会有很多语音和图片之类的大大小小一堆文件在服务端进进出出.这时,怎么存文件,就要好好想想了。 其实文件存储这回事,我并不陌生,不过以前做存储备份开发时,更多关注的是文件同步,文件消重.备份介质管理之类的东西。现在场景换了,不同了。存文件大致有下面几种选择: 1.直接保存在本地文件系统或网络文件存储上. 本地
2015-11-13 00:39:07 2532
原创 提升APNS消息推送质量的一些想法和验证程序
今天在想用什么样的方式,才能改善提高大级别时APNS的推送质量.有了个初步的想法。 首先简单列一下,APNS常见的一些限制和要注意的地方: 1.频繁建立和断开连接,被当成受到攻击,直接把链接给断了。 2.开发一堆并发,有个消息发生异常推送失败了,apns ack要等一段时间(可能有1sec左右的延迟)才返回,而 这期间,后面发的消息也会被认为有问题,直接被其
2015-11-12 00:38:23 1932
原创 HTTP/2和WebSocket及HTML5资料整理--WebSocket/HTML5篇
WebSocket比HTTP/2早发布几年,它是一个客户端与服务端间的通信协议,归属于HTML5. 它在开始时利用HTTP协议通讯。来确认对方是否支持WebSocket。当握手成功后,采用TCP传输,基本消息以数据帧为单位来传递。所以在这个协议里HTTP只是一过客,为了和HTTP协议区分开来,WebSocket采用ws://或wss://来确定通讯地址。 当客户端连接服务端时
2015-11-05 23:32:58 3300
原创 HTTP/2和WebSocket及HTML5资料整理--HTTP2篇
发现HTTP/2、WebSocket、HTML5这些东西很多人都听过,但具体到各有哪些特点?有什么区别?各自要解决什么问题? 其实很多人并不是那么清楚的。所以我之前在公司内部做了个这方面的分享。当然,我也是现抄现卖,其中大部分内容来自维基百科及网上各大神的分享。分享其实有时能收获更多,而在分享时确实有些东西又让我对一些东西更了解了。 首先说下HTTP/2。
2015-11-01 20:48:33 4755
原创 运维监控开发笔记
要把手上的一些东西理理,汇成一个运维监控的东西。本来这类东西(牛刀)大把了,不过我喜欢造轮子的习惯又犯了,主要是都是自己写的,清楚每个点,很容易把监控代码嵌入进去,只要注意控制好功能范围不挖大坑就行. 日志处理不和Hadoop扯上关系的话,可能用(ELK)的组合。 采集处理的东西有部分功能了,其中系统部份可以参考小米开源的Open-Falcon,相当完备的东西。这东西不错的,也听过小米秦晓辉的分享,有很多可借鉴的经验.可惜就我一个人没法太花时间研究,只能写的时候边写边看了,不过
2015-11-01 18:09:10 2204
原创 HTTP基本认证和摘要认证
今天试了下HTTP认证的资料. 主要是基本认证与摘要认证.其中基本认证是指 Base64(user:pwd)后,放在Http头的Authorization中发送给服务端来作认证.用Base64纯只是防君子不防小人的做法。所以只适合用在一些不那么要求安全性的场合。 不过如果是做WebAPI不是网页,且web服务器是自己可以控制的,其实没必要那么死板。 我就试了把Bas
2015-10-28 22:19:26 4551
原创 批量替换和转移目录的东东
拷,1点半了,写太晚了。 总之是个好东东。直接上代码了,不解释。/*批量替换和转移目录的东东 遍历指定目录,对于指定扩展名的文件, 查找并替换文件内容中的指定字符串,并 将其输出到新的目录下。原文件内容不变。 至于其它非指定的文件,也一并复制一份到新目录下。 使用Josn作为配置文件.Author:XiongChuanLiangDate:2015-10-23Lin
2015-10-24 01:34:46 1356 1
原创 身份认证和消息合法性验证方案分享
我最近要找一种合适的数据加密与身份认证方案,来保证服务的安全。没啥经验,一翻恶补之后,总算整合出一套方案。并用Go完成了Demo。本人对安全外行,不过自我感觉应当是个比较有安全感的身份认证方案。 不想写大段文字来说明,看得懂的,依着代码来瞧瞧吧.首先,协议包应当包含最少下面几个字段: type Proto struct { //... Timestam
2015-10-11 20:02:25 1309
原创 整理下Base64相关的东西(OpenSSL/GO...)
Base64在不同语言对接时,其实是有些小坑的,之前有碰过。首先Base64的是啥? 阮一峰有一篇写得很赞的文章说得很明白。然后是怎么编码?我用OpenSSL写了个Base64解编码实现:/* 用openssl来做Base64加解密. Author: xcl Date:2015-9-17*/#include #include #include #include
2015-09-19 23:13:37 3257
电赛优作 直流风机风力摆控制系统(原理图+PCB+程序源码+论文)
2024-07-22
电赛一等奖 简易数字频率计设计(原理图、PCB、源码、分析报告)
2024-07-22
全国大学生电子设计竞赛 简易风洞及控制系统(主控板+供电驱动)
2024-07-22
自己编写的分布式预测控制算法,基本阶跃响应模型的动态矩阵控制算法(matlab源码实现)
2024-06-14
单向拓扑结构下异构车辆排的分布式模型预测控制(文档+matlab程序)
2024-06-14
多智能体点对点转换的分布式模型预测控制方案与实践(文档加matlab实现源码)
2024-06-14
基于分布式模型预测控制的多固定翼无人机的共识控制(matlab源码)
2024-06-14
航天器交会的分布式模型预测控制
2024-06-14
多车队列控制算法,实现了三辆车的分布式模型预测控制(matlab源码/MPC)
2024-06-14
血液分离机直流电机PID速度调试系统,PCA8538实时显示
2024-06-14
Arduino兼容工业伺服电机Mechaduino:开源硬件与软件解决方案
2024-06-14
直流有刷伺服控制系统制作方案+资料
2024-06-14
STM32驱动库大全:STD库与HAL库的比较与应用
2024-06-14
开源工业伺服电机PID控制技术详解与实践
2024-06-14
超级牛的STM32 BLDC直流电机控制器设计教程与资源分享
2024-06-14
基于红外遥控的多功能智能电风扇控制器源码
2024-06-14
基于NRF24L01的无线PID电机转速控制器设计与实现
2024-06-14
优作 : 惯性飞轮侧向平衡自行车机器人(带板,源码,论文等资料)
2024-06-14
PID线跟随智能车,伺服转向智能车(带效果视频/BOM物料/原理图等资料全)
2024-06-14
(竞赛作品)飞思卡尔杯智能汽车CMOS摄像头组技术论文+弯道策略+PID精讲
2024-06-14
飞思卡尔光电组原理图+PCB+应用笔记
2024-06-14
4WD/3PA智能小车专用编码器与脉冲计数器技术解析
2024-06-12
智能汽车大赛论文:线性CCD方案与PID算法优化(“飞思卡尔”杯智能汽车大赛)
2024-06-12
(佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
2024-06-09
(优作)PID-小车类-两轮自平衡小车资料(L298N 模块原理图及使用说明+c源码)
2024-06-09
基于Cortex-M0的BLDC电机驱动与PID控制实现(原理图,数据手册,源码和相关固件)
2024-06-07
PID-小车类-手机遥控十分mimi蓝牙小车V2全部资料(购买物料清单,Android源码,STM32,PCB等)
2024-06-07
智能小车-PID算法控制小车直线行驶(制作步骤+程序+PID库)
2024-06-07
增量式PID-STM32实现整个过程分享(刚刚接触这块的人能用这个尽快进入状态)
2024-06-07
STCunio数字电源带PID数字闭环(带详细的代码说明文档)
2024-06-07
(代码经典)倒立摆-旋转倒立摆源码+Arduino-PID-Library
2024-06-07
精品-基于Arduino的简易磁悬浮装置(磁力对悬浮物的控制 原理图和源代码)
2024-06-06
六轴机器手臂运动控制-直流伺服反馈系统设计(比赛项目计划书+设计总结+硬件+源代码+上位机等)
2024-06-06
卡尔曼滤波器激光雷达SLAM算法设计-分析了基于运动学车辆模型的自动驾驶MPC横向控制算法 附matlab代码
2024-06-03
卡尔曼滤波器的MPC汽车控制器(python)智能汽车
2024-06-03
采用模型卡尔曼滤波,也称为线性二次估计(LQE)来恢复状态 两个控制器:线性二次调节器(LQR)和预测控制器(MPC)文档+程序
2024-06-03
(电赛优作)风力摆控制系统(B题)文档,源码,完整方案
2024-05-27
(大创赛作品)基于STM32F4的四轴飞行器控制系统-论文,源码,硬件设计
2024-05-27
直流风机风力摆控制系统(原理图+PCB+程序源码+论文)基于瑞萨100LGA单片机
2024-05-26
全国大学生电子设计竞赛,简易风洞及控制系统(主控板+供电驱动)工程文件分享
2024-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人