- 博客(92)
- 资源 (3)
- 收藏
- 关注
转载 go mod replace 解决 fork 项目的引入问题(module declares its path as Axx, but was required as Bxx)
本文转自go mod replace 解决 fork 项目的引入问题(module declares its path as Axx, but was required as Bxx)_zhuxinquan的博客-CSDN博客在日常开发中,经常遇到需要fork别人的项目然后修改某些文件后用到自己的其他项目中,会碰到这类型的问题,经本人实际测试,该方案可行...
2022-02-17 11:24:23
683
转载 自动化弹性伸缩如何支持百万级核心错峰混部 | 架构沙龙回顾
5 月 30 日,字节跳动技术沙龙 | 基础架构专场进行了在线直播。我们邀请到了字节跳动基础架构团队资深研发工程师邵伟、江帆和大家进行分享交流。本次沙龙给大家分享的主题是《大规模混合部署项目在字节跳动的落地实践》,希望这次的分享能够带给大家一些我们对混部的思考。沙龙分享的内容将会围绕以下问题来进行: 首先是字节跳动为什么想要开启混部,它产生的背景是什么样的,字节内部的业务形态有什么样的特征使我们能够开启大规模的混部? 我们具体做了哪些事情来支持混部的顺利开启和落地,在其中遇到哪...
2020-06-17 10:37:17
633
转载 深入解析String#intern
在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊。它的主要使用方法有两种:直接使用双引号声明出来的String对象会直接存储在常量池中。 如果不是用双引号声明的String对象,可以使用String提供的intern方法。intern 方法会从字符串常量池中查询当前字符串是否存在,若不存在就
2020-06-09 15:40:33
268
转载 推荐系统之数据与特征工程
推荐系统是机器学习的一个子领域,并且是一个偏工程化、在工业界有极大商业价值的方向。大量应用于提供toC类产品的互联网企业服务中,通过推荐系统为用户提供精准的个性化服务。推荐系统通过推荐算法来为用户生成个性化推荐结果,而推荐算法依赖数据输入来构建算法模型。本篇文章我们来讲解推荐系统所依赖的数据,怎么处理这些数据,让数据转换成推荐算法可以直接使用的形式,最终我们就可以构建高效、精准的推荐模型,这些处理好的适合机器学习算法使用的数据即是特征,而从原始数据获得特征的过程就是特征工程。具体来说,我们会从推荐算
2020-06-03 17:07:53
1859
转载 AB实验在滴滴数据驱动中的应用
导读:在各大互联网公司都提倡数据驱动的今天,AB实验是我们进行决策分析的一个重要利器。一次实验过程会包含多个环节,今天主要给大家分享滴滴实验平台在分组环节推出的一种提升分组均匀性的新方法。本文首先会介绍一下滴滴AB实验的相关情况,以及在实验分组环节中遇到的问题。然后介绍目前在实验对象分组方面的通用做法,以及我们对分组环节的改进。最后是新方法的效果介绍。1.AB实验概述互联网公司中,当用户规模达到一定的量级之后,数据驱动能够帮助公司更好的决策和发展。在滴滴各个团队中,我们经常会面临不同的产..
2020-06-02 10:36:46
687
转载 使用Go语言上线TensorFlow模型
昨天搞了一天用Go语言部署TensorFlow模型,把整个过程记录一下,以备大家参考(现在没有题图,以后在搞一个图)。首先我们要有一个已经保存好的TensorFlow模型,也就是.pb文件。这个文件固化了计算图和权重,Go语言只需要根据这个代码跑相应的Session就行了。关于如何产生.pb文件,如果大家有兴趣的话可以私信我,我可以根据大家的需求情况写一份文档。具体部分可以参见tf.saved_model。然后编译TF的源代码得到libtensorflow.so和libtensorflow_fram
2020-05-28 16:45:26
1095
转载 elastic-job使用
项目中用到了elastic-job,自己用的时候也是根据别人的例子复制下来,直接模仿用的,一直也没去理解它的工作原理,一知半解的,各个参数意思也不是很懂,然后今天突然想了解下它的工作原理,看了官网,以及网上的一些文章,在这里做个记录。elastic-job是什么?elastic-job是什么呢?下面是摘自官网的话:Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。Elastic-Job-Lite定位为轻量
2020-05-21 20:05:03
761
1
转载 如何构建A/B测试灰度系统
导读:不管在精益创业还是增长黑客理论中,A/B测试作为一种成熟的数据驱动产品优化的科学方法,其核心意义并不在于某一次试验的成功或者失败,而是这种通过试验和数据驱动的产品不断进化过程。A/B测试系统就是一套能将A/B测试方法标准化的工具,通过产品化后,可以降低用户使用门槛,提高A/B测试迭代速度,规范试验流程减少人为操作过程中所犯错误,还可以沉淀不同的数据和策略。01. A/B测试系统核心功能虽然A/B测试可以分为界面类、功能类、人群类以及算法类,但其整体流程、核心功能基本一致,故可以设计一个通用的A
2020-05-21 14:13:05
1255
转载 分布式机器学习框架与高维实时推荐系统
分享嘉宾:刘一鸣第四范式编辑整理:白木其尔、Hoh内容来源:第四范式 | 先荐出品平台:DataFunTalk注:转载请在后台留言“转载”。导读:随着互联网的高速发展和信息技术的普及,企业经营过程中产生的数据量呈指数级增长,AI 模型愈发复杂,在摩尔定律已经失效的今天,AI 的落地面临着各种各样的困难。本次分享的主题是分布式机器学习框架如何助力高维实时推荐系统。机器学习本质上是一个高维函数的拟合,可以通过概率转换做分类和回归。而推荐的本质是二分类问题,推荐或者不推荐,即...
2020-05-21 14:08:02
582
转载 做推荐系统之余,我们该思考什么?
文章作者:姚凯飞编辑整理:Hoh注:本文是作者在 Club Factory 工作时的分享。导读:推荐系统的概念这几年非常火爆,给很多公司带来了实实在在的收益,但如果想将其作为公司增长飞轮中的一环,其实背后有非常多的点需要我们深思挖掘。本文将首先介绍业务以及从宏观和微观角度看增长,再者结合具体案例介绍宏观与微观的关注要点,最后再进行下总结。01业务介绍1. 推荐产品形态我们是一家出海 2C 电商,目前每日有流量和订单的国家和地区超过30个,主要的用户来自印度,是...
2020-05-21 14:04:24
456
原创 二分查找O(log(min(m,n)))解决两个有序数组求中位数
题目解析: 这个题目简单来说就是如果将两个已经排序的数组合并为一个虚拟数组,求出这个虚拟数组的中位数即可。解题思路: 1、这道题最主要的就是切(cut),怎么将数组切成合适的两段是关键,对于一个数组来说在数组的中间将其切成两段,这时候就要分情况讨论,如果是偶数个,中位数就是切点的两边第一个数的平均值,如果是奇数个,中位数就是切点右边的第一个数,比如说1 2 3 4 5,在中间的位置将这个数组切成两段:1 2 \ 3 4 5,很显然,中位数就是3,如果是1 2 3 4,那么就切成了1 2 \ 3
2020-05-15 17:44:46
440
原创 redis5.0排查latency问题
生产环境20个节点规模采用redis5.0自带的cluter方案的redis集群,偶尔出现尖刺。经过排查,排除网络波动影响(网络是正常的),随即将redis自带的latency监控打开(latency监控默认处于关闭状态)过了一段时间,发现服务又有尖刺,这时去查看redis latency监控,发现如下:从上图看出,都是由于AOF持久化导致的问题,但redis生产集群采用的都是appendfsync everysec策略,考虑了下修改一下no-appendfsync-on-r..
2020-05-09 15:38:27
760
转载 生产java服务CPU异常飙高问题解决
线上有一个非常繁忙的服务的 JVM 进程 CPU 经常跑到 100% 以上,下面写了一下排查的过程。通过阅读这篇文章你会了解到下面这些知识。Java 程序 CPU 占用高的排查思路 可能造成线上服务大量异常的 log4j 假异步 Kafka 异步发送的优化 On-CPU 火焰图的原理和解读开始尝试JVM CPU 占用高,第一反应是找出 CPU 占用最高的线程,看这个线程在执行什么,...
2020-05-07 17:53:55
1708
原创 k8s pod cpu限制limit过小导致的问题
笔者负责的一个很重量级的服务,并发量大且处理逻辑复杂。之前pod的资源限制设置如下:、cpu limit 设置为3000m的时候,系统P99、P999耗时都比较低。直到有一天,笔者突发心血来潮,想着3000m可能太高了点就把资源限制改为如下:cpu limit由3000m降为2000m , 改完之后那一周,系统P99、P999耗时明显比之前高出一些,遂再次将资源设...
2020-05-07 11:29:30
2557
原创 Goland环境下同一个package下出现undefined
本人用Goland调试github.com/oliver006/redis_exporter源码的时候,竟然出现下列编译错误随后发现函数NewRedisExporter、结构体Options均是处于main包下exporter.go文件中这就很奇怪了,处于同一个包下肯定是可以找到的,随后用go build .命令跑了一下,确实是可以编译成功的,这个时候我就怀疑是G...
2020-04-03 19:25:55
4390
2
原创 Redis源码解读之服务器redisServer有关rdb
这篇文章是来解读redis服务器rdb持久化,源码位于redis.h/redisServerdirty记录了上次save之后数据库被修改的次数lastsave记录了上次完成save的时间
2020-02-05 17:13:09
141
原创 Redis数据结构之双端链表
redis双端链表linkedlist由listNode、list两个数据结构定义源码adlist.h/listNode源码adlist.h/list
2020-02-03 18:29:25
170
原创 Redis数据结构之整数集合
redis整数集合由intset数据结构定义源码intset.h/intsetintset只会升级,不会降级,即如果往int16_t或者int32_t的intset集合中添加一个int64_t的元素时会整体升级到int64_t,但永远不会发生降级...
2020-02-03 17:20:27
170
原创 Redis数据结构之跳跃表
redis跳跃表由zskiplistNode和zskiplist两个数据结构定义:源码redis.h/zskiplistNode源码redis.h/zskiplist
2020-02-03 17:14:56
128
原创 Go版本升级到1.13后拉取私有module依赖出现verifying 410 gone
Go语言版本升级到1.13后拉取私有gitlab仓库module依赖竟然出现verifying 410 gone翻阅Golang官方文档得知,是需要设置GOPRIVATE环境变量,这个变量需要指向gitlab私有仓库windows10通过添加环境变量GOPRIVATE=私有仓库域名即可,顺利解决问题...
2020-01-15 19:35:59
2000
原创 快速排序的Go语言实现
func Test_QuickSort(t *testing.T) { a := []int{4,0,1,9,5,2,10,30,2,100,800} //a := []int{5,6,8,7,1} quickSort(a,0,len(a)-1) fmt.Println(a)}func quickSort(A []int,start,end int) {...
2020-01-14 20:00:22
217
转载 Nginx负载均衡中4层代理和7层代理的区别
1.4层代理和7层代理什么意思?这里的层是OSI 7层网络模型,OSI 模型是从上往下的,越底层越接近硬件,越往上越接近软件,这七层模型分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。4层是指传输层的 tcp / udp 。7层是指应用层,通常是http 。2.代理原理:4层用的是NAT技术。NAT英文全称是“Network Address Transl...
2020-01-13 15:20:51
2805
原创 Nginx rewrite post请求变get请求解决
笔者最近碰到一个nginx问题,我们需要将http://t16.niiu.com/gateway/abtest-service/api/shenzhen/shoulei/7(该方法是POST) rewrite成http://t16.niiu.com//api/shenzhen/shoulei/7 , 因为微服务提供的请求地址就是:/api/shenzhen/shoulei/7 。其中,/a
2018-04-10 11:26:48
13767
1
原创 ActiveMQ的消息签收机制
消费者客户端成功接收一条消息的标志是:这条消息被签收。 消费者客户端成功接收一条消息一般包括三个阶段: 1、消费者接收消息,也即从MessageConsumer的receive方法返回 2、消费者处理消息 3、消息被签收 其中,第三阶段的签收可以有ActiveMQ发起,也可以由消费者客户端发起
2017-11-13 22:29:27
2837
1
原创 Tomcat7.0.42源码研读之Session管理(八)
我们在写Java Web程序的时候,往往需要用到Session保存用户登录状态。 在需要用到Session的时候一般都是调用HttpServletRequest的getSession() 或者getSession(boolean create)方法,那Tomcat的Session是怎么运作的呢? 程序实际运行过程中,HttpServletRequest的实现类是or
2017-11-10 15:27:24
452
原创 网络抓包工具Wireshark如何抓取本机包
笔者在很久之前用过其他的网络抓包工具,最近想着使用鼎鼎大名的网络抓包工具Wireshark,但是一开始始终无法抓取到本机网络包,telnet localhost 8080这种都没法抓取,查过资料之后才知道, windows系统没有提供本地回环网络的接口,用wireshark监控网络的话只能看到经过网卡的流量,看不到访问localhost的流量,因为wireshark在windows系统上默认使用
2017-11-08 17:12:02
10953
4
原创 Tomcat7.0.42源码研读之BIO(七)
Tomcat8.0之前的版本,Connector默认使用BIO方式监听客户端Socket请求,由JioEndpoint类负责处理 服务端ServerSocket绑定好端口,然后开始启动 Tomcat默认启动一个Acceptor线程去接受客户端Socket请求,采用轮询的方式进行
2017-11-07 21:55:44
397
原创 Tomcat7.0.42源码研读之网络框架Coyote(六)
Tomcat的最重要的两大组件就是网络框架Coyote和Servlet容器Catalina,前者封装了底层的网络通信(Socket请求及响应),后者负责处理具体的业务。
2017-11-06 16:32:00
443
原创 JDK8中HashMap源码详解
笔者一直很好奇HashMap插入、扩容究竟是怎么进行的,专门研究了下JDK1.8的源码,下面专门进行讲解。 A、插入元素(put) 1、插入第一个元素:
2017-11-05 22:27:27
410
原创 如何调试JDK1.8源码(查看变量值、对.class文件打断点调试)
笔者一直想搞清楚HashMap插入数据、扩容时的整个过程,看源码没法调试总是不是那么方便,所以就弄了一套可以调试JDK源码的方案。 开发环境:JDK8+Eclipse 说明:调试HashMap的 public V put(K key, V value) 方法并查看key的值时不能显示变量的值,原因在于oracle提供的jre中rt.jar 不带debug信息。orcale在
2017-11-05 22:01:52
1914
原创 Tomcat7.0.42源码研读之类加载器(五)
Tomcat作为一款通用型的Web服务器,在类加载器上面应该要满足一下几点特性: 1、资源隔离性:如果一个Tomcat实例下部署了多个Web应用,有的Web应用使用了Spring3,有的Web应用使用了Spring4,如果Tomcat使用一个类加载器加载,那么Tomcat很可能会因为Jar包冲突而无法启动。 2、灵活性:如果一个Tomcat实例下部署了多个W
2017-11-05 20:14:22
363
原创 Tomcat7.0.42源码研读之组件说明(四)
Tomcat涉及到的组件如下表所示: 组件名称说明 Server表示整个Servlet容器,Tomcat运行环境中只有一个Server实例 Service表示一个或多个Connector的集合,这些Connector共享同一个Container实例来处理其请求,在同一个Tomcat实例内可以包含多个Se
2017-11-04 22:40:01
311
原创 Tomcat7.0.42源码研读之网络连接器Connector(三)
Tomcat中Connector代表了网络连接器,连接器支持HTTP、AJP协议,还支持多种I/O方式:BIO、NIO、APR。一个Connector应该要做到这几个功能: 1、监听服务器端口,获取来自客户端的请求 2、将请求数据按照指定协议进行解析 3、根据请求地址寻找合适的容器处理 4、将服务端响应返回给客户端 基于此
2017-11-04 17:11:23
452
原创 Tomcat7.0.42源码研读之职责链模式Pipeline与Valve(二)
一个良好甚至优秀的系统,架构上一定要做到可伸缩性和可扩展性,Tomcat在这个方面是个非常好的榜样,它还保证了每个组件的灵活性,最大程度提高了组件的可扩展性。 为了增强组件的灵活性和可扩展性,Tomcat采用了职责链模式来实现客户端请求的处理,Tomcat中每个Container组件都是通过执行一个职责链来完成具体的请求处理。为此,Tomcat定义了Pipeline(管道)和Va
2017-11-04 16:33:47
450
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人