CSDN社区问答第4期:曾宪杰 大型网站系统与Java中间件

柔软的胖纸 2014-05-19 11:12:37
加精
本期的社区问答(5月19日—5月25日)我们请来了《大型网站系统与Java中间件实践》一书的作者 曾宪杰(华黎)为大家解答关于大型网站和支撑大型网站架构的 Java 中间件、分布式系统方面的问题。


曾宪杰,淘宝花名华黎,现任淘宝技术部总监。2002年毕业于浙江大学计算机系。2007年加入淘宝网平台架构团队,负责构建淘宝自主的消息中间件系统,同期主导了淘宝数据层的创建,这两个产品也是淘宝中间件中较为重要的两个。2010年下半年起开始负责整个淘宝中间件团队,帮助团队成为业内知名的Java技术团队。2012年开始从中间件走向应用系统的研发工作,2013年初负责新组建的淘宝技术部。熟悉C++和Java,在多线程、并发、网络通信及支撑大型网站的中间件领域有较多经验,对新技术有浓厚的兴趣。致力于带领团队在无线、数据、业务 平台和组件化开发方面取得突破。

曾宪杰专访:大型网站系统与Java中间件实践

问答结束后,曾宪杰老师会在所有提问者中抽取三名用户,赠送《大型网站系统与Java中间件实践》一书。




为了营造更好的问答氛围,我们不欢迎一切与主题无关的讨论、灌水和无脑喷子。

下面欢迎大家踊跃提问,在本帖回复即可,参与活动并提出问题即可获得100可用分。

本期获奖用户:moshanghuakaizpx u012268904 yhjj0108 请尽快私信hjkNet,告知您的邮寄地址、联系方式。

...全文
19689 177 打赏 收藏 转发到动态 举报
写回复
用AI写文章
177 条回复
切换为时间正序
请发表友善的回复…
发表回复
lege_rom 2014-08-25
  • 打赏
  • 举报
回复
引用 79 楼 vanadies10 的回复:
[quote=引用 23 楼 le292583883 的回复:] 曾老师好,我是网新恒天这边的员工,我现在从事ESB方面的工作.问题1:ESB也算是大型网站中的中间件吧,做ESB有前途么,大公司使用这项技术么?问题2:.感觉一直做中间件会不会很无聊,怎样会有意思一点.问题3:中间件中对并发访问有什么帮助么?
ESB算是中间件,我对ESB的经验不是特别多,不过就我自己的看法,我觉得ESB适合多种异构且你没有办法去动的系统的集成,并不合适大型网站。 自己参与ESB的开发,肯定能学到很多东西,技术上能提升,如果你说的大公司指的是自己做大型网站系统的公司,那么就我了解,用ESB的不多。 一直做中间件无不无聊我觉得跟个人有关,有人就是愿意持续在一个领域一直深入下去,有人可能在3-5年后希望搞点别的,这个跟兴趣和对自己的未来规划有关。我觉得其实专注去做一个东西,都挺有意思的 中间件本身是来解决应用架构的问题的,而这个解法就是为了能够让应用解耦和可水平扩展,我理解这就是对高并发的帮助。[/quote] 谢谢曾老师的悉心答复....
qweasd5513 2014-08-21
  • 打赏
  • 举报
回复
qweasd5513 2014-08-21
  • 打赏
  • 举报
回复
小挨踢 2014-08-18
  • 打赏
  • 举报
回复
<input type="button" value="http://www.baidu.com">
vanadies10 2014-05-30
  • 打赏
  • 举报
回复
引用 137 楼 zhblue 的回复:
请问中间件实现的时候是否适合大量使用反射api,对性能是否有影响。
会用到反射,当然也可以用一些字节码增强的技术,对性能的影响很小,原因是本身需要做的操作的消耗时间是远大于反射消耗的时间。
vanadies10 2014-05-30
  • 打赏
  • 举报
回复
引用 134 楼 wolf2s 的回复:
ActiveMQ 适合多大数据量的采集和传送
你说的是每个消息的大小还是单位时间的消息条数?消息大小不建议很大,我觉得一般来说不要超过4K。
vanadies10 2014-05-30
  • 打赏
  • 举报
回复
引用 133 楼 jianqiangyushan 的回复:
曾老师好,希望能讲解一下中间件有哪些?使用场景是什么,有什么优缺点?使用时有哪些注意事项?
中间件本身的概念比较宽泛,这个太多了。我主要介绍的是支撑网站从集中式走向分布式的几个中间件。 优缺点是看你的需求的
Cactus_hxk 2014-05-30
  • 打赏
  • 举报
回复
流星辰 2014-05-30
  • 打赏
  • 举报
回复
引用 170 楼 vanadies10 的回复:
[quote=引用 127 楼 sophia_liuyan 的回复:] 曾老师你好 淘宝的MySql数据库读写分离是用的MySql的主从同步功能吗。 我现在的项目一台负责写的数据库对应多台读取的从数据库这种单向的同步没有问题,可是如何写数据库增加一个的话就需要俩台写数据库要互相同步,在同时对一个表进行插入数据时有小概率会失败,是因为互相同步导致主键冲突吗? 不知道我这样设计是否有问题,一般MySql如果需要2个以上的写数据库时该如何搭建数据库集群?
没有太理解您说的场景。[/quote] 就是淘宝的MySql集群是如何实现数据同步的?也是通过MySql的复制功能吗?
vanadies10 2014-05-29
  • 打赏
  • 举报
