当前位置: 首页 > news >正文

做网站设计电脑买什么高端本好山西做杂粮的网站

做网站设计电脑买什么高端本好,山西做杂粮的网站,建设部网站备案,做网站的像素是多少钱前言: 之前在某大型保险公司担任技术经理,负责优化话务系统模块,由于系统已经运行10年之久,尤其在话务系统中,沉积了几十亿的话务信息表,业务人员反馈,话务系统历史数据查询部分已经完全查询不动&#xff0…

前言: 之前在某大型保险公司担任技术经理,负责优化话务系统模块,由于系统已经运行10年之久,尤其在话务系统中,沉积了几十亿的话务信息表,业务人员反馈,话务系统历史数据查询部分已经完全查询不动,且数据增量仍然已每天200w+以上,数据库频繁报警,优化迫在眉睫。

在我接手之前,该系统已经经历过几个版本的优化。

1 冷热分离,热表存储三个月内数据,历史表存储历史数据,每天凌晨通过oracle的存储过程迁移。同时通过修改业务,页面上加了个按钮,是否查询历史数据,如果查询历史数据需要勾选上,当然,在如此大的数据量面前,即使勾选上也是查询不出来的,页面上无限转圈,功能处于不可用状态。

2 请了外援,由某为公司优化,当时给的方案是所有数据使用gaussdb存储,通过设置分片分区键,改动原有业务,单独启动一个jar包提供接口服务,集成了mybatils,通过sql拦截器,校验,如果有sql没有带上分区或者分片键,则不给查询。最后所有的查询就变成了

 select * from xxx where 分区键='' and 分片键 = ''

数据迁移部分,利用过年放假期间,采用停机迁移的方式。新版本改动较大,虽然经历了较长时间的测试,但是也不敢保证不出问题,所以在业务测也保留了原有业务,随时切换到原有业务,业务代码变成了这样。

if(开启新业务) {http.post();
} else {原有业务代码
}

据老员工说,这次改动性能确实不错,相关查询处于可用的状态,但是数据库稳定性不高,经常报警,也不是很稳定,后来由于大领导们的某些不可控因素,合作终止,gaussdb没人维护,自然这个方案也就被否决了。

3 这时候我入职了,这部分优化工作就落到了我的头上,由于公司和腾讯合作,免费提供了Tbase给我们应用,这样的话,我们就可以采用华为的思路,用Tbase替代了gaussdb,同时做了sql的适配。做了技术预研,只分配了一个分片键的数据到数据库中,大概4000多w的数据,用时间做分区,效果还是不理想,业务侧需求是至少每次查询要查询一个月内的数据,由于还要通过其他表的数据来做关联查询,sql是这样的

select * from a left join b left join c left join d

a,b,c,d四张表都是上亿的数据,虽然有分片分区键,效果仍然很差,只有时间范围精确到天的时候,才能做到秒级响应,也就是页面上的筛选条件需要由"月" 改成 "天",但是这样业务员是无法接受的。

4 第四版优化,由于第三版技术调研失败,我们换了个思路,利用大数据组件来做这部分优化。

思路是 通过Elasticsearch来做条件筛选,里面存储话务表的id,然后通过id去Hbase做数据查询。

通过技术调研,将一个省分的全量数据放到es和hbase后,通过省份做es的分片,查询可以做到秒级返回。

但是这样就涉及到了数据同步问题,如果做到Tbase数据表 -》 es + hbase

因为我们在关系型数据库,同步到es+hbase的时候,由于数据类型以及业务逻辑不一样,是需要做比较重的逻辑处理,所以这部分只能通过代码实现,于是写了一个数据同步组件。

数据同步组件包含两部分,一部分是离线历史数据同步,还有实时数据同步,实时数据同步架构如下。

注意这里,由于数据同步需要保证顺序性,需要保证kafka的同一个partition只有一个消费者在消费,这里kafka的分区设置策略需要设置成range,代码如下

import org.apache.kafka.clients.consumer.*;import java.util.*;public class MyConsumer {public static void main(String[] args) {Properties props = new Properties();props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");props.put(ConsumerConfig.GROUP_ID_CONFIG, "my_consumer_group");props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer");props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer");props.put(ConsumerConfig.PARTITION_ASSIGNMENT_STRATEGY_CONFIG, "range");KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);consumer.subscribe(Arrays.asList("my_topic"));try {while (true) {ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));for (ConsumerRecord<String, String> record : records) {System.out.println("Received message: " + record.value());}}} catch (Exception e) {e.printStackTrace();} finally {consumer.close();}}
}

这个架构在很多场景都得到了验证,例如上百亿的保单表也是这么存储的,Hbase存储保单详情,es存储查询条件。至此,问题得到了比较完善的解决,这里面还存在很多细节问题,比如数据同步组件包含两个方面,一个是离线同步,一个是实时同步。

离线数据同步部分要支持不停机同步,这部分内容比较多,下一篇在介绍吧。

http://www.yayakq.cn/news/141226/

相关文章:

  • wordpress网站搬家图片路径公司软文推广
  • 网站建设和维护工作总结普陀学校网站建设
  • 深圳住房和建设局网站 招标如何用网站开发工具停止网页进程
  • 网站推广名片网站建设及推广方案
  • wordpress如何代码高亮广州seo网站开发
  • 山西长治做网站公司有哪些WordPress主题VR插件
  • 网站开发美学 2.0网站建设流程规划
  • 厦门网站建设培训班什么网站程序好
  • 秦皇岛网站优化360建筑网网址
  • 新网站如何才做被百度收录网站设计与建设公司
  • 大连网站建设微信群网站备案花钱吗
  • 罗岗网站建设公司网站建设方案书微商城
  • 网站内容建设招标盐城市建设局网站设计备案资料
  • 网页 网站 区别国家免费技能培训
  • 深圳网站设..服装网站模板免费下载
  • seo 网站关键词优化网站推广招商
  • 同一家公司可以做几个网站吗jsp ajax网站开发典型实例
  • 网站建设互联郑州市网站设计公司哪个好
  • 北京二手房网站在线制图免费
  • 外贸怎样做网站wordpress特效主题
  • 全球优秀企业网站网站的域名怎么看
  • dedecms仿站教程旅游网站的建设方案
  • 用地方名字做网站深圳市住建局官网查询
  • 青龙县建设局网站西安官方网站建设
  • 有什么做树状图的网站网站地图怎么做_
  • 西樵网站开发南京做南京美容整形网站
  • 建设网站 可以用3层架构吗漳州北京网站建设
  • wordpress做复杂网站线上推广有哪些渠道
  • 想开个网站卖衣服的怎么做wordpress做视频播放网站
  • 网站添加cms织梦音乐网站