自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魏小言的博客

BAT资深工程师,Cloud Native 拥护者,敏捷实践者,坚守开发一线打磨工匠技艺的架构师。

  • 博客(350)
  • 资源 (10)
  • 问答 (9)
  • 收藏
  • 关注

原创 新服务入驻生产环境 CICD 全流程、自动化脚本教程

组织往往会根据自身的研发体系氛围、文化,选择最契合的方式。上述的方式虽然整体可行,在各阶段落地、调试成本、和人智成本相对较高,不建议个人或小规模状态下使用。新服务功能完成测试后,将会进行生产环境的入住,对外提供产品、功能支持。那么如何规范的、安全的、自动化的把本地服务移植到生产环境呢/?为进行服务价值可持续、高效的敏捷交付,组织往往会引入 CICD 的执行方式。进行 自动化、安全、规范、且高效的服务移植。CICD 在实际应用中虽然实现方式,千差万别,但核心功能是同一的。熟悉的同学可通读,感兴趣的可以精度。

2023-10-20 11:30:00 239 1

原创 白盒 SDK 加密 —— Go 语言中直调 C 动态库实现

这里是将 Goland 中的字符串转为 C 中的格式。在重构的历史项目中,有一点是语言转换:从 PHP 转至 Goland ,在压缩资源的同时,享受语言实现级别进步带来的性能红利。在 Goland 中调用 C 库接口,允许存在中间处理环节,即二次封装。在注释主体中,是对 C 库接口的二次封装,类似 Hook 方式,给予开发者适当的操作空间。现 Goland 实现中,使用直调 C 动态库的方式实现【无成熟的。中,前两行标记了当前 C 库调用动态库 的位置及特征。组件也是通过 动态库的方式实现。

2023-09-28 15:31:18 1370 6

转载 【HELLO NEW WORLD】一封来自开放自动化时代的邀请函

施耐德电气开放自动化平台,迈向开放、高效与韧性、可持续、以人为本的未来工业。是人类在信息世界开启的第一行也是我们走进自动化领域迎来的第一句问候如今面临向数字化与自动化加速转型的新变局工业领域迫切地需要一场变革走向更加高效、智能、多元的工业时代先锋是走在时代前面的人先锋去探索走出困局之事顺势而动 为所当为开放自动化平台的问世便是我们对于时代先锋的回答秉承施耐德电气不断开拓创新的一贯理念融合IT/OT技术,立足卓越标准精心打造:开放自动化平台将打开工业领域的全新格局。

2023-09-11 14:31:47 508

原创 【腾讯云 Cloud Studio 实战训练营】Redisgo_task 分布式锁实现

一款基于Goland语言实现的Redis分布式锁产品,支持百万级实例/协程并发,适用于各种常见的分布式场景。

2023-07-31 21:05:16 1076

原创 面向 “大模型” 的未来服务架构设计

发展研究中心 5 月底发布的《中国人工智能大模型地图研究报告》显示,我国 10 亿参数规模以上的大模型已发布79个,几乎进入“百模大战”。百度的文心一言 ,阿里的通义千问、讯飞星火大模型、智谱AI的ChatGLM 等纷纷发布。此后,美团、百川智能、云知声、美图、腾讯……新加入大模型赛道的国内科技公司此起彼伏,一场围绕大模型的 “军备竞赛” 已趋白热化。

2023-07-10 10:00:00 670 1

原创 千万级入口服务[Gateway]框架设计(三:分层模式)

基于组件(插件)模式设计构建的入口服务实现中,使用 Go 原生包 plugin 的时候,会存在功能缺陷问题,不足以支撑预期能力;在使用 go-plugin 开源包的时候,虽然功能缺陷得到了弥补,但丧失了部分的性能(组件与主程序通信成本)。本文将介绍另一种基于 “分层” 、“管道” 的架构模式。

2023-07-03 11:30:00 275 1

原创 千万级入口服务[Gateway]框架设计(二:插件模式)

基于组件(插件)模式设计构建的入口服务,在使用 Go 原生包 plugin 实现的时候,会存在功能缺陷问题,不足以支撑预期能力。

2023-06-14 10:00:47 410 1

