自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蒲春伟的博客

技术基础、大型网站分布式架构总结沉淀

  • 博客(22)
  • 收藏
  • 关注

原创 必知必会系列-Redis技术原理

随着技术的不断演进,在不同时间阶段都会有不同的技术产物,那么如何快速的学习和掌握新的技术对于技术同学而言是非常重要的,如果我们能够带着问题去学习了解一门技术为什么存在,解决什么问题?使用缓存本身就是为了解决热点问题的,但是热点数据中还是最热的数据,比如秒杀商品,一瞬间所有流量都会命中单一的Key集中在分布式缓存集群中某一台机器,导致触发单台机器的极限,进而影响到集群其它缓存数据的访问。因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。...

2022-07-13 22:17:13 289

原创 必知必会系列-JAVA虚拟机原理

JVM虚拟机运行时的内存区域主要包含:堆、虚拟机栈、本地方法栈、方法区、程序计数器,不同区域的内存的功能是什么?一句话总结就是JAVA程序启动就会为这个程序分配固定的内存区域,虚拟机再根据内存区域做进一步的划分以保障程序的运行更加高效持久。方法区:​ 对于JVM的方法区也可以称之为永久区,它储存的是已经被java虚拟机加载的类信息、常量、静态变量;Jdk1.8以后取消了方法区这个概念,称之为元空间(MetaSpace)...

2022-07-02 16:47:52 493

原创 必知必会系列-Spring技术原理

举个栗子:比如在访问数据对象之前都需要做一步预处理,即我们的关注点是预处理,而不需要在数据对象侧进行处理,降低数据数据对象的复杂度,我们只需要在访问数据对象的切面里面完成我们需要的统一业务逻辑处理即可。根据容器的上一个步骤将开发者需要使用的对象的定义信息和依赖关系都通过BeanDefinition加载进来了,其次便是根据定义的信息完成相关对象的实例化工作,由于容器并强感知对象的类型,所以在这一步是通过反射来完成需要对象的创建的,创建完成的对象放在BeanFactory中。那如何解决动态代理不生效的问题呢?.

2022-06-25 18:19:06 414

原创 小知识点系列:数据库连接池大小的设置

https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing?spm=a2c6h.12873639.article-detail.132.14ea74a1U2t1QO

2022-08-24 15:37:38 244

原创 网络运维系列:健康检查的方式

针对七层(HTTP或HTTPS协议)监听,健康检查通过HTTP HEAD探测来获取状态信息,如下图所示。对于HTTPS监听,证书在负载均衡系统中进行管理。负载均衡与后端ECS之间的数据交互(包括健康检查数据和业务交互数据),不再通过HTTPS进行传输,以提高系统性能。......

2022-08-02 20:38:04 285

原创 个人成长系列:好问题清单

这是得到上面教授《批判性思维》和《商业参考》的蔡钰老师,她经常使用的招式,就是当你和这个行业的专家建立联系之后,你可以定期用“事”去验证他。你看,这几个问题,其实是一个问题,都在问一件事情想要探索,对方关于自己专业/领域的核心洞察。它们都有一个共性,就是我为回答者提供了特定的限制条件,让我的问题变得很具体,那老师们就比较容易入手,来解决我的问题。我四十多岁了,想从现在开始学起,那在入门阶段,您推荐我读哪本书?因为这个限制太极端了,不过,极端的限制能够倒逼灵感和创新,你能把这位老师压箱底的洞察,给逼出来。..

2022-07-30 21:04:07 86

原创 个人成长系列:业务、技术学习书单

本科毕业之后的时间相比较于学校的时间少的太多,但由于认知水平的升级和视野的开阔,越来越多新的知识和薄弱基础的专业知识等待着自己去学习,相对较少的时间和相对较多的学习任务是我们面临的主要矛盾,唯一能够改变的可能只有正确的学习方法和高效的学习效率才能让我们在职场上更上一层楼,本文结合自己的工作经验和学习心得整理的一份书单。...

