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

比选三家网站建设公司福安城乡建设与规划局网站

比选三家网站建设公司,福安城乡建设与规划局网站,雄县哪里有建设网站的,软件开发的就业前景#x1f3a8;领域#xff1a;Java后端开发#x1f525;收录专栏#xff1a; 系统设计与实战 #x1f412;个人主页#xff1a;BreezAm #x1f496;Gitee#xff1a;https://gitee.com/BreezAm ✨个人标签#xff1a;【后端】【大数据】【前端】【运维】 文章目录领域Java后端开发 收录专栏 系统设计与实战 个人主页BreezAm Giteehttps://gitee.com/BreezAm ✨个人标签【后端】【大数据】【前端】【运维】 文章目录介绍一、相关概念及技术1.1 Redis缓存1.2 生成6位随机码算法1.3 布隆过滤器1.4 302和301二、系统设计2.1 数据库设计2.1.1 ER图2.1.1 表设计⛅️1.用户表⛅️2.短链信息表⛅️3. 短链分组表⛅️4.短链访问统计表三、系统详细设计3.1 短链生成3.1.1 原理3.1.2 流程图3.2 短链访问网站3.2.1 原理3.2.2 流程图四、结论五、开源地址介绍 今天介绍一个短网址系统的设计与实现。所谓的短链接就是不管你的链接有多么长最终它都会生成一个固定长度的短链接。虽然说义务很简单但是里面会涉及很多的细节。保证短链接唯一和访问速度成为一个核心的问题接下来就开始表演。 短链接的应用场景 营销推广:短信发送、移动端链接转发哔哩哔哩文章内容排版企业发送面试题投票和问卷 一、相关概念及技术 1.1 Redis缓存 在本系统中我们会用到redis数据类型Hash用于存储我们要访问的长链接我们都知道Hash的查询时间复杂度为O1故而采用其保存code和长链接的一个KV对应就可以提高短链到长链接的转发速度302协议存储模型如下所示 1.2 生成6位随机码算法 短网址实现的核心是必须保证生成的6位code必须唯一使用该算法也不能够完全保证唯一所以本人设计时在义务层引入redis高级数据类型布隆过滤器做了一个优化以保证生成的6位编码唯一。 public class ShortUrlCodeUtil {private static final String randomStr hnmnd0d;public static String genShortCode(String url, String randomStr) {return shortUrl(url, randomStr)[0];}public static String genShortCode(String url) {return shortUrl(url, randomStr)[0];}private static String[] shortUrl(String url, String randomStr) {String[] chars new String[]{a, b, c, d, e, f, g, h,i, j, k, l, m, n, o, p, q, r, s, t,u, v, w, x, y, z, 0, 1, 2, 3, 4, 5,6, 7, 8, 9, A, B, C, D, E, F, G, H,I, J, K, L, M, N, O, P, Q, R, S, T,U, V, W, X, Y, Z};String encrypt (MD5.encrypt(randomStr url));String hex encrypt;String[] resUrl new String[4];for (int i 0; i 4; i) {String t hex.substring(i * 8, i * 8 8);long lHex 0x3FFFFFFF Long.parseLong(t, 16);String charTemp ;for (int j 0; j 6; j) {long index 0x0000003D lHex;charTemp chars[(int) index];lHex lHex 5;}resUrl[i] charTemp;}return resUrl;} }1.3 布隆过滤器 思考问题 为什么要使用布隆过滤器不使用set集合布隆过滤器有哪些义务场景布隆过滤器的底层原理 本系统使用布隆过滤器的目的是对生成的6位code去重防止存在重复的编码虽然说重复的概率很小但是还是要防止所以对其做了一个优化至于同样是去重为什么不用set由于篇幅原因不再展开。其次布隆过滤器在本系统还有一个作用就是解决缓存击穿透问题当一个用户发送一个短链接请求来的时候首先系统会解析出6位code然后先去布隆过滤器查找如果存在再去缓存获取code对应的长链接缓存不存在再去数据库查找如果不存在的话直接抛出异常不在去数据库和缓存查询。 Service public class ShortURLService {/*** 预计要放入的值数量*/private Integer size10_0000;/*** 期望的误判率*/private Double error0.01;/*** 实例化布隆过滤器*/private BloomFilterString shortUrlCodeFilter BloomFilter.create(Funnels.stringFunnel(Charset.defaultCharset()), size, error);/*** 放入短网址编码** param code*/public void put(String code) {shortUrlCodeFilter.put(code);}/*** 判断布隆过滤器是否包含此元素** param code 短网址编码* return*/public boolean contain(String code) {return shortUrlCodeFilter.mightContain(code);} }1.4 302和301 由于本系统需要将长链接在后台通过请求转发的方式转发出去所以会用到请求转发协议。请求转发有两种一种是301另一种是302那他们有什么区别呢 1301永久重定向 2302临时重定向 由于我们需要做数据统计也就是记录短链接的访问量所以需要使用302协议。 二、系统设计 2.1 数据库设计 本系统设计的是一个稍微简单的短链生成系统所以表的设计不复杂义务简单主要的表是短链接信息表用于存储生成的短链接。 2.1.1 ER图 就4张表用户表、数据统计表、短链分组表、短链接信息表。 一个用户可以新建多个分组一个组可以有多个短链接信息一条短链接可以有多个数据统计每天的访问量 2.1.1 表设计 ⛅️1.用户表 用于保存注册的用户信息 ⛅️2.短链信息表 用于记录生成的短链接信息。 ⛅️3. 短链分组表 登录的用户可以为新建的短链接分组每个用户注册成功都会有一个默认的分组且至少有一个组。 ⛅️4.短链访问统计表 用于记录每条短链接每天的用户访问量 三、系统详细设计 3.1 短链生成 3.1.1 原理 短链接生成的流程大概就是用户输入一个长链接请求短链生成方法首先该方法需要进行加锁防止多线程多个用户同时请求该方法出现多线程问题长链通过短链生成器后得到一个6为数的编码然后去布隆过滤器去判断是否已经存在如果已经存在的话需要重新调用生成器生成接下来就是把这6位编码保存到数据库和布隆过滤器。 3.1.2 流程图 3.2 短链访问网站 3.2.1 原理 短链的访问流程大致是用户在浏览器输入一个短链接系统解析出最后的6位编码然后用这个编码去布隆过滤器查询是否存在如果存在就去缓存获取长链如果缓存不存在的话再去数据库查询并将查询出来的短链解析刷新到缓存接下来通过请求转发将获取到的长链接通过302协议转发出去如果布隆过滤器不存在6位编码的话直接抛出异常。 3.2.2 流程图 四、结论 短链接的应用场景非常的广泛所以当面对这样的义务时设计一个可靠的短链接变得很重要由于本系统是本人设计和开发的第一个版本设计也很简单可能会出现些问题欢迎大家在评论区留言指出也可以提出问题和修改建议感谢。 五、开源地址 后端前端https://gitee.com/BreezAm/TZ-SHORTURLhttps://gitee.com/BreezAm/shorturl-site 线上地址http://url.breez.work 收录专栏系统设计与实战
http://www.yutouwan.com/news/337445/

