自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一杯甜酒

用勇气改变可以改变的事情,用胸怀接受不可以改变的事情,然后用智慧分辨两者的不同!...

原创 2016年终总结

分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程 一、技术总结 (1)App/JavaWeb后台系统 1.1、采用RestFul架构的SSM(Spring SpringMVC MyBatis)框架集成开发的App后台系统,将用...

2017-01-10 11:54:34 4769 19

原创 青春路上,岁月如烟

分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程 青春路上,岁月如烟 凡人一世,始聚终散。年长当权,寂寞同醉。年少轻狂,知己共饮。 世界一如既往,不存在永恒和不灭。我们终为一介凡人,没法脱离世俗,看破红尘。人生亦是悲欢离合,聚...

2014-06-23 18:35:45 3730 9

原创 Java基础学习总结(161)——Java 重试机制

重试的作用: 对于重试是有场景限制的,不是什么场景都适合重试,比如参数校验不合法、写操作等(要考虑写是否幂等)都不适合重试。远程调用超时、网络突然中断可以重试。在微服务治理框架中,通常都有自己的重试与超时配置,比如dubbo可以设置retries=1,timeout=500调用失败只重试1次,超...

2020-09-29 14:42:58 14 0

转载 支付业务与技术架构学习总结(11)——支付中台的几个面向:支付业务、资金核算、面向风控等切面

一、概述 在1.0的支付系统中,我们遇到了诸多问题。痛定思痛,我们决心对支付系统做一次架构升级。那么,怎么去做支付系统的架构升级呢?我们从两个方面来进行架构升级梳理: 巨大的单体应用必须要拆分,在拆分之前,需要确定业务、系统边界,并对支付业务进行建模。 构建完整的资金核算体系,以...

2020-09-27 09:25:26 110 0

转载 支付业务与技术架构学习总结(10)——第三方支付账务系统论述

一、第三方支付账务系统设计 首先谈一下支付公司账务系统如何设计。关于如何记账,国内长期以来有两个发展方向,一个是以金蝶、用友为代表的财务系统,另一个是以银行为代表的银行账务核心系统。这两种账务系统都是用来记账,但设计理念上有很大差别,财务系统以科目为中心,记账必谈科目,银行账务系统以账户为中心,...

2020-09-27 09:09:46 95 0

转载 支付业务与技术架构学习总结(9)——银行核心系统之清算体系

支付清算系统是经济金融活动的基础性支撑。支付、清算体系建设是金融理论与实践的重点课题。本文主要描述了支付系统建设的发展历程及构成,分析了银行内部清算体系设计,有利于快速建立起金融服务体系思路。希望略尽绵薄之力,让刚入行的银行IT人少一些困惑,多一些兴趣,早一些进入高速成长期。也希望更多的有经验的老...

2020-09-27 09:03:37 176 0

原创 Linux学习总结(61)——Ansible 快速入门学习

一、基本概述 ansible是一款开源自动化工具,基于python paramiko模块开发,分布式,无需客户端 官网网址:https://www.ansible.com 官方文档:https://docs.ansible.com/ansible/latest/user_guide/beco...

2020-09-25 17:09:29 41 0

转载 支付业务与技术架构学习总结(8)——支付系统设计包含:账户,对账,风控...

账户体系是支付系统的基础,它的设计直接影响整个系统的特性。这里探讨如何针对电子商务系统的支付账户体系设计。我们从一些基本概念开始入手,了解怎么建模。 支付账户和登录账号 账户体系设计首先要区分两个概念,支付账户和登录账号。这是两个不同业务领域的概念:支付账户指用户在支付系统中用于交易的资...

2020-09-25 16:58:28 616 0

原创 Linux学习总结(60)——Linux系统常用命令速查手册

一、系统信息 arch#显示机器的处理器架构(1) uname-m#显示机器的处理器架构(2) uname-r#显示正在使用的内核版本 dmidecode-q #显示硬件系统部件-(SMBIOS/DMI) hdparm-i/dev/hda #罗列一个磁盘的架构特性 hdparm-tT/de...

2020-09-23 09:01:00 146 0

原创 Redis学习总结(18)——Redis 常见面试题复习

