自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 项目复盘都应当怎样做?

项目复盘的目的不是为了匹配谁,而是为了大家从复盘中找到问题,避免下一次犯同样的问题。那作为软件项目应当怎样来进行复盘呢?接下来我就介绍一下复盘的经验: 会议名称:门店列表&详情统一改版项目复盘 会议时间:2019/08/06 会议地点:B7肯尼亚 参会人员(包括所有...

2020-04-01 11:15:46 76 0

原创 高并发,高可用架构的演进路线。

某些App怎么扛住1分钟10亿请求? 架构的演进路线 百万级并发:1秒100万次请求。 千万级并发:一分钟6亿次请求,差不多就是需求的极限。 架构的设计和架构优化要符合需求本身,不能无限制优化。 基本概念 (1)分布式(系统中,多个模块在不同服务器上部署) (2)集群(一个软件部署在...

2020-03-29 22:29:18 125 0

原创 PM怎样建立好自己的项目管理文档目录?

作为一个项目或者产品,文档积累是必不可少的。很多时候大家在管理项目的时候,不知道需要积累什么问题,接下来我给大家展示一下我们研发项目的文档结构: 门店列表&详情统一(项目名称) 1.(门店列表&详情统一)PRD&原型图&UED设计图 项目分解 说明及文档...

2020-03-29 21:58:09 31 0

原创 怎样做好项目的上线工作?

项目上线任务名称:XXXX任务名称 上线更新说明: 1.xxxxxxxx。 2.xxxx。 上线提前准备: 上线时间:XXXX年MM月DD日 HH:mm:ss 上线配置:准备的具体配置参数或者参数对应文档路径地址,涉及参数的更新,需要记录历史值以便于回滚。 前端上线分支:具体分支 后端上线分...

2020-03-11 09:04:45 25 0

原创 项目计划模板是作为技术人带领项目成功的起点

2020-02-25 09:06:03 36 0

原创 什么是跨域?跨域的解决方法?

什么是跨域? 要了解跨域,先要说说同源策略。同源策略是由 Netscape 公司提出的一个著名的安全策略,所有支持 JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。当页面在执行一个脚本时会检查访问的资源是否同源,如果非同源,那么在请求数据时,浏览器会在控制...

2019-10-22 21:49:08 57 0

原创 redis集群环境搭建、扩容、缩容原理

一、背景 随着互联网的不断发展,用户体验要求越来越高,为了提高性能大家常常采用的方案是将我们的热点数据存储到缓存中,这样来减少服务与数据库的交互。怎样能搭建一个高可用的缓存集群也就成为了新的问题。 Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用 (...

2019-03-01 11:31:13 1174 0

转载 一致性Hash原理与应用

一、背景 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 ...

2019-02-28 10:15:38 107 0

原创 从JVM原理到性能调优

一、Java加载过程 类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。 其中类加载过程包括加载、验证、准备、解析和初始化五个阶段。   类加载器的任务就是根据一个类的全限定名来读取此类的二进制字节流到JVM...

2019-02-22 09:03:22 111 0

原创 解密MYSQL索引机制

一、什么是非聚蔟索引和聚蔟索引   非聚蔟索引        数据库索引相当于书本的目录,目录里面的是对应的页码,索引也是,当查询走索引时,找到索引,索引里面也有找到对应数据的路径,就是数据在磁盘上的物理地址,主索引,次索引都是这么存的,索引与数据分开了。这类索引就是非聚簇索引,myisam索...

2019-02-21 20:49:18 70 0

原创 分布式事务、跨库事务的实现原理与JDBC实现XA分布式事务

一、背景      随着,互联网的不断发展,传统的单库已经无法满足我们业务上的需求。作为行业内的解决方案就是将数据库进行分区、分库、分表、分片。但是其中涉及分库的时候,事务的提交又变成了行业中难题。为了解决这个问题Mysql5.0后,开始支持分布式事务XA。 二、XA原理        我们...

2019-02-19 10:09:27 302 0

原创 MySql分表、分库、分片和分区知识

一、前言     数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。 二、分片(类似分库)      分片是把数据库横向扩展(Scale Out)到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O...

2019-02-18 20:52:29 11217 0

原创 mysql数据库安装环境部署

1、安装环境 系统:linux 工具:mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar,下载地址:官网,https://dev.mysql.com/downloads/mysql/ 2、安装步骤 1)上传本地mysql-8.0.15-1.el7.x86_64...

2019-02-13 15:22:59 422 0

原创 mac的liunx虚拟机安装solr7.6服务器以及解决安装过程中的问题

      solr5以前solr的启动都有tomcat作为容器,但是从solr5以后solr内部集成jetty服务器,可以通过bin目录中脚本直接启动。就是从solr5以后跟solr4最大的区别是被发布成一个独立的应用。 一、环境准备    Centos7,Jdk1.8.0.144,solr...

2019-01-30 21:25:35 158 0

原创 mac的linux安装tomcat全过程并解决宿主机mac不能访问虚拟机tomcat服务器

一、Linux下Tomcat8的安装配置 安装tomcat前首先要安装对应的jdk并配置Java环境。 1、环境准备 jdk版本:1.8 工具:mac自带终端 2、安装步骤 2.1 安装jdk 2.1.1、下载安装包 官网下载地址:http://www.oracle.com/tec...

2019-01-30 19:38:18 354 1

原创 程序员,如何打破职业瓶颈期?

程序员经过知识的积累过程大致分为困惑期、发展期、瓶颈期和自由期四个阶段,困惑期、发展期和自由期这三个阶段随着工作经验的逐步丰富,过渡都是非常容易。与其相反,瓶颈期是很难渡过并且这个阶段是对事业和人生的非常关键的阶段。在这里学到的、掌握到的都是行走江湖的真功夫。经历了这个过程后,就基本能把程序员分出...

2018-12-28 10:22:00 173 2

原创 订单状态机设计

状态机整体设计:   说明: 基本要素:状态(state)、事件(event)、流转(transition)、虚拟状态(virtual state)、条件(guard)、条件分支、默认分支; 基本流程:图中"开始"状态接收到事件"E1"后切换至&...

2018-12-28 10:13:48 5269 0

原创 Java利用Redis实现分布式锁的代码封装

       当今互联网时代,单机服务器已经无法满足系统性能要求,各个公司都采用分布式部署,此时就涉及到分布式锁。常用处理分布式锁的方式是采用redis的setnx命令来实现,接下来我们看一下怎样来封装一个比较好的分布式锁结构。 CacheService.java 缓存处理接口 packa...

2018-12-23 22:39:41 311 0

原创 手写Netty实现RPC接口远程调用客户端与服务器

Java的IO分为BIO、NIO、AIO(NIO.2), 其中它们分别含义是: Java BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 Java N...

2018-12-21 19:40:50 2318 4

原创 数据字典模版

        一个好的团队,工作之中应该有各种各样的模版,对应数据库设计也是一样,数据库字典是你对整个系统从各个环节的思考的细化。现在都实行敏捷开发,数据字典不于过重,所以最近工作之中自己设计了一个简易的数据字典模版。                                   ...

2018-11-21 22:46:25 10328 1

原创 怎样优化自己的统一处理异常类

     Java程序中,异常处理对于程序来说是非常基础。但是真正能很好理解并且很好的统一处理,这样会使得代码逻辑更清晰,更简单、更高效。下面就是程序中需要处理并且注意的异常统一处理案例: 1、自定义异常类 Controller异常类 package com.jd.wyjm.front.co...

2018-10-14 22:10:53 425 0

原创 JAVA高效实现列表上下移动、置顶的高效计算方法

       大家可能常常遇到像文章列表、商品列表,业务要求我们实现列表能自动上下移动和置顶。遇到这样我们大多数往往想的是很简单,给个排序字段sort类型为INT不就行了吗?       它的实现方法,每当新增一条记录的时候,sort都会在前一条记录上+1。例如:我们用这5条记录来进行排序。记录...

2018-07-18 10:31:46 3106 3

原创 Rest接口中,异常处理更通用。

       Java程序中,异常处理对于程序来说是非常基础。但是真正能很好理解并且很好的统一处理,这样会使得代码逻辑更清晰,更高效。下面就是程序中需要处理并且注意的异常统一处理案例:通用异常处理类:package com.jd.ccc.sys.biz.yb.mall.common.excepti...

2018-06-11 09:54:47 1111 0

原创 HashMap的数据结构?HashMap怎样解决KEY中hash值冲突问题?HashMap是否是线程安全?HashMap为什么属于线程非安全?

Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap利用“单向链表”解决key的hash值相等的问题。HashM...

2018-06-06 21:45:28 1123 0

原创 elasticsearch搜索中文分词理解、类似SQL语句中的"LIKE”条件的模糊搜索以及忽略大小写搜索

01》不进行分词的索引建立:URL:es_index_test{  "settings": {    "index": {      "number_of_shards": "4",      "number...

2018-06-05 15:25:29 9561 0

原创 程序员应该怎样使用MYSQL索引

MySQL索引的概念         索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。它分为聚簇索引和非聚簇索引:聚簇索引能提高多行检索的速度、非聚簇索引对于单行...

2017-08-11 17:06:28 153 0

转载 CAS下ABA问题及优化方案

一、并发业务场景 库存业务,stock(sid, num),其中: sid为库存id num为库存值如上图所示,两个并发的查询库存操作,同时从数据库都得到了库存是5。接下来用户发生了并发的库存扣减动作: 如上图所示: 用户1购买了3个库存,于是库存要设置为2 用户2购买了2个库存,...

2017-06-22 16:23:34 232 0

转载 什么是数据库散列存储?

网站在Web 2.0时代,时常面临迅速增加的访问量(这是好事情),但是我们的应用如何满足用户的访问需求,而且基本上我们看到的情况都是性能瓶颈都是在数据库上,这 个不怪数据库,毕竟要满足很大访问量确实对于任何一款数据库都是很大的压力,不论是商业数据库Oracle、MS SQL Server、DB2...

2017-06-22 14:32:04 703 0

原创 Java 装饰模式的应用

Java Web在filter中可以得到代表用户请求和响应的request、response对象,因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求。 一、Decorator设计模式 1.1、Dec...

2017-06-22 14:28:42 251 0

转载 Java 8 新特性总结

1.介绍      毫无疑问,Java 8发行版是自Java 5(发行于2004,已经过了相当一段时间了)以来最具革命性的版本。Java 8 为Java语言、编译器、类库、开发工具与JVM(Java虚拟机)带来了大量新特性。 2.Java语言的新特性      Java 8都是一个变化巨大的版本。...

2017-06-22 14:25:54 146 0

原创 Java 8 新特性总结

[size=small][b]1.介绍[/b] 毫无疑问,Java 8发行版是自Java 5(发行于2004,已经过了相当一段时间了)以来最具革命性的版本。Java 8 为Java语言、编译器、类库、开发工具与JVM(Java虚拟机)带来了大量新特性。 [b]2.Java语言的新特性...

2017-03-21 09:35:07 62 0

Java 装饰模式的应用

[size=small]Java Web在filter中可以得到代表用户请求和响应的request、response对象,因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求。 [b]一、Decorat...

2017-03-20 09:53:12 53 0

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