范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

针对千万级人口城市的核酸检测系统的设计分享

  针对地市级千万级人口的核酸检测系统,相信绝大多数软件公司在高并发处理上还是少一些经验的,下面根据我们开发过的高并发项目上总结几点供大家参考:1、nginx部署负载均衡
  这里我们给nginx部署在一台单独web服务器上,然后通过nginx分发至n台web应用上。
  upstream www_balance{ server 192.168.0.101:8080 weight=5; #tomcat1的端口和权重 server 192.168.0.102:8088 weight=5; #tomcat2的端口和权重}
  上面配置了两台服务器及tomcat,这个根据你的服务器配置,像我们4核16g内存的服务器,我们一般部署4个tomcat,也就是说假如你有两台应用服务器,可以部署8个tomcat。
  在站点的配置上定义
  proxy_pass http://www_balance; 2、tomcat的优化
  tomcat的默认参数一定要优化!直接copy下面的参数即可
  3、mysql优化
  将以下脚本存为nolimi.sh,然后执行即可
  #!/bin/sh
  if cat /etc/security/limits.conf | grep "* soft nofile 65535" > /dev/null;then
  echo ""
  else
  echo "* soft nofile 65535" >> /etc/security/limits.conf
  fi
  if cat /etc/security/limits.conf | grep "* hard nofile 65535" > /dev/null ;then
  echo ""
  else
  echo "* hard nofile 65535" >> /etc/security/limits.conf
  fi
  修改mysql配置文件/etc/my.cnf,在[mysqld]标签里添加以下代码:max_connections=3600
  以上是常规操作,没有太多要讲的,按上面的配置即可。下面说下核心的部分,业务系统设计:
  4、数据库设计
  这里比较重要!我们保存核酸检测的信息主要有:
  姓名、身份证号、电话、区/县、乡镇、街道/村、小区、单元、房屋编号、核酸检测编码、核酸检测机构、核酸检测结果等。
  针对上述字段信息,第一件事,我们要做分库!!记着能做分库的,不要做分表。为了将来灵活扩容,因为分表还是压力在一个库上,而一个库是不能随便拆分至不同服务器的。而分库,我们可根据访问量选择把多个数据库部署在一台服务器上,还是每个数据库各自占用一台服务器。
  介于此,我们考虑有两种分库方案:
  a、按出生日期年份分库,同一年出生的人的核酸信息记录在一个数据库上,我们粗略统计一下1000万人口的城市,按80岁年龄段,,平均一年一个库的话,这样一个数据库库记录在十几万左右。这个数据量完全够mysql快速响应的。如果觉得库太多,也可以分段,每10年分在一个库中也可以。
  b、按行政区分,可以按街道或区、县来创建分库。道理同上。
  另一个重要的事,以上数据库绝对不要加索引(本次的核酸检测码作主键),目的就是为了保证最快的写库操作,也就是为了确保现场核酸登记时,高并发下的快速响应,只有响应够快,nginx,tomcat理论上的配置并发数才会达到最高。这个不难理解,比如nginx有10000的并发,同一时刻来了10000人同时提交检测,nginx把请求交给各个tomcat,如果30秒内都没有响应完成,那么第一时刻来的请求到后面30s内再来的请求就只能排队等候了。
  相应如果tomcat都能在1秒内处理完请求,那么随着请求的建立和释放动态的过程,一直会有空闲的连接数响应新的检测请求就可以了。因为现场场景中,医务人同每次扫码两个人间隔时间起码也得有2-3秒的间隔,关键点来了,我们java应用每一次响应的用时理论上只要小于现场医务人员两次扫码确认的时间即可达到良好的检测体验。大概情况 就是这样:
  10000人并发提交-》nginx响应分发-》n个tomcat各自接收到大概100左右请求->花费1s时间处理完毕->nginx连接释放-》过1-2s(空闲10000连接)-》新到10000请求,以此类推....
  有人讲,上面道理不假,如何保证1s处理完,这个不难,参考上面的数据库设计(分库)一定可以做到!(当然你的java 应用代码起码得说得过去)
  最后有人说nginx10000并发数够用吗?这里nginx可是单点啊,本文讲的是1000万人口,并不是1000万并发,我们算一下1000万人口的城市,最多有1万个核酸检测点,假如最巧合的情况,这1万的检测点同时上报采样,那最极端的情况也就是10000个并发连接。所以nginx这个配置是足够使用了。那为啥有的系统配置了nginx20000的并发数,也不行呢?原因就在于应用层tomcat中的java应用响应太慢了,请求时间占用太久,把连接数都占用了。所以确保应用系统快速入库响应的能力是最根本的解决方法)。
  还有人问,java中分库的代码,有参数吗?我们也有:),我们多年用自己开发的框架,一直做多库分库操作。
  以下参考:
  package totcms.db;
  import java.util.Hashtable;
  import javax.naming.Context;
  import javax.naming.InitialContext;
  import javax.sql.DataSource;
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  /**
  *
  * @ totcms多库
  */
  public class DBMap {
  private static Hashtable ds = new Hashtable();
  private static Log log = LogFactory.getLog(DBMap.class);
  static {
  String[] s={"mydb_bid","mydb_sale","mydb_buy"};//数据源
  try {
  Context initContext = new InitialContext();
  Context envContext = (Context) initContext.lookup("java:/comp/env");
  for(int i=0;i
  
  细心可以看到,可以同时支持sqlserver,mysql,oracel等各种数据库。
  最后还可能有人问到,上面的库没有做索引,那么检测结果的查询怎么办,这个涉及到另一个库设计:读写分离。上面的库主要解决写的问题,至于读,其实好办了,毕竟核酸检测结果的生成是检测机构操作,可以在检测机构更新检测结果的时候,把该条数据读取写到一个做了索引(按身份证号)的核酸结果数据库中供查询使用,这个数据库的设计 可以按月分库,按日分表设计)
  最后上个构架图
  检测上报
  结果查询

TVB杀入直播带货,港娱发展就能由凉凉变火热了?(ICphoto图)近日,香港TVB与淘宝合作首场直播带货,主播包括TVB资深艺人陈豪和陈敏之,持续6小时的营业时间,最终交出2350万元的首场带货成绩单。在一周前,TVB宣布与淘种地做菜学习生存技能上海交大开展花式劳动课摘要五育并举,多维发力,上海交通大学扎实推进劳动教育。视频加载中阳台菜园种菜厨艺学堂做青团电工学堂手脑并用,还要学习野外生存技能上海交通大学开展多种形式的劳动教育活动,引导学生动手00后女教师批卷评语火了,可爱不够粘贴来凑,网友不务正业?小时候考完试,学生不仅能够拿回自己的卷子,还能在试卷上清楚的看到自己错在了哪里,不过,不管是分数高还是低,都能看的出来老师批卷时的心情。分数高的试卷,老师用红笔打对号的痕迹也很流畅禁娼现象屡禁不止,为何我国要大力提倡?看看德国就知道了青楼是中国封建社会的特有的产物,因为古时候人们把青楼当成了男性吃喝玩乐的地方,所以此地也是受到国家保护的正规经营场所。但是当新中国成立之后,受到男女平等观念的影响,所以青楼也彻底的房价,真的涨了原创刘晓博最近,国家统计局公布了2023年1到2月的楼市情况,关键数据显示楼市正在显著回暖。比如新房销售面积和销售额虽然同比仍然是下跌的,但销售额只跌了0。1,销售面积只跌了3。61949年满载50箱大洋的飞机坠毁,当地村民哄抢后,下一秒后悔不已1949年5月24日,湖南省苗族自治州的维新乡上空,突然传来一阵轰鸣声,正在耕作的村民们抬头望去,只见一架飞机在天上摇摇晃晃,冒着黑烟坠向山谷,随后就在不远处的山头上爆炸,村民们闻后金当初为什么不趁着魏忠贤祸乱朝纲的时候入关呢?魏忠贤在大明可谓大名鼎鼎,他是在万历年间就入了宫当了太监,因为善于巴结,在朱由校登基后,升为司礼秉笔太监兼提督,极受宠信,被称为九千岁,后掌管东厂,专断国政。天启七年(1627),关羽北伐的真实原因是什么?深层次原因揭秘!建安二十四年(公元219年),关羽率军从南郡出征,进攻襄阳樊城,史称襄樊之战。此役中,关羽先是围困襄阳樊城。魏将于禁督七军三万人救援樊城,却遭遇了因为暴雨而导致的汉水溢流,害民人的没钱的唐德宗啥也不是,唐史上第三次皇帝出逃唐德宗建中四年(公元783年),一场突如其来的兵变扰乱了首都长安。德宗执政时,已经是安史之乱的藩镇割据时期,中国布满了大大小小的藩镇(节度使),他们手握兵权,争夺地盘,中央政府处于被周边国家打残的俄罗斯,曾如何完成极限自我救赎,逆风翻盘的?编者本文作者为张瑞水下看世界张瑞水下看世界合作作者,欧洲史学者铁钩历史铁钩历史。欢迎广大历史文博和文化领域学者踊跃投稿。英雄自古多磨难2022年俄乌战争,俄罗斯被拖入战争泥潭后,各康熙之女端静公主被驸马一脚踢死,康熙得知后,报复手段着实高明纵览全球,从未有任何一个国家和中华民族一样,饱经磨难而又历久弥新。在走过的千年历程中,中华民族形成了一个多民族的国家。如何处理与周边民族的矛盾,就成了历代统治者不得不考虑的问题。中
NASA到2030年,科学家可能将在月球生活来源环球时报环球时报综合报道在不久的将来,人类可以生活在月球上?据英国泰晤士报21日报道,美国国家航空航天局(NASA)表示,到2030年,科学家或将在月球生活。当地时间16日,美美夜店枪击事件致23人死伤,拜登必须解决枪支暴力流行病环球网报道据华盛顿邮报当地时间20日报道,美国科罗拉多州科罗拉多斯普林斯市警方称,该市一家夜店19日深夜发生枪击事件,已造成5人死亡至少18人受伤。对此,据美国哥伦比亚广播公司(C马尔卡宁38分爵士力克太阳!布克空砍49810NBA常规赛11月19日继续进行,最终,爵士以134133战胜太阳,爵士终结3连败。首节开始,爵士上来连续命中中远投打出258开局!布克迅速连拿7分率队回敬一波229迫近比分。各拿iPhone15确认全系C口,但依旧逃不过精准刀法,网友再加MFI认证iPhone14系列销量出现两极分化,Pro系列一机难求,标准版iPhone1414Plus销量低迷,只有在双11期间降价时才爬上了销量榜前10。iPhone15系列已经在研发中,人在做,天在看,千万不要自己找麻烦人生若只如初见人在做,天在看,我们行善还是行恶,人可能不知,但天不会。是忠是奸,是善是恶,天自有辩论,定有判决。不论做何事,只求无愧于心,不争不抢,不骄不躁,一切自有安排。我们只需为何勇士不让普尔打首发?阿里纳斯精准点评为了避免库里受罪勇士本赛季已经打了16场比赛,不过战绩排名不是很好,目前勇士以7胜9负的战绩,排在了西部第11名。作为上赛季NBA总冠军,勇士没能打出冠军风采,这主要是由2个原因造成的,第一个原因人手一个有时间显示的手机,还有很多人带手表,到底是什么原因呢人们的日常生活,在左手或者右手腕上带着手表是属于计时用品。它的好处是提醒人们在生活工作中能够互相节省时间,从而达到共同的目的,完成其所要办理的事务。他还有另一个心思?它主产于瑞士国DIDOG28S血糖版智能手表如何做到身体监测面面俱到?接触dido这个品牌已经有很长时间了,它们家的智能手表根据功能也有很多的分类。不过都有一个共同点,就是除了能够兼备运动的同时,还能够实现连续的身体健康监测,对于发现身体的一些小毛病央视CCTV5直播!世界杯最弱的揭幕战东道主首秀,被外界看衰北京时间11月21日0000,世界杯揭幕战,东道主卡塔尔坐镇艾尔拜特球场对阵厄瓜多尔,央视CCTV5现场直播。原本揭幕战安排是同组的荷兰VS塞内加尔,但后来又改回了卡塔尔VS厄瓜多最离谱的非洲暴君,无底线贪污差点毁国,扎伊布总统有多疯狂?他拥有国家最高权力却毫不满足,大肆洗脑群众贪污近200亿他控制国家全部矿产,豪放消费不顾群众死活跪舔漂亮国,吸食人民劳动成果,以一己之力摧毁整个国家经济的蒙博托有多离谱?蒙博托塞塞溥仪从小有个坏习惯,奶娘羞以启齿,宫女太监都得回避说起我国的末代皇帝溥仪,很多人对他的名字并不陌生。当年慈禧太后在去世前,将皇位传给了她的侄孙子溥仪,那时的溥仪只有3岁。可惜当时的清朝危在旦夕,溥仪虽是清朝的皇帝,却从小遭受了许多