1.Redis 是一个基于内存的高性能key-value数据库。 2.Redis相比memcached有哪些优势: memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 redis的速度比memcached快很多 redis可以持久化其数据 3.Red...

2020-09-21 08:48:59 121 0

转载 Linux学习总结(59)——为什么建议大家使用 Linux 开发

Linux 能用吗? 我身边还有些朋友对 linux 的印象似乎还停留在黑乎乎的命令行界面上。当我告诉他或者建议他使用 linux 时,会一脸惊讶的问我,那个怎么用(来开发或者日常使用)? Linux 有图形界面 桌面 启动器 文件管理器 设置 这是我使用了近两年...

2020-09-21 08:44:12 173 0

转载 Java基础学习总结(160)——JDK15正式发布,划时代的ZGC同时宣布转正

✍前言 2020年9月15日,JDK15正式发布,可谓如约而至。按照Java SE的发展路线图,JDK14自此停止更新。值得注意的是JDK15并非「LTS」版本,Oracle官方对Java SE的支持路线图如下: JDK8的扩展支持时间超过了JDK11,Oracle你是认真的吗?那么自Ja...

2020-09-18 15:09:49 961 6

原创 Java基础学习总结(159)——JDK15 正式发布了!新增14个新特性

前言 2020-09-15 Oracle 如期发布了JDK15了。在的 JDK 真变成了“版本帝”,无力吐槽啊,版本发到 15,大部分人却都还在用着 JDK 7/8,甚至 6。不过作为技术人员来说关注新技术。学习新技术应该是人生的常态。 OracleJDK 15 发布地址: https:/...

2020-09-17 09:19:56 101 1

原创 Windows学习总结(20)——Win10 子系统Linux(Ubuntu 18.04)的安装与卸载

话说微软对Linux 越来越友好了。我们可以选择从微软应用商店下载安装Ubuntu子系统。 安装之前需要做一下设置。以对虚拟化的支持。 安装完成后截图: 如要卸载输入如下命令:

2020-09-15 16:55:22 38 0

转载 Linux学习总结(58)——生产环境运维故障处理指南

1、故障处理原则 故障处理的原则只有两个: 以恢复业务优先 及时升级 1.1、恢复业务优先 恢复业务优先是指,不管在任何情况下,也不管任何级别的故障,都要先做到恢复业务,这个和故障定位不同,也有很多人会产生歧义,觉得如果不找到问题的根源,如何能恢复业务,下面我举一个例子说明二者的差别: ...

2020-09-11 13:54:24 45 0

原创 鸿蒙OS代码正式开源!!!

鸿蒙OS代码正式开源!!! 鸿蒙官网同步正式上线!!! 这是中国软件行业值得记录的时刻!!! 开源代码地址:https://openharmony.gitee.com/openharmony。 134个仓,每个仓求赞求Star! 没有人能熄灭漫天星火,每一位开发者都是社区要汇聚的星星之火!...

2020-09-11 10:10:14 957 0

原创 Spring Boot学习总结(23)——Spring Boot 实践经验总结

1、使用 BOM 维护第三方依赖 Spring Boot 项目本身使用和集成了大量的开源项目,它帮助我们维护了这些第三方依赖。但是也有一部分在实际项目使用中并没有包括进来,这就需要我们在项目中自己维护版本。如果在一个大型的项目中,包括了很多未开发模块,那么维护起来就非常的繁琐。怎么办呢?事实上,...

2020-09-10 10:00:26 89 0

转载 Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?

前言 在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处? 本篇博客我们就来分析这个问题,探讨一下...

2020-09-09 13:33:57 66 0

转载 消息中间件学习总结(21)——RocketMQ 消息丢失场景分析及如何解决!

项目中使用了MQ,那么就不可避免的需要考虑消息丢失问题。在一些涉及到了金钱交易的场景下,消息丢失还是很致命的。那么在RocketMQ中存在哪几种消息丢失的场景呢?先来一张最简单的消费流程图: 上图中大致包含了这么几种场景: 生产者产生消息发送给RocketMQ RocketM...

2020-09-09 13:26:55 79 0

原创 Java基础学习总结(158)——开发Leader如何做CodeReview

