项目搞成分布式后的一个痛点

dokia123 2015-08-19 10:36:01
公司的一个电商系统,现在把商品中心和用户中心分别搞成了一个子应用,各子应用有自己的数据库,用户中心的数据库里有商户信息和商户的商铺,商品中心的数据库存的商品信息。 分开后有这样一个查询需求:通过商户的姓名或者手机号或者商铺名查询他的商品列表,带分页功能的。问下怎么样通过程序来实现这个查询功能?没法联表查询感觉不好搞。
...全文
531 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
god_zhou 2015-08-24
  • 打赏
  • 举报
回复
12楼说的差不多,商品中心提供接口就行了!MQ也能搞
聪头 2015-08-24
  • 打赏
  • 举报
回复
更多是使用视图
拘谨的小人 2015-08-23
  • 打赏
  • 举报
回复
添加一个中间表
rick-he 2015-08-22
  • 打赏
  • 举报
回复
引用 15 楼 tigeryu 的回复:
这个怎么叫分布式系统啊?这个我们一般认为是对系统进行解耦处理,分解成相对独立的系统进行独立布署,避免系统过于庞大,集成度太高容易出现各种问题,比如性能扩展等和机动布署。如果紧密相关的应用是没必要拆分的。要提高性能,应该采用分布式的框架才行,比如Hadoop等
赞成
乱世丶桃花 2015-08-21
  • 打赏
  • 举报
回复
建议lz看看分布式系统EJB,了解一下分布式系统的模式
乱世丶桃花 2015-08-21
  • 打赏
  • 举报
回复
既然是分布式,把商品中心跟用户中心分成了单独的子项目,那就说明这两个子项目他们是可以单独运行互不影响的,他们对应的数据库也是单独分开管理的(两个库有自己独立的用户名跟密码),那还能用分库查询的方式吗?如果能查还能叫分布式吗? 可以在商品中心写个服务,该服务传入某参数会返回相应的数据,然后用户中心可以通过webservice方式去调用商品中心的服务去获取数据。
wuyue-tiger 2015-08-21
  • 打赏
  • 举报
回复
这个怎么叫分布式系统啊?这个我们一般认为是对系统进行解耦处理,分解成相对独立的系统进行独立布署,避免系统过于庞大,集成度太高容易出现各种问题,比如性能扩展等和机动布署。如果紧密相关的应用是没必要拆分的。要提高性能,应该采用分布式的框架才行,比如Hadoop等
加油馒头 2015-08-21
  • 打赏
  • 举报
回复
SOA,各个子模块做成服务提供
Defonds 2015-08-20
  • 打赏
  • 举报
回复
引用 8 楼 dokia123 的回复:
[quote=引用 6 楼 benluobobo 的回复:] 建议了解一下数据库中间件
数据库中间件的原理大概是什么?假如是两个库中的两个表相连接,是分别发sql查询请求到各自的库中进行查询,然后返回后在程序内存中进行合并、group by、order by处理吗?[/quote]这样就不是中间件了。 你说的这些都在中间件里处理,中间件只返回给你最终结果。
dokia123 2015-08-20
  • 打赏
  • 举报
回复
引用 6 楼 benluobobo 的回复:
建议了解一下数据库中间件
数据库中间件的原理大概是什么?假如是两个库中的两个表相连接,是分别发sql查询请求到各自的库中进行查询,然后返回后在程序内存中进行合并、group by、order by处理吗?
  • 打赏
  • 举报
回复
以前碰到过这个问题,不过因为两个数据库都是oracle,直接用oracle的dblink解决了。
benluobo 2015-08-20
  • 打赏
  • 举报
回复
建议了解一下数据库中间件
中华雪碧 2015-08-20
  • 打赏
  • 举报
回复
我的想法是把功能改一改 通过商户的姓名或者手机号或者商铺名,可以查出商家列表,每个商家固定显示N个旗下的热门商品。当然也可以点击“查看全部商品” ------ 可以参考京东、淘宝的店铺搜索和商品搜索,他们也是分开的。 数据量大的时候,很多功能,就不能和小系统想法一样。 很多功能在小系统是很实用,但对大系统来说是鸡肋。
dokia123 2015-08-20
  • 打赏
  • 举报
回复
引用 2 楼 anchor1 的回复:
必须要实时吗?如果不需要,可以通过备份机制,将其中一个库作为总数据中心
这种在库里数据量不大的情况下挺好使,不过想淘宝这种他们应该不是这样干的,不知道他们是咋处理的。
dokia123 2015-08-20
  • 打赏
  • 举报
回复
引用 1 楼 shijing266 的回复:
这个需要分库查询了 这样吧,你分对象去查,先查出满足商户名称、或者手机号的商户ID集合,然后作为in条件去查 商品的列表
这样是一个方法,不过这适合重复的商户名称不多的情况。 像很多电商系统应该都会这样进行分布式,我想问下他们在处理此类查询的时候是咋做的?
董小姐_123 2015-08-20
  • 打赏
  • 举报
回复
引用 1 楼 shijing266 的回复:
这个需要分库查询了 这样吧,你分对象去查,先查出满足商户名称、或者手机号的商户ID集合,然后作为in条件去查 商品的列表
赞成
聪头 2015-08-20
  • 打赏
  • 举报
回复
必须要实时吗?如果不需要,可以通过备份机制,将其中一个库作为总数据中心
  • 打赏
  • 举报
回复
这个需要分库查询了 这样吧,你分对象去查,先查出满足商户名称、或者手机号的商户ID集合,然后作为in条件去查 商品的列表
dokia123 2015-08-20
  • 打赏
  • 举报
回复
引用 9 楼 defonds 的回复:
[quote=引用 8 楼 dokia123 的回复:] [quote=引用 6 楼 benluobobo 的回复:] 建议了解一下数据库中间件
数据库中间件的原理大概是什么?假如是两个库中的两个表相连接,是分别发sql查询请求到各自的库中进行查询,然后返回后在程序内存中进行合并、group by、order by处理吗?[/quote]这样就不是中间件了。 你说的这些都在中间件里处理,中间件只返回给你最终结果。[/quote] 我知道啊,我的意思是中间件也是个程序,上面说的返回到程序内存中的意思就是返回到中间件中,由中间件来进行合并排序等处理。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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