相关文章:

  • 网页制作与网站建设 论文商城网站建设需要多少
  • 电子商务网站建设花费苏州专业高端网站建设公司
  • 网站上登录系统制作济南建站免费模板
  • 门户网站建设及运营佛山网站
  • 宿迁网站建设要多少钱深圳网站建设服务合同
  • 网站与客户互动做门户网站最重要的是什么意思
  • 4435建站企业组网解决方案
  • dede网站名称不能中文网站开发语言php
  • 营销公司网站模板腾讯云服务器怎么搭建网站
  • 北京建设建网站wordpress如何设置语言
  • 德阳移动网站建设网站开发实现总结
  • 网站的回到顶部怎么做手机网站有免费做的吗?
  • 做网站有没有免费空间多少钱一盒
  • 百度上做网站模板做网站如何来钱
  • 手机视频网站建站做网站一般用什么配置的电脑
  • 手机在线网站网站开发 群
  • 营销型网站建设公司电话设计师网上接单兼职
  • 网站如何建立品牌形象百度权重4
  • 南宁免费自助建站模板的广州建网站的公司
  • 做网站的总结蓝色系网站设计
  • 手机网站一键导航代码如何注册一家公司要多少钱
  • 广药网站建设试题诸城网站建设开发
  • 企业网站seo诊断报告搜一下百度
  • 有的网站域名解析错误建设行业门户网站需要什么条件
  • 动画网页制作网站网站为什么做静态
  • 天津电力建设公司网站网站站长在哪登陆后台
  • 有关师德建设的网站wordpress到底是什么
  • 南昌网站建设资讯有了域名怎样做网站
  • 贸易公司网站源码天元建设集团有限公司天眼查
  • 实业公司网站模板工程建设质量安全管理协会网站