一、目标和原则 提高代码质量,及早发现潜在缺陷,降低修改/弥补缺陷的成本 促进团队内部知识共享,提高团队整体水平 评审过程对于评审人员来说,也是一种思路重构的过程,帮助更多的人理解系统 是一个传递知识的手段,可以让其它并不熟悉代码的人知道作者的意图和想法,从而可以在以后轻松维护代码 可以...

2020-09-07 19:37:42 528 0

原创 Java基础学习总结(157)——国产开源JDK来了

简介 Alibaba Dragonwell 是一款免费的, 生产就绪型Open JDK 发行版,提供长期支持,包括性能增强和安全修复。阿里巴巴拥有最丰富的Java应用场景,覆盖电商,金融,物流等众多领域,世界上最大的Java用户之一。Alibaba Dragonwell作为Java应用的基石,支...

2020-09-07 10:06:19 69 0

原创 Redis学习总结(18)——Redis 常见的使用场景汇总

1、缓存 缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。Redis提供了键过期功能,也提供了灵活的键淘汰策略,所以,现在Redis用在缓存的场合非常多。 2、排行榜 很多网站都有排行榜应用的,如京东的月度销量榜单、商品按时间的上...

2020-09-03 16:04:25 70 0

原创 Java基础学习总结(156)——那些年被淘汰的Java技术及框架

一、Swing Swing 算是 Java 早期代替 AWT 的桌面应用 GUI 开发工具包,一个听到就已经淘汰的技术,给我的感觉就是丑丑丑!现在与 AWT 一起在时间这个长河里长眠。 如果 Java GUI 库发展历程分为三代,可以是: AWT > SWING > JAV...

2020-09-03 15:59:08 112 0

转载 Dubbo学习总结(11)——Dubbo3.0 - 开启下一代云原生微服务

导读:本文整理自作者于 2020 年云原生微服务大会上的分享《Dubbo3.0 - 开启下一代云原生微服务》,主要介绍了关于思考 rpc 框架层面,功能演进的方向是什么?以及怎么更好地支持云上的多语言开发的新思考。 看到这个题目,大家可能会有几个问题,比如,什么是云原生微服务?Dubbo3.0 ...

2020-09-03 10:18:18 101 0

原创 消息中间件学习总结(20)——主流MQ比较及MQ常见使用场景总结

前言 MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据机构。指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递——生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由MQ服务端给其推送消息。消息队列中...

2020-09-02 13:35:15 65 0

转载 两个月新增 80万行代码,Linux 内核维护为什么不会崩?

8 月初,当 Linux 5.8 RC 版本开放测试时,大多数的新闻都聚焦于它的大小,称其为“史上最大的内核版本”。正如 Linus Torvalds 本人指出的那样,“尽管没有任何一件事情能脱颖而出……但 5.8 似乎是我们有史以来最大的发行版之一。” 确实,刚刚发布的 Linux 内...

2020-08-28 15:53:07 2426 2

转载 Java基础学习总结(155)——Java 日志框架怎么选?Logback Or Log4j2?

前言 前段时间写了一篇文章(文章链接:Logback配置文件这么写,TPS提高10倍),反响还不错,有很多网友也发表了自己的意见: 总结一下就是: logback性能测试同步和异步TPS相差不大 都9102年了还在用logback 看到网友的意见后又继续去做了一波测...

2020-08-12 16:01:53 474 0

原创 Spring Boot学习总结(22)——如何定制自己的 springboot starter 组件呢?

引言 我们日常项目中都会用到springboot,只要我们用到springboot,一定会用到各种spring-boot-starter。下面我们通过一个springboot starter 的demo(实现一个简单的通过日志记录方法的执行时间的一个组件)制作过程来总结如何定制自己的spring...

2020-08-11 16:58:28 103 0

原创 Docker学习总结(52)—— Docker容器环境变量相关知识点的总结

一、前言 了解Docker容器的运行环境非常重要,我们把应用放在容器里执行,环境变量会直接影响程序的执行效果。所以我们要知道容器内部的环境变量,也要知道如何改变这些环境变量。 二、查看环境变量 方式一:docker inspect 通过docker inspect命令不仅能查看环境变量,还...

2020-08-06 09:14:34 169 0

原创 RabbitMQ学习总结(9)——RabbitMQ 核心知识点再总结
原力计划