原创 千万级入口服务[Gateway]框架设计(一:组件模式)

在历史架构的迭代中,服务的入口级模块从雨后春笋到方兴未艾、以至于现在的如火如荼,最终成为服务定位中的,基础服务之一。

2023-06-13 13:52:25 467 1

原创 【腾讯云FinOps Crane 集训营】Crane 助力云原生用户充分发挥云上资源的最大价值,帮助企业降本增效之利器

19年疫情至今,互联网业务高增速、强创收的局面已是昨日黄花。在面对疫情、国际局势、人口规模趋势、基尼效应、经济形势 等多种复杂的因素下,互联网企业的日子相对窘迫。严峻的环境倒逼着企业进行 “开源节流”、“降本增效”,捂紧钱袋子,应对充满未知的 “寒冬”。本文将围绕 “FinOps“ 思想,介绍 “通过 Crane 手段进行优化应用资源配置“,以达到业务增效降本的目的。欢迎感兴趣的同学,参考、学习。

2023-05-14 16:21:51 804 3

原创 亚马逊:分布式计算宣言

它改变了亚马逊电子商务平台的架构。它突出了我们在20世纪末面临的挑战,并暗示了我们的前进方向。

2023-05-06 18:01:22 818

原创 硬刚ChatGPT,中国版ChatGPT“狂飙”的机会在哪儿?

首先,文心一言的发展受到多种因素的影响,包括技术的进步、市场竞争格局的变化以及用户需求的变化等。因此,要想真正为百度止颓,文心一言需要在语音识别、自然语言处理、机器学习等多个领域不断努力,提升自己的性能和功能,为用户提供更加智能和高效的服务。因此,文心一言需要在不断完善自身技术的同时,密切关注竞争对手的动态,并积极探索新的技术和产品,以保持竞争优势。作为一家AI公司,文心一言需要通过品牌建设和营销推广,提高自身的知名度和影响力,吸引更多的用户和合作伙伴。整体来讲,个人的态度是积极的。

2023-03-17 10:22:59 10825 2

原创 必学必备的几种接口鉴权方式

比如,传输的参数是 “abc",传输的时候就变成了 “cde" ,位置偏移了三位。更近一步而言,在银行或涉及钱、个人信息等场景下,即使这样的接口成功通过 token 鉴权,但还会进行 个人确认额外的鉴权。每次进行交互时,接收方会按照接收到的参数按照相同的方式进行产出密钥,然后依据此字段进行比对,来核验数据是否被篡改、及请求是否非法、异常。数据进行交互时,会同时按照动态策略采用 ”长串“ 密钥的某一个部分作为 Sign 的密钥,进行 Sign 校验方式组织进行传输。当然在此基础上,也可以进行另外的改造。

2023-03-11 20:50:57 1690 3

原创 AbTest —— 不同场景下的应用模式

因为要保证实验的正交性,就不可避免的出现 A 用户每次看到的实验效果不同,易对用户产生困扰或报 bug 的举动。当然,并不是不可以,比如一些用户关联性弱的场景,依旧可以做 pv。在 地图/出行类强依赖登陆的状态下,uv 粒度的实验相对占据了全部实验的 99.9%,pv 或其他粒度 做起来及其复杂。AbTest 只是一个例子,换做是其他模块/服务,或者是某件事情,在不同的场景下,都是有因果的、且合适、科学的。除了上文浅述的 AbTest 功能倚重不同,更深的是,功能的实现及构建方式也不同。

2023-03-10 19:54:12 674 1

原创 AES 对称加密中的 ECB 实现

互联网常规用法,是为保障核心数据的安全传输及证书鉴权采取加密策略。开源的工具包,棱角比较明显,加密对象及密钥需要符合一定的设计。针对每个加密策略,其实拥有很多种实现方式。比如 AES 加密,有 ECB 、GCM、CBC…加密策略包含:对称、非对称、不可逆…等多种加密模式,用于密码学、工学…这里简单介绍一下封装完毕,直接可以采用的方式。有需要的同学,可以拿去修饰使用。2ca4e82ac182a25862bdf704f7c40e67 //密文。hello world //明文。

