自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 艺龙h5酒店业务架构问题以及调优策略

现有问题 历史 艺龙网h5酒店业务线自成立到现在,经历了几番较大调整,部分技术人员也是从.net转到java,由于技术人员的资历和公司对业务进度的追求,导致技术严重落后。线上问题层出不穷,例如:线上抛出异常,redis宕机,tomcat宕机,qps过高导致响应问题,代码质量差导致模块加载速度差等等。 压力分析 项目由于业务性质问

2016-11-14 17:02:30 1011

原创 数据库设计规范(MySQL)

1. 表名、字段名只能使用小写字母;数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑,必须见名知义,多个英语单词用下划线分隔,并且不要超过32 个字符,不能使用保留字,不能使用简写拼音。2. 表名不使用复数名词。说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量。3. 所有表、字段都需要添加注释。4. 数据库字符集指定为 utf8 或 utf8mb4,字符集默认校验规则为 utf8_general_ci 或。

2023-12-05 09:55:13 975

原创 接口的设计原则

遵循REST架构风格,使用合适的HTTP方法(GET、POST、PUT、DELETE等)来实现资源的增删改查,使用URI标识资源,使用状态码表示操作结果等。通过遵循这些接口设计原则,可以设计出高质量、易用、可扩展和可靠的API接口,提供给用户出色的开发体验和稳定的服务质量。设计高性能的接口,减少响应时间,减少网络开销,使用缓存等方式提高接口性能。接口应该易于使用,提供清晰的文档和示例,并考虑用户的需求和使用场景。接口应该易于阅读和理解,使用清晰的命名和注释,以及一致的代码风格。

2023-12-05 09:51:39 507

原创 模拟重入锁

package com.ice.spring.lock;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;public class MyLock implements Lock { pr...

2019-01-29 16:47:18 142

原创 redis.conf 4.0配置详解

#绑定ipbind 127.0.0.1 10.199.214.30#since3.2安全策略,ip/密码protected-mode yes#tcp端口port 6379# TCP 监听的最大容纳数量# 在高并发的环境下,你需要把这个值调高以避免客户端连接缓慢的问题。# Linux 内核会一声不响的把这个值缩小成 /proc/sys/net/core/somaxconn 对...

2018-11-21 11:36:16 1549

原创 【基于唯品会MP平台】分布式事务解决方案

背景事务对于一个系统来说是非常重要的,分布式事务一直是一个老生常谈的问题。本地事务由数据库本身ACID特性保证,数据库管理系统采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,使数据库退回到执行事务前的初始状态。分布式事务,目前圈内存在的解决方案也很繁杂。但是无非在跟CAP原则作斗...

2018-11-03 16:36:23 734

原创 【基于唯品会MP平台】集群环境下session共享技术方案及分布式单点登录

背景传统的B/S架构的系统中,一般为单点部署,并不存在集群,所以也不存在session丢失的问题。那么,由于单点部署一旦宕机,无法保证系统可用性,那我们就想到把它扩展为多台服务器部署,这样既保证了系统的可用性,又降低了单点的压力。但是,在集群环境下,原来的application级别的session,由于只局限于单点容器中,并不能保证可见,所以必然会造成用户会话状态的丢失。如下图:解决方...

2018-09-04 19:17:56 598

转载 【无侵入】agent服务+javassist字节码操作

简介转载出自:http://blog.csdn.net/supera_li/article/details/45846175 对于agent,是在vm启动,执行方法前,将字节码修改的服务代理。 对于javassist,是修改字节码具体实现。 这两个结合有什么用啊?写测试框架,不仅局限于此。 对于字节码: 字节码处理工具,bcel,asm与虚拟机指令打交道。Javassist采用java编码...

2018-07-20 12:59:23 597

原创 (二)redis主从原理及流程——高可用

Sentinel(哨兵)的来由书接上文,我们学习了redis的replication的原理,我们这一章来讨论一下redis主从策略的高可用性。这个哨兵的插件是我们redis里面集成了的(部署简单略),哨兵会监控主从的各个节点状态,当主节点被视为不可用时,那么,哨兵之间或进行“投票协商”进行判刑master的死亡,并且从slave中选举出新的master。这就是哨兵在redis主从结构中的重要作用。...

2018-07-10 18:48:41 3122

原创 (一)redis主从原理及流程——主从复制

作用     我们正常在项目中对redis进行应用,一般都不会是单点的。因为,单点的宕机即不可用,不能保证可用性。另外,单点redis读写指令都会打到同一个服务里面,也会影响性能。在通常的应用中,对redis的读操作远远多于写操作,所以,我们一般会选择“一主多从”的集群策略。           redis主从策略分为两大类知识点:1,replication复制策略。2,sentinal高可用性故...

2018-07-04 20:15:08 2293

原创 反射篇

反射的原理当我们编写好一个“.java”文件,通过javac编译器编译后会形成一个“.class”文件。当我们运行该文件时,Java虚拟机就通过类加载器(类加载器本质就是一段程序)把“.class”文件加载到内存,在方法区形成该类各方法的代码段和描述该类细节信息的常量池,同时在堆区形成一个表示该类的Class对象(一个java.lang.Class类的实例)。Class对象中存储了指向了该类所有属...

2018-07-03 18:27:36 140

原创 Redis持久化剖析

Redis持久化意义我们在互联网场景应用里,缓存服务是必不可少了,提高读写性能,对DB流量保护等。那么,常见的缓存服务就有redis、memcache等。那么,其中,redis最大的一个特点,就是支持持久化。支持持久化的意义在于什么呢?举一个例子,当我们的缓存服务宕机了,再重启的时候,如果没有持久化机制,那么重启后内存中就丢失了宕机前的所有数据,没有了缓存命中,接下来所有的请求都会打到DB上,发生...

2018-06-03 14:45:33 387

原创 大型电商缓存策略

何为静态化?首先,要搞明白静态化,就需要注意“静态”两个字。之前好多同学都误解为前端html通过ajax调用后端接口这种也是所谓的静态化,只区分出了jsp或php这种有后端代码嵌入html页面的情况。这种理解为什么不对,因为这种渲染方式,html是要依赖于后端接口的,依赖于后端接口就会涉及到网络的开销。静态文件就只是纯html、js、css、image等等。请求部分数据渲染:1,首先请求打在ngi...

2018-04-27 11:29:18 2269

原创 web应用开发编码

说明:日常开发中,编码问题是经常出现的,下面是日常积累以及查阅资料汇总的相应解决方法。1,对 url 中的 uri 设置编码:2,js 外引用包编码:3,jsp编码设置(指定对服务器响应进行重新编码的编码,服务器在将数据发送到浏览器前,对数据进行重新编码): 或 response.setCharacterEncoding4,jsp页面编码设置

2016-09-08 11:00:48 354

原创 艺龙网分销渠道代理层代码重构方案

理由:    由于原代码结构不合理,例如:单个java文件代码量太多,单个方法太大,多个功能写在一个文件里。这样导致代码结构十分臃肿,不宜维护。平时应对新需求迭代开发时,都需要大量时间去查代码,并调研。而且从代码性能来讲,由于存在大量垃圾和不合理代码,单个类信息庞大,堆内存占用空间较大,单个方法过于臃肿也导致了栈帧的负荷。另外,h5酒店与分销两个项目组代码共用部分过多,导致每一个迭代都需要过多

2016-09-05 11:03:05 612

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除