一、核心概念 server:又称broker,接受客户端连接,实现AMQP实体服务。 connection:连接和具体broker网络连接。 channel:网络信道,几乎所有操作都在channel中进行,channel是消息读写的通道。客户端可以建立多个channel,...

2020-08-05 09:21:41 399 0

转载 软件架构五大原则

方案架构师是负责系统架构以及特定产品的技术标准(包括技术、平台、基础架构)的专家。他们为产品设定前景,他们的分析也是产品的定义、设计、交付和永久支持的成功关键。因此,构架师不仅需要了解业务需求,还需要了解符合企业技术总目标的逻辑性、可扩展性及成本效益。架构师的重要技能之一就是能从许多不同的角度来看...

2020-08-04 09:20:09 131 0

原创 Spring Cloud与微服务学习总结(10)——Spring Cloud 常见优化项的总结

用undertow替换tomcat,因为undertow是基于NIO非阻塞式请求。也可以用最新的tomcat8.5版本的NIO模式,当然使用场景也有区分,undertow完全支持webrocket,适合IO密集型请求的情况。 Feign优化,用okhttp替换httpclient,原因主要是简单...

2020-07-21 21:14:54 219 0

转载 对领域驱动设计的理解与实践

前言 领域驱动设计(Domain-Driven-Design)是一种针对大型复杂系统的领域建模与分析方法论。2003 年,Eric Evans 发布《Domain-Driven Design: Tackling Complexity in the Heart of Software》(领域驱动设...

2020-07-21 20:59:49 387 1

原创 Redis学习总结(17)——Redis 持久化和过期机制复习

RDB RDB 是 Redis 持久化的第一种方式。有两个 Redis 命令可以用于生成 RDB 文件,一个是 SAVE,另一个是 BGSAVE。SAVE 会阻塞 Redis 服务器进程,执行时 Redis 服务器会阻塞所有客户端发送的命令。 redis> SAVE OK BGSAV...

2020-07-14 20:44:45 611 0

原创 Docker学习总结(51)——为什么不建议把数据库部署在 Docker 容器内的7大原因?

前言 2013年至今Docker非常的火热,各位开发者恨不得把所有的应用、软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程,小编整理了一些数据库不适合容器化的原因供大家参考,同时也希望大家在使用时能够谨慎一...

2020-07-14 20:36:06 4029 0

原创 Java多线程学习总结(4)——ThreadPoolExecutor 线程池的拒绝策略学习总结
原力计划

前言 谈到java的线程池最熟悉的莫过于ExecutorService接口了,jdk1.5新增的java.util.concurrent包下的这个api,大大的简化了多线程代码的开发。而不论你用FixedThreadPool还是CachedThreadPool其背后实现都是ThreadPoolE...

2020-07-11 12:25:48 505 0

原创 Spring学习总结(31)——Spring Bean 生命周期总结

一、Spring 容器中的 Bean 的完整生命周期 bean对象的实例化 封装属性,也就是设置properties中的属性值 如果bean实现了BeanNameAware,则执行setBeanName方法,也就是bean中的id值 如果实现BeanFactoryAware或者Applic...

2020-07-09 09:39:36 309 0

原创 Linux学习总结(57)——生产环境用户权限管理规范

一、问题现状 公司生产服务器通常上百台,甚至上千台上万台,操作人员很多(开发+运维+架构+DBA)。大家使用Linux服务器时,不同职能的员工水平不同,老手和新手员工熟知度不同,如果权限控制不当(如root权限泛滥),服务器的安全存在极大隐患。为此,运维人员一般有一套系统用户及权限标准规范。 ...

2020-06-28 10:28:52 683 0

原创 Java基础学习总结(154)——Synchronized与Volatile、Synchronized与ReentrantLock概念及区别

一、Synchronized与Volatile的区别 首先需要理解线程安全的两个方面:执行控制和内存可见。执行控制的目的是控制代码执行(顺序)及是否可以并发执行。内存可见控制的是线程执行结果在内存中对其它线程的可见性。根据JVM的内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CP...

2020-06-16 18:16:41 417 0

原创 Java基础学习总结(153)——HashMap、Hashtable、ConcurrentHashMap的原理与区别

一、HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算ind...

2020-06-16 17:57:08 232 0

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