文档章节

【源创专访】魅族高级工程师于洋子:服务端架构设计与开发,数年磨一剑

编辑部的故事
 编辑部的故事
发布于 2016/09/26 17:07
字数 1604
阅读 4700
收藏 39

于洋子,开源项目贡献者。专注于高并发高性能服务端架构设计与开发工作。现为魅族高级工程师,目前负责 C++微服务架构设计和开发。在于洋子看来,技术这个行业是需要深耕细作的,尤其是服务端开发防方向。本期,他将与大家分享这几年来他的技术经验,在工作中遇到难题是如何攻破的。

1、能否先介绍一下你自己(技术背景、工作经历、学习经历)

我叫于洋子,目前在珠海魅族科技工作,主要是负责C++微服务架构设计和开发。期间也参加过一些其他如flyme通讯、推送平台、实时大数据统计等项目的开发。

2、当初使用C++构建微服务框架是基于什么样的考虑?

当初是出于几点考虑:

     1.C++的性能非常不错

     2.人员招聘简单,在项目初期c++就已经是非常流行的语言了,相对来说人员比较好招

     3.C++的可定制性是最好的,比如我们发现异步模型开发效率不理想时,可以自行定制一个libgo这样的CSP模型的协程库来替代异步模型。

 在编码方面也定制了很多语法糖简化我们的编码复杂度、提高开发效率。

3、听闻你在魅族参与过多个项目,那在这过程遇到的最令你印象深刻的技术难题是什么?

印象最深刻的要属我们今年年中做的一次架构分离,最初flyme通讯业务与我们的PUSH项目在架构上是深度耦合的,服务端、客户端、甚至连协议都是耦合在一起的。

 后来我们发现这种耦合给业务形态相对简单的PUSH项目带来了很多不必要的麻烦,我们决定把他们在架构上分离开,变成两个完全独立的项目。

在架构分离的过程中,最大的难点就是如何做到既要从旧版本平滑过渡到新版本、又要分离的足够彻底,不能藕断丝连。同时服务端还要对两个版本做到完全兼容,让部分不愿升级的老用户也可以继续顺畅地使用我们的服务。

为此,我们经过了为期两周的预研和讨论,最终制定了"数据上行架构"和"数据下行架构"两套即能够适应当前所有业务流程、又足够简洁的通用子架构:上行请求全部

在兼容层转换成新协议,再通过MQ传递给flyme通讯服务;下行请求全部由直接发送信令改为推送通知,在兼容层将推送重新转化为旧版信令。再将所有业务流程全部梳理一遍,按照这两套子架构的模式进行重构,最终花了2个月左右的时间完成了这次架构分离。 

4、我们了解到,你专注于高并发高性能服务端架构设计与开发工作,那有没有一些“过来人”的经验分享给开源中国上那些刚入行的朋友呢?

首先,热烈欢迎“新入坑”的朋友们(开个玩笑~~)。我要恭喜你们,你们非常有眼光,选择了一个很棒的行业。

      1. 建议刚入行的朋友们不要急于在某一个领域进行深度探索,先让自己有一定的技术广度,多多了解行业,选定一个自己感兴趣的方向再进行深度探索。

      2. 淡泊明志,宁静致远。技术行业,尤其是选择服务端开发方向,绝不是可以速成的,一定要抱着数年磨一剑的心态去深入探索,才能有所斩获。我建议在深入探索之前,你应该先找个女朋友或者男朋友,因为你对技术的探索可能会持续一生。

      3. 正所谓一人智短众人智长,多与同行、同事进行面对面的交流,多听也要多说,通常都能有不错的收获。

5、作为开源项目贡献者,近期你有没有接触新的开源技术或有哪些新技术(新项目)可以推荐给大家的?

首先要隆重推荐一下我们魅族的开源项目:libgo.  这个项目旨在全面提升C++语言在服务端方向的开发效率,欢迎广大C++er一起参与进来。

然后,推荐一下google今年开源的benchmark,非常不错的性能测试lib,语法上和google的gtest一脉相承,使用简单快捷,结果展示清晰美观。很好地解决了性能测试中常见的预热、时间精确度等问题。

6、你对源创会及开源中国社区有什么意见和建议?

这是我在同事的推荐下,第一次参加源创会。整体印象非常好,在形式和内容上非常好,观众也听得很专注。今天下大雨,但到场率100%,知名度是很高的。我建议源创会可以加大宣传力度,让更多的人参与进来。

我自己的开源软件有新的版本发布都会在开源中国社区投递新闻。目前还没有项目托管到码云平台,如果后续有时间会考虑托管。

7、最后,你想对Oscer说些什么?

