java 后端设计高并发接口总结
如何设置高并发接口 一、并发队列的选择 二、请求接口的合理设计 三、高并发下的数据安全 3、1 超发的原因 3、2 悲观锁思路 3、3 FIFO队列思路 3、4 乐观锁思路 一、并发队列的选择 Java的并发包提供了三个常用的并发队列实现,分别是:ArrayBlockingQueue、ConcurrentLinkedQueue 和 LinkedBlockingQueue 。 ArrayBlockingQueue是初始容量固定的阻塞队列,我们可以用来作为数据库模块成功竞拍的队列,比如有10个商品
windows7 安装mysql
1.1下载mysql软件 下载地址:https://dev.mysql.com/downloads/mysql/ 将my-default.ini文件拷贝一份my.ini配置文件 [mysql] 1.2设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 1.3 设置mysql的安装目录 basedir=D:\mysql\mysql-5.6.43-winx64 1.4 设置mysql数据库的数据的存放目
常见的MySQL优化
1、EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。 下面来个简单的示例,标注(1、2、3、4、5)我们要重点关注的数据: type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。 key_len列,索引长度。 rows列,扫描行数。该值是个预估值。 extra列,详细说明。注意,常见的不太友好的值,如下:Using filesort,Using tem
解决React首屏加载白屏的问题
众所周知,在项目中如果在资源加载请求还未完成的时候,由于阻塞机制,会出现首页白屏的问题,产生很差的用户体验。本文以react为例,提供一个解决方法。 解决原理:使用 onreadystatechange 去监听 readyState,在资源加载完成之前加载一个只有框架的静态页面,页面不请求数据。当数据请求完成之后再将路由切换到真实的首页。 废话不多说,上代码: main.js
import React from 'react'
import ReactDom from 'react-dom'
linux i2c框架--i2c总线的初始化
linux i2c驱动源码剖析 在上一章节中我们对linux i2c驱动框架进行了解析,在这一节中,我们走进i2c驱动的内核代码,看看在内核中,i2c框架到底是怎么形成的。 *** 注: 基于beagle bone green开发板,linux4.14内核版本 *** 从设备树开始 首先需要了解的是:系统在开始启动时,bootloader将设备树在内存中的开始地址传递给内核,内核开始对设备树进行解析,将设备树中的子节点转换成struct device_node节点,再由struct devic
CMake for MFC example
cmake_minimum_required(VERSION 2.8)
add_definitions(-D_AFXDLL)
set(CMAKE_MFC_FLAG 2)
set(SRCS
MFCApplication1.cpp
MFCApplication1.h
MFCApplication1.rc
MFCApplication1Dlg.cpp
MFCApplication1Dlg.h
Resource.h
stdafx.cpp
stdafx.h
MQ消息中间件的重要性
1.在何种场景下使用了消息中间件? 2.为什么要在系统里引入消息中间件? 3.如何实现幂等? 链式调用是我们在写程序时候的一般流程,为了完成一个整体功能,会将其拆分成多个函数(或子模块),比如模块A调用模块B,模块B调用模块C,模块C调用模块D。但在大型分布式应用中,系统间的RPC交互繁杂,一个功能背后要调用上百个接口并非不可能,这种架构有如下几个劣势: 一、链式调用的不足 1、这些接口之间耦合比较严重,每新增一个下游功能,都要对上有的相关接口进行改造;举个例子:假如系统A要发送数据给系统B和
《剑指offer》第三十二题(之字形打印二叉树)
// 面试题32(三):之字形打印二叉树
// 题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺
// 序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,
// 其他行以此类推。
#include <iostream>
#include "BinaryTree.h"
#include <stack>
void Print(BinaryTreeNode* pRoot)
{
if (pRoot == nullptr)
Servlet三大域对象
Servlet三大域对象的应用 request、session、application(ServletContext) ServletContext是一个全局的储存信息的空间,服务器开始就存在,服务器关闭才释放。 request,一个用户可有多个;session,一个用户一个;而servletContext,所有用户共用一个。所以,为了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息。
JWT token破解绕过
前言 这是印度举办的CTF中遇到的一道JWT破解绕过题,觉得还是挺有价值的,mark一下。 JWT伪造 这是一道b00t2root的一道web题,觉得很有意思,并且结合了加密的知识,所以记录一下。 首先了解下JWT: JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。JWT常被用于前后端分离,可以和Restful API配合使用,常用于构建身份认证机制。 JWT的数据格式分为三个部分: headers ,
hi~大家好,特地出来解释下最近为啥都不更新了!
总结一句话就是!因为我有宝宝啦~加上项目赶得不要不要的公司原因加上个人原因只能在家养胎啦,对象也是程序猿哦~不过是后端程序猿哈哈哈。 我打算开公众号(百撕可乐)啦,和博客圆的名字一样,毕竟用了这么多年了。感觉微信方便一些。博客园还是会继续更新的,但是更新速度会变慢。当然没有学习心得就不更啦 详细的往下看!!! 隔了几个月没更新文章,居然还涨粉了,最开心的是有人评论哇~巨开心哇。虽然我也不是什么大牛,但是这鼓励了我继续分享的动力 博客园是我自学学完了html和css后,学js的时候才慢慢开始写的
项目中两个verilog代码设计技巧
今天写两个项目中用到的两个代码设计技巧! 技巧一:当某信号出现下降沿时,输出一个clk时钟周期的高电平使能信号,程序代码如下: assign f_in_edge = (~f_in_m)&f_in_n; // producting one period negedge singnal always @(posedge sys_clk or negedge rst_n) begin //to product one period negedge singnal for f_in if(!rst_n
查询SQLSERVER执行过的SQL记录(历史查询记录)
有的时候,需要知道近段时间SQLSERVER执行了什么语句,可以用下面的方法: SELECT TOP 1000 QS.creation_time, SUBSTRING(ST.text, (QS.statement_start_offset / 2) + 1,
((CASE QS.statement_end_offset WHEN - 1 THEN DATALENGTH(st.text) ELSE QS.statement_end_offse
java自带的监控工具VisualVM一
转自:http://www.cnblogs.com/wade-xu/p/4369094.html 这篇总结的很不错(本人亲自操手学习),留着以后复习备用,很适合入门级的学习者: VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作。本文主要介绍如何使用 VisualVM
今日推荐
周排行