回复
引用 128 楼 dotfeng 的回复:
您好,关于普通的消息类数据、图片数据、大文件数据如何能用中间件分级管理?
消息系统不建议消息特别大。
vanadies10 2014-05-29
  • 打赏
  • 举报
回复
引用 127 楼 sophia_liuyan 的回复:
曾老师你好 淘宝的MySql数据库读写分离是用的MySql的主从同步功能吗。 我现在的项目一台负责写的数据库对应多台读取的从数据库这种单向的同步没有问题,可是如何写数据库增加一个的话就需要俩台写数据库要互相同步,在同时对一个表进行插入数据时有小概率会失败,是因为互相同步导致主键冲突吗? 不知道我这样设计是否有问题,一般MySql如果需要2个以上的写数据库时该如何搭建数据库集群?
没有太理解您说的场景。
vanadies10 2014-05-29
  • 打赏
  • 举报
回复
引用 126 楼 yhjj0108 的回复:
再问个问题,我看到有些方法在保持缓存数据不过期时使用了版本管理,比如说对table A加一个版本revision1,每当对于A表修改一次那么这个版本增加1,以后查询时拿本地版本与cache server上版本比照,就可以判断是否是最新数据了.但是这里有个问题,就是如果是web集群,那么web server A上的版本可能是revision1,web server B上变成了revision2,他们如果不同步,那么web serverA去获取数据就可能拿到旧的数据. 这样的话这种版本控制方法就不对了,另外一种我能想到的办法是每次去修改数据时同步删除所有cache server的数据,请问老师,有没有更好的办法处理这种情况呢,谢谢
数据一致性一直是个比较麻烦的问题,版本号是可以解决的方法,不过需要在原来业务上增加字段。 另外一个思路是更新缓存用类似数据复制的方式来做。
ww_123_321 2014-05-28
  • 打赏
  • 举报
回复
数据的主键使用整型分片容易一些,如果是业务主键,那种字符型的,如何分片?一般建表是不是不使用业务主键更好?
vanadies10 2014-05-27
  • 打赏
  • 举报
回复
引用 125 楼 yhjj0108 的回复:
我记得好像哪里看到阿里还是啥在处理服务器状态时用的是cookie保存状态,只是专门api打包压缩了cookie,我也觉得cookie处理起来最优雅,为啥老师你还是推荐用session sticky和session库的方式呢
我没推荐具体的方式,是把4种可选的告诉读者。其实除了复制外,三种各有优缺点。
vanadies10 2014-05-27
  • 打赏
  • 举报
回复
引用 124 楼 lishimin1012 的回复:
求例子。能给初学者一个简单完整的例子吗?
什么例子?
vanadies10 2014-05-27
  • 打赏
  • 举报
回复
引用 115 楼 Pescod 的回复:
曾老师您好:从集中式到分布式主要会遇到哪些问题?淘宝这么大的量中间件在哪些地方起了作用以及起到了多大的作用?
集中式到分布式,主要是围绕应用拆分和数据拆分来展开的,具体的问题其实书上都有介绍。 而淘宝的几个中间件就是通过服务框架让应用从集中走向了服务化架构,通过消息系统做了应用解耦,通过数据访问层解决了数据分布后的访问的问题,通过消息队列支持了需要顺序消息的场景,通过数据变更通知完成了迁移,并且完成了产品化的数据扩容、缩容方案。
执着的羽翼 2014-05-27
  • 打赏
  • 举报
回复
曾老师你好 我想询问下 你们是如何解决大并发的处理处理 以及模块或者中间件中可能的大量的通讯处理 减少超时和连接数的限制问题?
LinY_X 2014-05-27
  • 打赏
  • 举报
回复
曾老师: 我想问下 应用服务器变成集群后,关于Session问题怎么处理好? 还有 服务框架用proxy和直连的优缺点有哪些?
vanadies10 2014-05-26
  • 打赏
  • 举报
回复
引用 107 楼 bonlog 的回复:
曾老师,您好 我有三问, 1.淘宝不是用php编写的吗? 2.从java web的发展应用,及前景来看,是不是应该把java servlet学好,而不是一味的追求三大框架。对吗? 3.你的中间件,对淘宝的海量搜索起到了什么关键性的作用啊?
1 淘宝最初也就是03年是PHP,04年就转为Java,当然现在我们是有多种语言在,Java主要做业务应用、中间件和部分的基础应用,C/C++也有很多,此外,还有Erlang,PHP也有再用的 2 框架是帮助你的,但是原理你要清楚 3 中间件是帮助淘宝从原来的集中式应用架构演进到了分布式架构
vanadies10 2014-05-26
  • 打赏
  • 举报
回复
引用 106 楼 hehe549125 的回复:
什么是中间件啊?具体有什么用途呢?
其他回复中回复了,您可以看下。
加载更多回复(157)

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