6 一杯甜酒

尚未进行身份认证

专注于金融科技领域的技术人

等级
TA的排名 123

重读《架构漫谈》

架构漫谈(一):什么是架构?架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。专栏的目的是希望能抛出一些观点,并引发大家思考,如果你有感触或者新的感悟,欢迎联系专栏负责人Gary(微信greenguolei)深聊。本文是漫谈架构专栏的第一篇,作者将会通过类比的方式来介绍什么是架构...

2019-10-06 16:33:44

ELK学习总结(2)——ELK 原理介绍及实践详解

一、需求背景业务发展越来越庞大,服务器越来越多 各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志 开发人员排查问题,需要到服务器上查日志,不方便 运营人员需要一些数据,需要我们运维到服务器上分析日志二、为什么要用到ELK一般我们需要进行日志分析场景:直接在日志文件中grep、awk就可以获得自己想要的信息。但在规模较大也就是日志量多而复杂的场景中,此...

2019-09-20 14:41:18

Spring Boot学习总结(18)——Springboot 2.0选择HikariCP作为默认数据库连接池的五大理由

Springboot2默认数据库连接池选择了HikariCP为何选择HikariCP理由一、代码量理由二、口碑理由三、速度理由四、稳定性理由五、可靠性HikariCP为什么这么快优化并精简字节码更好的并发集合类实现使用FastList替代ArrayListHikariCP与Druid相比哪个更好?Springboot2快速上手参考资料SpringBoot2默认数据库连接池选择了Hikari...

2019-09-17 10:10:00

我是如何将系统QPS从300提升到6000的

最近,为应对日益增长的业务要求,一直忙于进行系统优化。前几天,系统终于上线,正式开始运行了,我这才有时间来总结一下。背景我负责的这个系统是公司的收银系统,公司所有需要进行支付的业务都会接入这个系统。由于历史原因,之前的收银系统一直和其他的业务部署在同一台机器上,这就导致业务系统和收银系统经常出现相互影响的情况。比如之前有一次,一个业务做活动,订单量暴增,大量支付请求发送到收银系统,一时间收...

2019-09-16 10:23:11

Mysql学习总结(77)——温故Mysql数据库开发核心原则与规范

一、核心原则1、尽量不在数据库做运算俗话说:别让脚趾头想事情,那是脑瓜子的职责。作为数据库开发人员,我们应该让数据库多做她所擅长的事情。尽量不在数据库做运算,复杂运算移到程序端CPU,尽可能简单应用MYSQL。举例:在mysql中尽量不要使用如:md5()、OrderbyRand()等这类运算函数2、尽量控制单表数据量大家都知道单表数据量过大后会影响数据查询效率,严重情况下...

2019-09-12 14:07:14

生产环境的分布式任务调度框架如何选择?quartz、xxl-job、Elastic-Job、Saturn

一、Quartz支持集群和分布式,但是没有友好的管理界面,功能单一,对于管理调用的任务比较困难。quartz使用数据库锁。在quartz的集群解决方案里有张表scheduler_locks,quartz采用了悲观锁的方式对triggers表进行行加锁,以保证任务同步的正确性。一旦某一个节点上面的线程获取了该锁,那么这个Job就会在这台机器上被执行,同时这个锁就会被这台机器占用。同时另外一台...

2019-09-09 14:35:14

Dubbo学习总结(9)——Apache Dubbo Roadmap 2019

导读:ApacheDubbo是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。自2011年开源以来,Dubbo就是国人开发的最知名开源项目之一,也是我们实现分布式服务化和微服务架构的核心技术之一。本议题介绍Dubbo的发展历程、技术生态和2019年规划,分享微服务架构的一些实战经验,以及参与开源项...

2019-09-05 13:43:40

Java基础学习总结(148)——如何提高代码质量

前言人跟人的能力千差万别,所以写出来的代码质量,肯定是不同的。有的人,写一个小逻辑,可能需要100行,而有的人,可能仅仅需要10行。代码永远会有Bug,在这方面没有最好只有更好。模块化与面向对象是实现高效无错代码的方法。高效无错代码需要思想与实践的不断反复。如何做到代码高效无错,提高代码质量的方法有哪些?又有哪些经验和技巧呢?一、代码质量软件是交付给用户,并由用户体验的产品;代码则是...

2019-09-04 17:48:31

Docker学习总结(47)——温故Docker常用命令行

一、前言Docker镜像是由Dockerfile和一些必要的依赖项组成的,Docker容器是动态的Docker镜像。要使用Docker命令,首先需要知道您是在处理镜像还是容器。一旦你知道你所处理的是镜像还是容器之后,你才可以找到正确的命令。二、命令的共性你需要知道一些关于Docker命令的规律:DockerCLI管理命令以docker开头,然后是空格,接着是管理类别,然后是空格...

2019-09-03 11:10:00

2018年人工智能之自动驾驶研究报告

