- 博客(142)
- 资源 (15)
- 收藏
- 关注
原创 session不断在变化
将部分数据缓存到session中,但是无法获取出来。调试的时候发现,session不断在变化。经过查资料,发现:IP相同认为是 同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括sessionid,造成A的session丢失。 如果 IP不同,则不会发生这个问题。IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问A,再访问B的时候,B的sessionid会覆盖A的sessionid。这个事情没办法解决,.
2021-10-22 10:42:34
1478
原创 RabbitMQ-AMQP核心概念
Server:又称Broker,接收客户端的连接,实现AMQP实体服务 Connection:连接,应用程序与Broker的网络连接 Channel:网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道。客户端可建立多个Channel,每个Channel代表一个会话任务。 Message:消息,服务器和应用程序之间传递的数据,由Pro...
2018-12-03 12:43:35
629
1
原创 mysql主从分离
一、原理1.主数据库,对数据的操作记录到Binary log中2.从数据库开启工作线程I/O thread ,将Binary log拷贝到Relay log3.SQL thread将数据写入从数据库 二、操作配置主服务器(192.168.1.14)配置:/etc/my.cnf[mysqld]server-id=1log-bin=master-binlog-bin-...
2018-12-02 22:11:43
344
转载 Java设计模式-抽象工厂模式
一、为形状创建一个接口public interface Shape { void draw();}二、创建实现接口的实体类public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::dr...
2018-11-30 16:37:23
276
转载 Java设计模式-简单工厂模式
一、创建一个接口public interface Shape { void draw();}二、创建实现接口的实体类public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw(...
2018-11-30 16:32:43
231
原创 Nginx性能优化
1.性能优化考虑点 1.当前系统结构瓶颈 观察指标 压力测试 2.了解业务模式 接口业务类型、系统层次化结构 3.性能与安全 一、ab压力测试工具 1.安装 yum install httpd-tools 2.使用 ab -n 2000 -c 2 http://127.0.0.1 -n 总请求次数 -c 并发次数 ...
2018-11-27 13:43:33
233
原创 Nginx常见问题
1.相同server_name多个虚拟主机优先级访问优先读取先配置的文件2.location匹配优先级= 进行普通字符精确匹配,也就是完全匹配^~ 表示普通字符匹配,使用前缀匹配~\~* 表示执行一个正则表达式 (优先级最高)3.try_files的使用按顺序检查文件是否存在location /{ try_files $uri $uri/ /index....
2018-11-27 12:48:35
204
原创 Nginx与Lua
#充分结合Nginx的并发处理epoll优势和Lua轻量级实现简单的功能切高并发场景##1.安装Lua解释器#yum install lua#2.运行#交互式,脚本式#lua基本语法#1.注释#行注释#- 注释#块注释#[[# 块注释#]]#2.变量##3.while循环#while num<=100 do#sum=sum+num#num=nu...
2018-11-26 16:26:39
396
原创 Nginx Https服务
#生成密钥和CA证书##1.检查是否安装openssl#openssl version#2.确认nginx是否有http_ssl_module#--with-http_ssl_module#nginx -v#3.生成key密钥#openssl genrsa -idea -out cyw.key 1024#4.生成证书签名请求文件(csr文件)#openssl req -new ...
2018-11-26 13:23:25
285
原创 Nginx-geoip_module模块
#geoip_module模块#基于IP地址匹配MaxMind GeoIP二进制文件,读取IP地址#先安装#yum install nginx-module-geoip#在nginx.conf添加:#load_module "module/ngx_stream_geoip_module.so";#load_module "module/ngx_http_geoip_module.so...
2018-11-23 13:30:10
1177
原创 Nginx安全链接模块-secure_link_modulem
#secure_link_modulem#一、制定并允许检查请求的链接的真实性以及保护资源免遭未经授权的访问#二、限制链接生效的周期、#配置语法Syntax: secure_link expression;Default : ——Context:http,server,locationSyntax: secure_link_md5 expression;Default : ——...
2018-11-23 13:09:26
1053
转载 Java内存模型-Java内存模型中的顺序一致性
如果程序是正确同步的,程序的执行将具有顺序一致性(Sequentially Consistent)——即程序的执行结果与该程序在顺序一致性内存模型中的执行结果相同。 顺序一致性内存模型有两大特性。 1)一个线程中的所有操作必须按照程序的顺序来执行。 2)(不管程序是否同步)所有线程都只能看到一个单一的操作执行顺序。在顺序...
2018-11-16 13:59:06
332
转载 Java内存模型-Java内存模型的基础
Java内存模型的基础 1.Java内存模型的抽象结构局部变量,方法定义参数和异常处理器参数不会在线程之间共享,它们不会有内存可见性问题,也不受内存模型的影响。 2.Java线程之间的通信由Java内存模型控制,...
2018-11-15 10:33:04
228
转载 Java并发机制的底层实现原理
volatile关键字对volatile进行写操作时,CPU会做什么事情: 1)将当前处理器缓存行的数据写回到系统内存。 2)这个写回内存的操作会使在其他CPU里缓存了该内存地址的数据无效。 为了提高处理速度,处理器不直接和内存进行通信,而是先将系统内存的数...
2018-11-12 16:28:20
205
转载 并发编程的挑战
一、多线程不一定快当并发执行累加操作不超过百万次时,速度会比串行执行累加操作慢。这是因为线程有创建和上下文切换的开销。减少上下文切换的方法:1.无锁并发编程:多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一些办法来避免使用锁,如将数据的ID按照Hash算法取模分段,不同的线程处理不同段的数据。2.CAS算法:Java的Atomic包使用CAS算法来更新数据,而不需要...
2018-11-12 10:33:41
211
原创 Nginx Rewrite规则
#Nginx Rewrite规则#1.URL访问跳转,支持开发设计(页面跳转,兼容性开发,展示效果)#2.SEO优化#3.维护(后台维护,流量转发等)#4.安全#配置Syntax: rewrite regex replacement [flag];Default : ——Context:server,location,if#例:rewrite ^(.*)$/pages/mai...
2018-10-31 16:23:48
238
原创 Nginx动静分离
#Nginx动静分离 ->通过Nginx将动态请求和静态请求分离#例:#server{#root /opt/app/code;#location ~ \.jsp$ {# proxy_pass http://java_api;# index index.html index.htm;#}##location ~ \.(jpg|png|gif)$ {# e...
2018-10-31 16:22:54
419
原创 常见Nginx的中间件架构(四)
#Nginx缓存服务#配置语法#定义Syntax: proxy_cache_path path [levels=levels][use_temp_path = on|off] keys_zone=name:size [inactive=time][max_size=size] [manager_files=number] [manager_sleep=time][manager_thr...
2018-10-26 16:27:15
327
原创 常见Nginx的中间件架构(三)
#三、负载均衡#配置语法Syntax: upstream name {...};Default : ——Context:http#样例#upstream backend{# server backend1.example.com weight=5;# server backend2.example.com:8080;# server backend3.exam...
2018-10-26 13:45:41
358
原创 常见Nginx的中间件架构(二)
#常见Nginx的中间件架构#二、代理服务#配置Syntax: proxy_pass URL;Default : ——Context:location,if in location,limit_except#例1:(反向代理):#location ~ /test_proxy.html$ {# proxy_pass http://127.0.0.1:8080;#}#例2...
2018-10-25 09:57:21
239
原创 常见Nginx的中间件架构(一)
#一、静态资源Web服务#文件读取Syntax: sendfile on|off;Default : sendfile off;Context:http,server,location,if in location#tcp_nopush配置语法#作用:sendfile开启的情况下,提供网络包的传输效率Syntax: tcp_nopush on|off;Default : tcp...
2018-10-24 17:49:36
996
原创 Nginx其他模块配置语法
#Nginx请求限制#limit_conn_module 连接频率限制#定义:Syntax: limit_conn_zone key zone=name:size;Default: ——Context:http#使用:Syntax: limit_conn zone number;Default: ——;Context:http,server,location#limit_r...
2018-10-23 21:33:05
210
转载 JDK命令行工具
jps:虚拟机进程状况工具 jps可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些这些进程的本地虚拟机唯一ID(LVMID)。格式:jps [options] [hostid] option 作用 -q 只输出LVMID,省略主类的名称 -m 输出虚拟机...
2018-10-18 11:15:36
198
转载 synchronized同步方法
“非线程安全”问题存在于“实例变量”中,如果方法内部是私有变量,则不存在“非线程安全”问题。如果多个线程访问同一个实例变量,则运行结果有可能出现交叉的情况 关键子synchronized取得的锁都是对象锁,而不是把一段代码或方法当做锁,哪个线程先执行带synchronized关键字的方法,哪个线程就持有该方法所属对象的锁Lock,那么其他线程只能呈等待状态,前提是...
2018-10-13 16:31:11
434
转载 内存分配与回收策略
对象优先在Eden分配 在大多数情况下,对象在Eden区中分配。当Eden区没有足够的空间进行分配时,虚拟机发起一次MinorGC。 大对象直接进入老年代 所谓大对象是指,需要大量连续内存空间的Java对象,最典型的大对象就是那种很长的字符串以及数组。 长期存活的对象将进入老年代 虚拟机给每个对象定义了一个对象年龄计数器。如果对象在Eden出生并经过一次MinorGC后...
2018-10-13 15:55:26
163
转载 垃圾收集器
Serial收集器 这是一个单线程收集器,它在进行垃圾收集时,必须暂停所有的工作线程,直到收集结束。 ParNew收集器 是Serial收集器的多线程版本,使用多条线程进行垃圾回收,其余行为与Serial收集器一样。除了Serial收集器外,目前只有它能与CMS收集器配合工作。 Parallel Scavenga收集器 是一款新生代收集器。目标是达到一个可控制的...
2018-10-11 19:29:25
188
转载 垃圾收集算法
标记-清除算法 首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。不足之处:效率问题,标记和清除两个过程效率不高。 空间问题,标记清除之后会产生不连续的内存碎片,空间碎片太多可能会导致以后在运行时过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾手机动作。 复制算法 它将可用内存按容量划分为大小相等的两块,每次只使用其中一块,...
2018-10-11 10:44:53
161
原创 Centos编译OpenJDK7源码
一、写在前面1.Centos版本:CentOS Linux release 7.3.1611 (Core) x86_642.ant版本:apache-ant-1.9.13 3.freetype版本:freetype-2.3.124.openjdk版本:openjdk-7u6-fcs-src-b24-28_aug_20125.jdk版本:jdk1.6.0_45二、安装jdk...
2018-10-11 09:22:06
481
转载 回收对象和方法区
回收对象,判断对象是否是可回收的 引用计算算法:给对象添加一个引用计数器,每当有一个地方引用它时,计数器的值就加1;当引用失效时就减1;任何时刻计数器为0的对象就是不可能再被使用的。但是大部分主流的Java虚拟机里面没有选用引用计算算法来管理内存,其中最主要的原因是它很难解决对象之间相互循环的问题。可达性分析算法:通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下...
2018-09-28 15:18:08
447
转载 对象的访问定位
目前主流的访问方式有使用句柄和直接指针两种方式。句柄访问:Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据各自的具体地址信息。 直接指针访问:reference中存储的直接就是对象地址 两种方式对比:使用句柄来访问最大的好处就是reference中存储的就是稳定的句柄地址,在对象被移动(垃...
2018-09-26 10:23:43
245
转载 对象的内存布局
在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头,实例数据和对齐填充。HotSpot虚拟机的对象头包括两部分信息,第一部分用于存储对象自身的运行时数据,如哈希吗、GC分代年龄,锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。对象头的另外一个部分是类型指针,即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例。实例数据部分是对象真正存储的...
2018-09-26 09:42:32
210
原创 UVa455 - Periodic Strings
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=6&page=show_problem&problem=396题目大意:如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。#include<stdio.h&...
2018-09-20 21:34:30
203
转载 Java对象的创建过程
Java对象的创建过程(不包括数组和Class对象等)虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。接下来虚拟机将为新生对象分配内存,一种方式是“指针碰撞”,另一种方式是“空闲列表”。当采用的垃圾收集器带有压...
2018-09-20 15:52:17
159
原创 UVa1225 - Digit Counting
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=247&page=show_problem&problem=3666题目大意:把前n个整数顺次写在一起:123456789101112...数一数0-9各出现多少次。#include&l...
2018-09-18 00:56:37
230
原创 UVa1586 - Molar mass
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=448&page=show_problem&problem=4461题目大意:给出一种物质的分子式(不带括号),求分子量。只包换4种原子,C,H,O,N,原子量分别为12.01,1.0...
2018-09-17 21:38:58
278
原创 UVa1585 - Score
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=448&page=show_problem&problem=4460题目大意:给出一个O和X组成的串,统计得分。每个O连续的得分为目前连续出现的O的个数,X的得分为0。#include&...
2018-09-14 23:59:30
417
转载 深入理解Java虚拟机-运行时数据区域
Java虚拟机所管理的内存将会包括以下几个运行时数据区域程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示符。 2.Java虚拟机栈Java虚拟机栈描述的是Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应这一个栈帧在虚拟机中...
2018-09-13 10:57:24
229
原创 UVa1584 - Circular Sequence
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4459题目大意:长度为n的环状串有n中表示方法,分别从某个位置顺时针得到,输出该环串的“最小表示”(按字典序列)。#include<stdio.h>...
2018-09-12 23:53:38
311
原创 UVa1583 - Digit Generator
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4458题目大意:如果x加上x的各个数字之后得到y,就说x是y的生成元。给出n,求最小生成元。#include<stdio.h>#include&...
2018-09-11 23:22:50
341
原创 UVa340 - Master-Mind Hints
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=276 题目大意:实现一个经典“猜数字”游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(...
2018-09-11 00:10:24
181
编译OpenJDK7源码相关软件
2018-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人