2022-07-30 20:57:24 105

原创 网络运维系列:远程服务器登录、配置与管理

个人计算机一般都是有桌面给到每一个使用者,与个人计算机不同的是,服务器安装的系统一般以Linux为主且是无桌面的,在没有具体的操作系统界面我们又该如何管理管理我们的远程服务器资源。...

2022-07-30 18:36:02 521

原创 小知识系列:Fork之后如何与原仓库分支同步

在日常工作过程中在gitlab或是github上会存在需要fork其它代码到自己的仓库中,进行一些自定义的变更,与此同时又想保持与主干的同步,此时应该如何处理。

2022-07-30 17:01:29 559

原创 网络运维系列:二级域名启用与配置

每个电脑、服务器等网络设备均有且只有一个IP地址来识别在网络上的定位,IP地址如同真实世界的门牌号一样,但是IP地址(如192.168.20.24)不是特别容易被记住,为了解决不方便记忆的问题,可以通过申请一个容易记忆的域名,然后将域名指向该IP地址。...

2022-07-30 16:07:17 545

原创 网络运维系列:GoDaddy Shell DDNS配置

由于IP地址的稀缺性,日常办理的家用宽带出口IP地址都是动态变化的,为了能够动态的知道家用宽带的出口IP以便能够便捷的访问到家里的网络设备,如NAS、远程桌面等,参考通用做法采用DDNS方案,由于域名是在GoDaddy申请的,整体技术方案需要通过GoDaddy申请秘钥对,然后通过开放URL地址对域名的DNS解析指向进行修改,下面是具体的流程。......

2022-07-28 21:02:29 368

原创 小知识点系列-基于H2数据库单元测试

上面在定义H2数据库时指定了表结构的配置文件在ClassPath下的h2/sql/schema.sql下,通过schema我们定义我们DAO测试所需要的表结构,可以直接通过MySQL导出建表语句。

2022-07-19 20:29:59 419

原创 网络运维系列:端口占用、端口开启检测

日常工作过程中可能会碰到机器的端口被占用而不知道是什么程序占用,被占用后如何快速终止进程?或是远程服务器服务是否还存在,端口是否还能连通如何检测出来的问题,本文将就这一类问题进行简单记录。.........

2022-07-14 20:53:23 334

原创 支付系列文章:PCI合规能力建设

支付卡行业数据安全标准 (PCI DSS:全称The Payment Card Industry Data Security Standard) 是一组专有信息安全标准,由 PCI 安全标准委员会管理,该委员会由 American Express、Discover Financial Services、JCB International、MasterCard Worldwide 和 Visa Inc. 创建。PCI DSS 适用于存储、处理或传输持卡者数据 (CHD) 或敏感身份验证数据 (SAD) 的实体

2022-07-13 13:41:50 448

原创 网络运维系列:网络出口IP地址查询

在日常研发的工作过程中很少会需要了解自己的网络出口的IP地址是多少,网络出口IP地址和机器IP地址不是同一个概念,那具体什么情况下会需要知道自己的网络出口IP地址呢? 一般在与外部机构进行安全访问的情况下,机构会将我们的IP地址或是IP段添加到防火墙的白名单中,进而提升整体的安全性。在终端下执行curl curl www.cip.cc即可查询到我们的出口IP地址,多次查询可能会有所变化,短时间一般是同一个出口IP地址,主要是由于IPV4的地址的稀缺性,个人的家庭宽带一般情况下都不是固定的IP地址,会随着时

2022-07-05 00:00:49 2776

原创 小知识点系列:数组与多维数组

