java项目构建依赖JSON处理(fastjson)123456<!-- 添加 fastjson 依赖 --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.20</version> <!-- 请替换为你需要的 fastjson 版本号 --></dependency>
接口调用—http请求123456<!-- Apache Commons HttpClient 依赖 --> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <v ...
高并发思想什么是高并发1.1 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。
1.2 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。
1.2.1 响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
1.2.2 吞吐量:单位时间内处理的请求数量。
1.2.3 QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。
1.2.4 并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
高并发解决思路1,服务器网络带宽不够(增加网络带宽)
2,web线程连接数不够(DNS域名解析分发多台服务器,负载均衡,前置代理服务器nginx、apache等等)
3,数据库连接查询瓶颈(数据库查询优化,读写分离,分表等等)
4,尽量使用缓存,包括用户缓 ...
天降横幅
小时候有没有听过一个这样的话:全中国每个人给你一块钱,你就能变成亿万富翁,设想一下,如果我们能把他实现,我们在其中抽税,这是不是一个巨大商机?
项目介绍开发一个手机应用,主要涵盖功能:
可以设置0.01或者1元等奖池,只要投入金额,就可以参与开奖,系统根据投入人选随机选择获奖者,所有人被选中获奖者的概率都相等
可行性纵观彩票行业发展如此蓬勃,世界不乏有希望一夜暴富的人,我们也是给予他们一个实现愿望的平台,在项目初期,人少但是获奖概率高,从0做起非常容易过渡;且项目开发简易
利润在最终奖池抽税率5%
女性向商业计划中国女生消费力是可怕的,对可爱好看的东西是无法拒绝的,有对象你就会知道女生一天可能有至少一般的时间在逛购物软件,如果你想挣大钱,那就掐中女生的消费点,善用女生们爱用的媒体软件将自己的产品推广出去,多加创意,多加设计,一定能有所起色
包包,服装,首饰,贴身衣物,钥匙扣,这些都是女生的消费点把它们集成起来的比如三福,the green party,优衣库这些就是把握住了女生的消费点,主要以线下实体店的形式把商品卖给消费者。多种商品集成这也是他们不得不采取线下实体店的经营 ...
InnoDB存储引擎
参考文章:http://t.csdnimg.cn/3J6VF
InnoDB架构
内存结构Buffer Pool 缓冲池Change Buffer 修改缓冲Adaptive Hash Index 自适应哈希索引Log Buffer 日志缓冲
磁盘结构系统表空间(重要)独立表空间(重要)通用表空间临时表空间
缓冲池 Buffer Pool
缓冲池 Buffer Pool 用于加速数据的访问和修改。
默认大小 128 M
缓存数据到内存,最大限度地减少磁盘 IO,加速 热点数据 的读和写
使用 LRU 算法(最近最久未使用)淘汰非热点数据页
LRU:根据页数据的历史访问来淘汰数据,如果数据最近被访问过,那么将来访问的几率也更高,优先淘汰最近没有被访问到的数据
LRU算法:
对于 Buffer Pool 中数据的「查询」,InnoDB 直接读取返回;
对于 Buffer Pool 中数据的「修改」,InnoDB 直接在 Buffer Pool 中修改,并将修改写入 redo Log 中,当数据页被 LRU 算法淘汰时写入磁盘,若持久化前系统崩溃,则在重启后使 ...
ELasticSearch项目优势
基于ES自定义拼音分词器实现对关键词、拼音实现搜索框自动补全
基于ES实现依靠关键词,距离,城市,价格范围等多条件高效搜索,并对关键词进行高亮显示
聚合索引库数据,根据酒店口杯、数量筛选,动态展现搜索条件
基于RabbitMq实现ES索引库和数据库数据同步
部署es集群结合Ribbon实现负载均衡
倒排索引概念
将数据分为词条,保存各词条与id的映射关系
mysql中的like查询是逐一查询的,速率很慢;但是对于简单的id查询工作数据库速度其实不慢。
ElasticSearch架构:
es主要可以用于数据搜索(查询商品),mysql强调数据持久化和一致性(订单系统,博客系统)
IK中文分词插件IK插件词条分析模式:
ik_smart:最少切分
ik_max_word:最细切分
12345POST /_analyze{ "text": "我是黑马java程序员哈哈!", "analyzer": "ik_max_word"}
I ...
布隆过滤器数据结构布隆过滤器它实际上是一个很长的二进制向量和一系列随机映射函数。以Redis中的布隆过滤器实现为例,Redis中的布隆过滤器底层是一个巨大型位数组(二进制数组)+多个无偏hash函数。一个巨大型位数组(二进制数组):
多个无偏hash函数:.无偏hash函数就是能把元素的hash值计算的比较均匀的hash函数,能使得计算后的元素下标比较均匀的映射到位数组中。如下就是一个简单的布隆过滤器示意图,其中k1、k2代表增加的元素,a、b、c即为无偏hash函数,最下层则为二进制数组
参数设置
错误率 f
f 越小则二进制数位数越长,空间占用大
f 越小则hash函数越多,计算耗时长
增加数据
将数据带入到每个hash函数分别计算出下标值,将布隆过滤器(巨大二进制数)对应下标的位置1
查询数据
一样通过hash函数计算出各下标,判断是否所有的位都为1,则数据存在!所以要求二进制数位比较大
Redis集成
下载RedisBloom
(1)下载插件压缩包
1wget https://github.com/RedisLabsModules/rebloom/archive ...
Spring的设计模式(1)工厂模式:Spring使用工厂模式,通过BeanFactory和ApplicationContext来创建对象
(2)单例模式:Bean默认为单例模式
(3)策略模式:例如Resource的实现类,针对不同的资源文件,实现了不同方式的资源获取策略
(4)代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术
(5)模板方法:可以将相同部分的代码放在父类中,而将不同的代码放入不同的子类中,用来解决代码重复的问题。比如RestTemplate, JmsTemplate, JpaTemplate
模板方法模式的体现
在 HibernateTemplate 和 JdbcTemplate 中,模板方法模式主要体现在它们定义了一套完整的操作流程,例如执行 SQL 语句、处理结果集等,而这些流程中的某些步骤(如 SQL 语句的具体内容、参数的设置等)是可以由子类或外部调用者来指定的。这种模式的好处是既保证了操作的一致性和安全性,又提供了足够的灵活性供开发者定制业务逻辑。
(6)适配器模式:Spring AOP的增强或通知(Advice)使用 ...
手撕题单例模式
什么是单例模式
单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象
12345678910111213141516public class Singleton { private volatile static Singleton singleton; public Singleton() { } public static Singleton getInstance(){ if (singleton == null){ synchronized (Singleton.class){ singleton = new Singleton(); } } return singleton; & ...