2023-03-07 12:09:12 416 1

原创 shell 拆分字符串

业务中,尤其是链路长的场景,会把日志数据以某种格式进行拼接、聚合到 Log、Trace 中,Metrics 倒是很少采取这种手段。当研发人员对日志进行处理时,需要明晰其内部结构,就要去拆分数据,化大为小,恢复原数据。那么如何进行拆分呢?可能是有些同学的困惑。

2023-02-03 12:47:30 957 1

原创 广告业务系统 之 业务串联 —— “ PDB - 广告投放【保量保价】”

PDB ,这种广告无需参与竞价,以 合同方式 进行约定 流量及展现规模 并 结算。其中交易流量完全由 广告主决定,且投放优先级在 全部广告模式中 最高。【详细含义可见后续文章】由于 PDB 售卖模式的特殊性,在 ADX 系统中有独特的设计。在下面的阐述中,将会全面概述数据、逻辑链路部分。

2023-01-16 17:07:56 2667 2

原创 广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署”

在 ADX 系统中,全链路涉及 大大小小的微服务 将近 百个。良好的服务构建和灵活、敏捷的部署能力,是保证广告业务快速交付价值的基石。在实际生产中, ADX 系统服务为保障高可用、高性能 的同时,最大提升机器利用率。统一施行 以 Docker 容器为主的节点混部模式。

2023-01-16 11:36:56 563 2

原创 广告业务系统 之 智能保险丝 —— “智能流控”

除了 在 AB 环节 设计了出色的 重试机制 —— “ 双发 ” 外,在 ADX 系统的 核心终端 也存在着另一个 “智能流控” 机制,来保障 服务的健壮性,避免微服务架构中的层级效应。这样的机制像一个个保险丝,各式各样的、一环嵌一环的 发挥着重要的流量熔断/自愈作用。

2023-01-13 15:16:28 540 2

原创 广告业务系统 之 框架沉淀 —— “数据消费型服务框架”

由于 ADX 系统中,大量数据以流式涌动,整个链路中出现了 “多处流转都需要以消费中间件数据的模式完成“ 的奇观。为了提升代码的复用性、及可扩展性,我们将 ”数据消费“ 逻辑做抽象隔离成统一框架,业务逻辑以 “组件” 的形式进行嵌入。

2023-01-13 10:09:06 512 1

原创 广告业务系统 之 辅助决策 —— “ AB 实验平台”

在广告业务中,数据通常作为业务前进的内在驱动力之一。AB 实验平台是以实验数据来衡量各个需求变更、未来业务发展方向、及业务潜在增长点 的重要辅助决策工具。

2023-01-12 13:47:04 824 1

原创 广告业务系统 之 核心通道 —— “日志中心-s2s监测上报”