摘要当今,自动驾驶技术已经成为整个汽车产业的最新发展方向。应用自动驾驶技术可以全面提升汽车驾驶的安全性、舒适性,满足更高层次的市场需求等。自动驾驶技术得益于人工智能技术的应用及推广,在环境感知、精准定位、决策与规划、控制与执行、高精地图与车联网V2X等方面实现了全面提升。科研院校、汽车制造厂商、科技公司、自动驾驶汽车创业公司以及汽车零部件供应商在自动驾驶技术领域进行不断地探索,寻求...

2019-09-02 17:23:18

Docker学习总结(46)——生产环境中遇到的Docker常见异常错误总结

一、dockerps无响应,Node节点表现为NotReady。运行信息$docker-v$Dockerversion17.03.2-ce,buildf5ec1e2$docker-containerd-v$containerdversion0.2.3commit:4ab9917febca54791c5f071a9d1f404867857fcc$...

2019-09-02 11:57:57

算法学习总结(3)——二叉树数据结构重点知识总结

一、关键术语1.节点的度:一个节点含有的子树的个数称为该节点的度;2.叶节点或终端节点:度为零的节点;3.非终端节点或分支节点:度不为零的节点;4.父亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;5.兄弟节点:具有相同父节点的节点互称为兄弟节点;6.节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;7....

2019-08-29 15:05:41

算法学习总结(2)——温故十大经典排序算法

一、什么是排序算法1.1、排序定义对一序列对象根据某个关键字进行排序。1.2、排序术语稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度:一个算法执行所耗费的时间。空间...

2019-08-29 14:57:51

林毅夫1.7万字长文:我的13个经济学新见解

由北京大学新结构经济学研究院主办的“2019年新结构经济学优秀学子夏令营”于7月5日-8日于北京大学朗润园举行。林毅夫教授做了题为《新结构经济学:新古典经济学的结构革命》的开幕演讲。以下演讲实录:第一节为何要反思发展经济学?国际上,许多学者已经在发展经济学上做出不少贡献,并因发展经济学获得了诺贝尔经济学奖,或在学界取得了巨大的声望和影响力。在这种状况下,我们为什么还要提出一个新的发...

2019-08-29 13:31:22

ELK学习总结(1)——我们为什么要用ELK

一.ELK是什么?ELK是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch、Logstash和Kibana。ElasticSearch简称ES,它是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎ApacheLucene基础上的搜索引擎,使用Java...

2019-08-21 14:50:40

2019年中国自动驾驶行业报告:互联网企业与整车厂商互有优势

1-1自动驾驶定义及分级自动驾驶在人工智能和汽车产业的飞速发展下已成为业内外关注的焦点,依据美国汽车工程师协会(SAE)2014年制订的自动驾驶分级标准(按照自动驾驶对于汽车操纵的接管程度和驾驶区域),自动驾驶可分为L0-L5共六级。1-2自动驾驶发展阶段1-3自动驾驶优势1-4自动驾驶应用场景我国的无人驾驶是从1992年国防科技大学成功研...

2019-08-20 11:39:35

消息中间件学习总结(18)——MQ常见面试题总结

一、为什么使用MQ?好的架构不是设计出来的,是演进出来的,使用MQ必定有其道理,是用来解决实际问题的。其实使用MQ的场景挺多的,但是比较核心的有3个:异步、解耦、削峰填谷。1、异步我们通过实际案例说明:假设A系统接收一个请求,需要在自己本地写库执行SQL,然后需要调用BCD三个系统的接口。假设自己本地写库要3ms,调用BCD三个系统分别要300ms、45...

2019-08-07 10:00:16

Kubernetes学习总结(3)——一年时间打造全球最大规模之一的Kubernetes集群,蚂蚁金服怎么做到的?

一、背景去年6月份,蚂蚁金服的Kubernetes开发团队刚刚下载Kubernetes代码,从零开始尝试在内部落地Kubernetes集群,并推动云原生实践。2019年天猫618大促,蚂蚁金服首次在调度系统和技术栈全量应用Kubernetes,平稳度过大促并突破Kubernetes单集群万节点规模,机房和集群数量达到数十个,总节点达到数十万个,这是世界最大规模的Ku...

2019-08-06 11:38:27

消息中间件学习总结(17)——MQ与RPC的区别和关联

一、RPCRPC(RemoteProcedureCall)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制。常用的RPC框架有Facebook的Thrift、Alibaba的dubbo等。RPC的调用流程:1、建立通信首先要解决通讯的问题:即A机器想要调用B机器,首先得建立起通信连接,主要是通过在客户端和服务器之间建立TCP连接。2、服务寻址要解...

2019-08-06 09:31:06

支付业务与技术架构学习总结(6)——对账系统的设计

背景目前app线上涉及若干和支付有关的业务,并且存在如下情况:1、一个业务支持多种支付方式2、一种支付方式同一个商户号,�支撑多个业务3、一种支付方式存在多个商户号,不同的业务有些使用不同的商户号,有些业务使用同一个商户号。4、在某些业务中支持退款,且未设置退款时限。5、某些业务的数据是分散存储的,如某系统仅含支付信息,某系统仅含产品销售信息。因此,对账工作显得格外复杂,为了理清思...

2019-08-02 14:39:42

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。