一维数组的创建和使用相对来说比较简单,与一维数组相比二维数组就是数组的数组,三维数组是二维数组的数组,可能很多开发刚接触二维数组就已经晕了,甚至如何遍历输出都没有头绪,下面我们先从一维数组开始,然后就常用的二维数组和三维数组做简单的梳理和总结。一维数组的快速定义和遍历,整体理解成本还是比较低的,也是日常开发过程中比较常用的一种数据结构,相关使用方法本文不过多赘述。二维数组二维数组学习最开始遇到的障碍可能是二维数组的长度是什么长度,到底是横向的length还是纵向的length,比如下图的二维数组twoD

2022-07-03 11:35:44 174

原创 IDEA如何进行远程Debug

项目的部署方式有主要有两种,第一种是以本地SpringBoot直接启动或是非SpringBoot的应用在本地应用服务器进行部署;第二种则是将项目在远程服务器部署。一般本地直接启动的项目可以直接进行DEBUG调试,但是在企业内部或是多人协同的时一般是将项目部署在独立的一台测试服务器上,针对这种情况该如何DEBUG调试的我们的业务代码呢,下面是具体的操作流程。应用或是系统在远程服务器上一般是通过命令行或是Shell脚本完成应用的启动/关闭,关于启动的参数配置一般是附属在Shell脚本或是JAVA启动命令中来进行

2022-06-29 10:08:46 2526

原创 网络运维系列:Ubnt ER-X初始化和开启硬件NAT

电脑通过网线连接Ubnt ERX路由器第一个WAN口(默认只有第一个网口可用),通过浏览器访问控制台,初始化配置,将第一个口设置为WAN口,第二个口设置为LAN口下载最新版本即可,初始固件版本相对较低建议升级以提升整体路由器的稳定性,官网固件下载地址开启NAT需要使用SSH登陆,帐户为在初始化设置的管理员账户,相比较于普通路由器通过CPU来进行NAT转发,开启硬件NAT将大幅降低CPU的利用率,从而可以利用CPU做一些其它的事情。为什么将光猫更改桥接模式,电信运营商的光猫核心的一个作用是将光信号转

2022-06-29 00:06:29 1783

原创 Mac下Nginx安装与使用

Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品。因为nginx被广泛用于业界和集团内部,所以花了些时间学习了自己搭建配置的过程。下载地址:http://nginx.org/download/nginx-1.11.7.tar.gz在该页面可以看到三个版本的Nginx,在此我下载的是MainLine version

2022-06-28 23:52:56 1302

原创 小知识点系列:StringUtil.isEmpty()与StringUtil.isBlank()的区别

判断某字符串是否为空,为空的标准是str==null或str.length()==0下面是StringUtils判断是否为空的示例:2. StringUtils.isNotEmpty()判断某字符串是否非空,等于!isEmpty(String str)下面是示例:3. StringUtils.isBlank()判断某字符串是否为空或长度为0或由空白符(whitespace)构成下面是示例:3. StringUtils.isNotBlank()判断某字符串是否不为空且长度不为0且不由空白符(whi

2022-06-25 13:43:35 492

原创 JAVA实现Date日期加一天

在业务研发过程中碰到条件范围查询或是设定截止日期,需要基于当前时间向前或是向后进行加减几天,但是因为可能涉及跨月或是跨小时并不能单纯的直接在月份上+1或是-1操作,针对这种情况JAVA提供了相关的API可以完成相关的功能,具体方法如下...

2022-06-25 13:34:11 28757 2

原创 velocity模板页面四则运算

项目有个前端velocity需求,因为比较简单,所以就后端自己完成了,在数据库里面存储的数据是美分,在前台显示要显示为美元,所以要对金额数据进行除10操作(如果是其它除数可能需要考虑到无限小数的问题),但是因为使用Velocity进行四则运算,下面总结下使用Velocity该如何正确的进行四则运算参考JAVA的语法在vm里面直接进行数值的计算,实验结果并不可行,velocity引擎把fundAmount/10当做占位符号,且由于未读取到目标值直接原样输出。正确解法对于模板引擎无法理解我们的意图到底是什么

2022-06-25 11:44:23 553

空空如也

空空如也

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

TA关注的人

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