开源这方面,国内与国外相比还是有些落后的,但其实不管是开源作者数量还是基础技术,国内都不应比国外差,开源是很多互联网公司的基石,希望更多的人参与进来,把我们国内的开源事业做的更好。

© 著作权归作者所有

共有 人打赏支持
编辑部的故事

编辑部的故事

粉丝 1230
博文 257
码字总数 468651
作品 0
深圳
运营/编辑
私信 提问
加载中

评论(22)

AAASSSSddd
AAASSSSddd
现在讲架构的文章都是这样,没有干货。
bca
bca

引用来自“bca”的评论

引用来自“YJW_David”的评论

既然用协程,为什么不直接用go呢,而且开发效率也高!

eee

ddfff
bca
bca

引用来自“YJW_David”的评论

既然用协程,为什么不直接用go呢,而且开发效率也高!

eee
长宁楚王陈涉
长宁楚王陈涉
最讨厌天天说架构,一上手写代码一坨一坨的架构师
阿涵
阿涵
没有什么有用的内容啊
quanwei9958
quanwei9958
讲真,魅族品牌越来越烂了
伊人梦醉
伊人梦醉
这文章相当于啥都没说。。。
靓仔007
靓仔007
好快餐...
zn123
zn123

引用来自“风间影月”的评论

为啥都是废话?
好水的文章😆
zn123
zn123
裤子都脱了你跟我说这个, 好烂的文章
【珠海】OSC源创会第52期报名开始

本期图文回顾链接:http://www.oschina.net/question/2686220_2196204 转眼就到9月,源创会日程已过大半,刚结束杭州站,就要到@红薯 的根据地珠海,各位OSCer怎么能错过呢,话不多说,为大家...

Alaise
2016/08/16
29.9K
36
魅族 C++ 微服务框架技术内幕揭秘

分享嘉宾简介:魅族科技平台事业部于洋子,专注于高并发高性能服务端架构设计与开发,参与过flyme通讯、推送平台、实时大数据统计等项目。 kiev,是魅族科技推送平台目前使用的C++后台开发框...

OSC源创君
2016/09/29
6.1K
9
珠海源创会图文回顾及PPT分享

到2016年9月10日,第52期【OSC源创会】珠海站圆满结束,珠海站活动详情信息请查看这里,主题PPT下载请注意文末链接。 本次是OSC源创会第六次来到珠海,这个美丽的海滨城市也是@红薯 老人家居...

Alaise
2016/09/12
5.2K
27
Gdevops广州站火爆落幕,敏捷思维引领运维革新(附PPT)

金秋九月,在广州的艳阳下依然宛如盛夏,而热度最高的地方当属Gdevops全球敏捷运维峰会广州站的现场!收获了各领域名企大咖精彩的演绎,以及各路技术精英爆场的热情,Gdevops广州站于9月23日...

2016/09/26
0
0
魅族技术开放日第12期:洞察数据价值

大数据平台的管理与应用已成为互联网企业的核心竞争力。有效的通过收集业务数据、挖掘分析,可以为公司带来精准的数据支持。在技术大潮的不断更迭中,如何保证数据平台的稳定性,数据管理漏洞...

msup
2018/03/15
2
0

没有更多内容

加载失败,请刷新页面

加载更多

Android的WIFI局域网对讲机

https://blog.csdn.net/z979451341/article/details/79280749 (三)Android局域网内语音对讲 基于UDP语音传输 https://blog.csdn.net/stormxiaofeng/article/details/80513947 Android7.0手......

shzwork
19分钟前
0
0
vuex

一直有个误区 vuex既然页面刷新会丢失 那还有什么意义 。 重新翻看了下文档才恍然大误,vuex主要解决的是不同组件间的通信。 跨页面数据共享本质上还是用sessionStorage/localStorage...

东东笔记
49分钟前
3
0
网站漏洞检测之WordPress 5.0.0 修复方案

2019年正月刚开始,WordPress最新版本存在远程代码注入获取SHELL漏洞,该网站漏洞影响的版本是wordpress5.0.0,漏洞的产生是因为image模块导致的,因为代码里可以进行获取目录权限,以及文件...

网站安全
今天
3
0
MySql 优化 group by 语句

默认情况下,Mysql 对所有 group by 的字段进行排序,如果查询包括 group by ,用户想要避免排序结果的消耗。可以指定 order by null 禁止排序。 mysql> EXPLAIN select * from sys_log gro...

嘴角轻扬30
今天
14
0
Linux分区&格式化&文件系统&LVM&扩容

硬件 磁盘由 盘片组、主轴马达、机械臂、磁头、驱动芯片和电路、接口等构成 2. 磁盘的分割 每个盘片很多同心圆分割为磁道 Trace 一组盘片的同径磁道叫做一个柱面 Cylinder 每个磁道又被分为很...

可数局部基
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部