公司:猪八戒
Calcite在大数据平台MongoDB查询中的实践应用
某业务方在使用MongoDB过程中遇到不少线上故障问题,由于公司目前仅支持线上查询Hive和Mysql数据,因此定位分析只能靠公司基础部门提供的ELK日志平台去分析处理,如果恰好没有打印相关逻辑日志,则往往只能重新改造代码加些详细日志重新发布上线再去定位,这无疑增加了业务方整个定位问题的时间周期而且非常麻烦。试想,如果我们能够提供实时查看线上MongoDB集合数据的入口再结合ELK日志分析,这将使业务方更方便快速定位线上问题。
于是我们调研了各种技术方案,比如Presto、Calcite等查询引擎,由于Presto对MongoDB支持不够友好,比如需要单独部署服务端,Schema动态支持不够友好,MongoDB集合元数据字段无法准确获取导致需要对线上数据进行特殊处理等问题,而Calcite则相对比较轻量级,而且更加成熟,因为Calcite在Hive、Flink、Drill和Storm等知名大数据开源框架中都有广泛使用,有不少范例可供参考改进,我们只需在项目中简单依赖一些Calcite相关Jar且完成较为简单的二次开发即可集成到项目中使用。
如何用Kbone进行小程序开发?
小程序的设计并没有完全遵循 Web 规范,导致小程序生态和传统 Web 开发生态之间的割裂, Web 端丰富的工具库并不能直接用于小程序开发。另一方面,业界有着存量的 H5 应用,中短期内 H5 应用适配到小程序端的需求还会存在。开发者希望能减少 H5 应用迁移到小程序端的成本,甚至能够直接运行在小程序端。
基于以上两点,出现了一批小程序和 Web 端同构的解决方案,其中比较典型的是 Kbone 和 Taro 3。本文主要介绍微信团队推出的 Kbone 框架。
你知道微前端吗?
为什么要学习微前端?微前端有什么价值?微前端常见框架有哪些?猪八戒前端项目改造实践是如何的?
Jmeter之上下游接口传参实践
Apache Jmeter 是Apache组织基于Java开源的压力测试工具,可用于对各类软件做压力测试。同时,也广泛应用于接口测试、分布式压力测试、Restful风格的API测试。下面通过一个注册登录的实例来学习下Jmeter如何在上下游接口间进行参数传递。
通常在软件测试中,会遇到web网站注册、登录业务场景的测试,一般会涉及多个接口间的数据传递。
场景描述:模拟某网站注册账户时,需输入手机号码,且每次注册时,输入的手机号码不能重复;登录网站时明文密码需加密,登录后获取当前用户的基本信息。这时,需要用到Jmeter内置的强大函数助手来实现这些操作了。
Threejs 核心基础类——Object3D
在学习threejs过程中,涉及到各种各样的类和方法,比如Camera、Light、Mesh等等。对于初学者而言,遇到问题只知其然而不知其所以然,面对数量庞大且关联密切的类和方法往往会犯迷糊,所以深入的理清各个类之间的联系、继承关系,以及共用的方法变得尤为重要。基于此,本文将着重介绍threejs中的基础核心类之一—Object3D。
amis低代码前端框架
随着微服务诞生,前后端分析已成为常态,然而前端编程属于弱语言变更,使用场景广泛。随着前端大牛的增多,涉及到前端框架也不计其数,如果想开发一些高阶前端应用程序,你必须去掌握npm、webpack、react/vue、typescript等多种框架应用,同时还需要熟悉ES5、ES6语法定义。对于简单的项目入门还比较方便,涉及到一些数据状态管理情况下,需要解决的事情会变得更加复杂。
然而在我们开发过程中会遇到很多表格展示、表格筛选、表格排序,以及简单的增删查改的应用程序,利用现有的框架服务进行研发时我们会变得更负重,需要花费大量的时间成本以及掌握更丰富的框架应用。前端如此强大,难道都没有一款能解决这些同类型服务么。其实在13年百度FEX-TEAM团队都已经在开始构建低代码平台,在19年正式对外开放amis低代码框架,解决了我们无需掌握webpack、react/vue、typescript以及es6等这些高阶应用,只需要大家会写json字符串就可以开发出前端应用。
浏览器检测之趣事
在开发过程中,我们通常用用户代理字符串—浏览器端 window.navigator.userAgent或者服务器端header携带的user-agent —来用于检测当前浏览器是否为移动端。
我在使用时心里一直有疑问,一个移动端,为什么要做那么多判断呢?
看到这么一长串字符串,我表示更懵逼, Mozilla不是firefox的厂商么?这是 Chrome 浏览器,又怎么会有 “Safari” 的关键字?那个 “like Gecko” 又是什么鬼?
于是抱着这些疑问, 我打算好好深入了解一下浏览器检测这部分,没想到在学习过程中发现了挺有意思的事情,待我慢慢道来。
你真的懂前端数据拷贝吗?
在我们的日常开发中,常常会涉及到数据的拷贝。那如何正确的拷贝一个对象呢?
微服务开发的幸福感,是如何提升的?
公司后端服务是以Java生态为主,有基于Dubbo的RPC服务、基于SpringBoot的HTTP服务两种开发模式,所有服务基于K8S的容器云双机房独立部署,支持双活流量的架构。
结合公司上下文环境、业务规模,综合考虑技术栈统一、服务治理、使用成本等多方面的因素,经过多部⻔商议,确定将“基于SpringBoot开发HTTP服务”作为主要开发模式。公司每天都有一些新的微服务产生,很多自研组件服务和中间件系统,需要服务开发者单独接入,为了规范和简化后端服务开发者集成应用,一套规范、集成的开发框架就变得非常有必要。
如何快速开发主APP的极速版
相信很多人都发现了市面上有不少大型互联网公司的app都推出了极速版,轻量版等等,保留了核心的功能体验,其余功能都做了很大的减法,以提高用户体验速度为主旨,如果从0开始做人力成本投入十分大,而且部分重合的业务会涉及多版本兼容,这时对于人力投入有限又想要快速推出极速版需求的公司提出了一个新的命题。
猪八戒基于Quartz分布式调度平台实践
我们基于Quartz实现的分布式调度平台架构的扩展重构,通过无中心化的系统架构、大量的异步操作...
强烈推荐小白必看的Java反射
相信不少人在实际运用中都大量使用了反射的机制,无论在各种编程语言中都应用的非常广泛,无论是基础框架搭建,或者复杂的业务代码编写都经常运用反射,但是大家是否知道反射实际原理,它有什么优缺点呢?今天我就用java语言来讲一讲我们的反射吧。
高效编程之告别996基础篇
提升编程效率的N种技巧 ,帮助大家提升开发效率。
细说@Autowired, @Resource, @Inject三者注解区别
在我们使用Spring框架进行日常开发过程中,经常会使用@Autowired, @Resource, @Inject注解来进行依赖注入。
服务交易Etl执行流程实践与探索
服务交易Etl:与传统的etl过程类似,对服务交易过程的数据,进行数据抽取、数据清洗、加工整合的一个过程。它是数据整合的一种形式,最终通过表或者模型的方式把数据完美的展现出来。
如何从0到1建立数据指标体系
企业信息化的变革使企业的资产由纸质化归档转换为信息化的数据资产,用户行为数据、用户业务数据、商品数据就是数据资产。但现在一些企业没有统一标准定义数据,只是粗放的收集数据,把数据散乱地存放在服务器里,这些数据不能被组织和利用,就不能成为数据资产,这种情况是对数据资源的严重浪费,因此我们需要一套标准的指标定义体系,定义我们的数据,标准化的输出数据,让数据成为数据资产。