s2s 监测上报,是 ADX 将广告的曝光、互动[点击/播放/下载/关闭...]、Win 数据以 接口形式进行回转给 DSP[\[广告主\]](http://)。广告主依据此数据,进行数据归因及结算,是阐述/同步广告投放效果的核心通道。

2023-01-11 16:06:30 751 1

原创 广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算”

曝光数据,是 ADX 额外关注的部分,其数据流转 是沟通结算,涉及营收的**重要桥梁。**曝光数据从生产位置分,可分为 接口曝光、真实曝光、Client 加载曝光...等等多种类型。不同类型曝光对应着广告合约中不同的曝光结算形式。[除曝光外还有转化、点击等其他结算形式](http://)接口曝光处于生产最高的位置,为 Server 服务下发的广告位最终候选;依次是 Client 加载,Client 加载到的 Server 下发候选;最后是真实曝光,即出现在用户视野中的广告候选

2023-01-11 13:40:23 431 1

原创 广告业务系统 之 数据中转站 —— “日志中心-实时服务监控”

日志中心,是广告链路中数据的中转站。实时监控全链路服务健壮性、及支撑 结算、曝光、互动 等监测上报。在后链路中发挥着举足轻重的作用。日志中心是囊括了多个功能模块,依据其功能特征可分为:**实时服务监控、监测[曝光/互动/Win]上报、流转结算** 三种类型。

2023-01-10 16:10:05 560 1

原创 广告业务系统 之 承前启后 —— “消息中心”

消息中心,是为 投放引擎 做客户信息及素材同步的环节,与 bp 平台、结算侧、投放引擎 进行数据实时交互,是 链路中承前启后的重要环节。

2023-01-09 17:25:18 535 1

原创 暨 广告、推荐、搜索 三大顶级复杂业务之 “广告业务系统详叙”

关于 “广告业务” 相关的思考,作为 **典型的、复杂的、 业务** ,**高并发、高可用、高流量的架构系统**,**及其具备学习性、借鉴性,对个人成长和团队提升有重大意义。**

2023-01-08 17:43:29 637 2

原创 解析 Prometheus PushGateway 推送监控指标全流程

由于这些类型的任务可能存在的时间不够长而无法被抓取,因此他们可以将指标推送到 Pushgateway,然后 Pushgateway 将这些指标暴露给 Prometheus。另外需要注意的是 Pushgateway 不提供任何强一致性保证,没有高可用的方案,它可以做的最好的事情就是将每个指定时间段的指标保存到磁盘了,总之不到万不得已的情况下最好别用 Pushgateway。类型的指标,其中第一个参数为指标名称,第二个参数为指标的注释信息,第三个参数为相关的标签,然后为不同的标签值设置不同的指标值,最后通过。.

2022-08-12 10:10:14 745 1

原创 玩转设计模式(观察者模式)

通过对以上三个实际案例的讲解和具体的代码实现阅读,大家对观察者模式的应用场景和具体实现方案应该有了更加深入的了解了。结合以上三个案例的的分析,适合观察者模式的场景都有以下典型特征:存在多对一的依赖关系:即多个观察者依赖同一个目标对象存在目标变更触发机制:目标变更后,需要触发一系列的其他任务通过观察者机制来实现以上场景,可以实现目标类和观察者类的解耦,即目标对象无需知道需要通知哪些观察者,方便后续的扩展与维护。已获独家授权,尊重原创!|Kafka 高吞吐、高性能核心技术及最佳应...|......

2022-08-10 14:24:46 181 1

原创 监控平台设计 之 Prometheus 存储 LevelDB

我们举个例子:假如现在有三层,文件大小分别是:9,90,900,r=10。在 LevelDB 中 LSM-tree 被分成三种文件,第一种是内存中的两个 memtable,一个是正常的接收写入请求的 memtable,一个是不可修改的immutable memtable。首先是内存的 C0 层,保存了所有最近写入的 (k,v),这个内存结构是有序的,并且可以随时原地更新,同时支持随时查询。最新的数据在 C0 层,最老的数据在 Ck 层,所以查询也是先查 C0 层,如果没有要查的 k,再查 C1,逐层查。..

2022-08-09 09:55:34 618 1

原创 监控平台设计 之 Graphite、Prometheus 竞对

监控平台在各个团队部门都很普及,什么是监控,我们做监控的诉求到底是什么?

2022-08-08 11:01:12 670 1

原创 编程语言是都一样的,吗?

““编程语言都差不多的,会一种就等于全部”。这完全是一派胡言,所谓的 “触类旁通“ 不见得有效。毕竟各种语言是天差地别!”

2022-08-03 10:11:46 949 1

原创 Java的进化之路走到了尽头

一百年后,人们使用什么语言开发软件?为什么这个问题值得思考?原因不是我们最终会见到这些语言,而是幸运的话,我们从现在开始就能提前注意这些语言!

2022-08-02 09:53:16 248 1

原创 深入剖析 RocketMQ 源码 - 负载均衡机制

RocketMQ是一款优秀的分布式消息中间件,在各方面的性能都比目前已有的消息队列要好,RocketMQ默认采用长轮询的拉模式,单机支持千万级别的消息堆积,可以非常好的应用在海量消息系统中。RocketMQ主要由Producer、Broker、Consumer、Namesvr等组件组成,其中Producer负责生产消息,Consumer负责消费消息,Broker负责存储消息,Namesvr负责存储元数据,各组件的主要功能如下​负责生产消息,一般由业务系统负责生产消息。......

2022-07-20 11:10:53 410 1

原创 服务的高可用 —— 智能流控设计

最坏情况是dsp超时无反馈,响应时间由默认配置的最大超时时间决定,此时会拖慢整个A服务,同时广告链路各微服务之间产生连级反应,整条链路被影响。拿到有效的阈值后,服务会读取最近2m的QPS/120依据当前机器的权重计算总QPS与阈值做对比,做出是否调控的判定。这个时候,我们依赖流处理组件prometheus,我们以30s粒度去轮询dsp最近2min的失败率及超时率,通过设定阈值的方式,做出流量与dsp承载力之间的关系决策。智能流控,听起来是流量的拆分控制。...

2022-07-18 15:23:23 532 2

原创 LeetCode:最长公共前缀

目录题目示例思路代码附录题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。思路纵向扫描时,从前往后遍历所有字符串的每一列,比较相同列上的字符是否相同,如果相同则继续对下一列进行比较,如果不相同

2022-05-31 17:42:26 144 1

原创 LeetCode:买卖股票的最佳时机

目录题目示例思路代码附录题目给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 =

2022-05-30 17:27:35 144 1

原创 LeetCode:环形链表

目录题目示例思路代码附录题目给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。示例示例 1:输入:head = [3,2,0,-4

2022-05-25 09:56:27 130 1

原创 LeetCode:合并两个有序数组

目录题目示例思路代码题目给你两个按 非递减顺序 排列的整数数组nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 .

2022-05-24 18:00:58 262 1

原创 LeetCode:加一

目录题目示例思路代码题目加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:..

2022-05-18 17:25:22 134 1

原创 为你的服务打针疫苗 —— 混沌工程

混沌工程未知,既然避不开,为何不拥抱它?在实际生产环境中,各种无法预知的事件难以避免,风险隐患无处不在。分布式系统架构的复杂性、海量数据的计算与存储、跨团队协同等,这些都在向系统的稳定性发起挑战。系统不确定性风险的加剧,最终将会波及到我们业务的连续性。你是否想过:如果整个区域或数据中心出现故障、服务出现访问延迟、系统时钟不同步等这些问题发生,将会带来怎样的后果?其中有些结果我们可以预知,但更多可能在意料之外。这时候,你可以阅读这篇文章了解——“混沌工程”。初识混沌工程混沌工程(C

2022-05-17 16:32:05 504 1

原创 LeetCode:两数之和

目录两数之和示例示例 1:示例 2:示例 3:思路代码两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + num

2022-05-16 17:17:29 129 1

Elasticsearch架构图.png

Elasticsearch架构图,全面认识了解 Elasticsearch 必备!

2021-08-13

消息队列之kafka.md

kafka 机制详细介绍,开发进阶必备!适合 0-3 年开发工程师,面试、跳槽基础。

2021-08-11

java bitset 源码解析.rtf

java bitset 高级数据结构 源码解析 适合 0-3 年开发人员,进阶、面试必备知识!

2021-08-06

java 原生包 BitSet 源码

Java 原生包 BitSet 源码,0~3年 Java 工程师必看,属于高级数据结构,利于进阶,面试必备!

2021-08-04

网络模型/编程语言/设计模式/数据存储思维脑图3.0

网络模型/编程语言/设计模式/数据存储思维脑图;互联网软件知识大全;软件工程师必备

2021-01-08

网络/存储知识脑图

互联网网络/存储知识脑图,包含数据存储、计算机网络等,后续不断完善其他模块;后续不断完善其他模块;后续不断完善其他模块

2020-12-09

SQL编程 学习资料.pdf

SQL编程 学习资料,描述数据库sql语言的历史,及基本语法,包括事务,游标、联合、聚簇、子查询等等

2019-12-11

细说PHP第二版

细说PHP第二版,扫描版,PHP入门、而且面向对象设计讲的非常好,结合设计模式效果更加

2018-09-21

JSON必知必会-pdf

JSON必知必会,高清版,内容完整,并且介绍详细,一本介绍Json 的经典

2017-11-17

jsTree.v.1.0中文文档

jsTree中文文档,其中包括各种插件中文介绍,提供广大学习jsTree的朋友们

2017-10-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除