- 博客(44)
- 问答 (2)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 阿里云构建千万级别架构演变之路
前言 一个好的架构是靠演变而来,而不是单纯的靠设计。刚开始做架构设计,我们不可能全方位的考虑到架构的高性能、高扩展性、高安全等各方面的因素。随着业务需求越来越多、业务访问压力越来越大,架构不断的演变及进化,因而造就了一个成熟稳定的大型架构。如淘宝网、Facebook等大型网站的架构,无不从一个小型规模架构,不断进化及演变成为一个大型网站架构。
2017-04-21 09:52:53
4206
1
原创 I/O数据模型、NIO与BIO、Reactor
I/O数据模型、ReactorUNIX支持的I/O数据模型经典的三种I/O模型Netty对三种I/O模型的支持为什么Netty目前只支持NIO?为什么Netty有多种NIO的实现?NIO一定优于BIO?什么是Reactor及三种版本如何在Netty中使用Reactor模式UNIX支持的I/O数据模型前置知识点:阻塞与非阻塞:数据就绪前要不要一直等待?(菜没好,要不要一直等着)阻塞没有数据传过来时,读会阻塞直到有数据;缓冲区满的时候,写操作也会阻塞。非阻塞遇到这些情况,都是直
2020-11-26 16:12:15
253
1
原创 分层架构
最近在项目设计时采用了领域驱动设计,在观摩《领域驱动设计》这本书时提到了layered architecture这个单词,也就是分层体系架构,觉得自己有必要对此分层架构进行一次系统的复习,记录下来以备后用什么是分层架构?按照字面意思理解,即将程序分成多层的一种架构模式。那需要分成几层合适呢?Eric Evans建议分为四层,分别对应表现层,应用层,领域层以及基础设施层。而最基本的是分层架构是三...
2019-05-20 12:57:25
533
原创 SpringCloud系列一之微服务
SpringCloud系列一之微服务微服务架构微服务的优劣为什么是SpringCloud?微服务架构微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务和服务之间采用轻量级的通信机制相互沟通(通常是基于HTTP的Restful API).每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产...
2019-04-11 21:22:50
256
原创 Spring SpringMVC SpringBoot 常用注解说明
Spring SpringMVC SpringBoot 常用注解说明Spring注解与xml配置的区别不使用注解的案例@Autowired@Qualifier@Resource@Service使用注解来构造IoC容器@Component@Controller@Service@ RepositorySpring常用注解汇总Spring MVC@Controller@RequestMapping使用 ...
2019-03-31 19:42:08
4721
3
原创 PostgreSQL流复制搭建
PostgreSQL流复制搭建环境信息主库需配置的参数备库配置使用pg_basebackup搭建基础备份编辑recovery.conf文件验证启动数据库监控流复制判断主机类型环境信息主库为已初始化好数据库PG实例,备库为已安装好软件但未初始化的数据库ipstatusname192.168.100.10主库db192.168.100.12备库stb主库...
2018-12-13 11:53:07
889
原创 Postgresql 连续归档和时间点恢复(PITR)
连续归档和时间点恢复(PITR)连续归档设置什么情况下会触发归档?PIRT恢复连续归档设置所谓WAL日志归档,其实就是把在线的WAL日志备份出来。要启用WAL归档,需设置wal_level配置参数为replica或更高,设置archive_mode为on,并且使用archive_command配置参数指定一个shell命令。在pg中配置归档的方法就是配置参数archive_command,...
2018-12-11 18:48:45
6874
原创 Postgresql wal日志
wal日志wal日志是什么WAL机制实现LSN标记pg的wal配置检查点wal日志是什么WAL即Write-Ahead Logging,预写式日志(WAL)是保证数据完整性的一种标准方法。WAL的中心概念是数据文件(存储着表和索引)的修改必须在这些动作被日志记录之后才被写入,即在描述这些改变的日志记录被刷到持久存储以后。如果我们遵循这种过程,我们不需要在每个事务提交时刷写数据页面到磁盘,因为...
2018-12-11 15:18:31
6494
1
原创 PostgreSQL时间线
PostgreSQL时间线时间线的引入wal日志名解析新时间线的出现场景history文件时间线的引入如果没有时间线,会有什么问题?先举个将数据库恢复到以前时间点的例子。假设在一个数据库的运行过程中,DBA在周三12:00AM删掉了一个关键的表,但是直到周五中午才发现这个问题。这个时候DBA拿出最初的数据库备份,加上存在归档目录的日志文件,将数据库恢复到周三11:00AM的时间点,这样就能...
2018-12-11 11:16:54
1304
原创 数据结构之树(三)
原文:https://blog.csdn.net/UncleMing5371/article/details/54176252线索二叉树二叉树可以使用两种存储结构:顺序存储和二叉链表。在使用二叉链表的存储结构的过程中,会存在大量的空指针域,为了充分利用这些空指针域,引申出了“线索二叉树”。 通过观察上面的二叉链表,存在着若干个没有指向的空指针域。对于一个有n个节点的二叉链表,每个节...
2018-11-19 20:42:33
206
原创 数据结构之树(二)
二叉树定义二叉树(Binary Tree)是n(n≥0)个结点的有限集合,该集合可以为空集称为空二叉树,或者一个根结点和两个互不相交的,分别称为根结点的左子树和右子树的二叉树组成。如开/关,0/1,真/假,上/下,对/错等,对于这种在某个阶段都是两种可能性的情况,我们可以用树形结构来建模,而这种树就是特殊的树形结构称为二叉树。二叉树的特点:每个结点最多两棵子树,没有或一棵也行。 ...
2018-11-19 20:29:26
298
原创 数据结构之树(一)
定义树(Tree)是n(n≥0)个结点的有限集合,n=0时称为空树。在任意一个非空树中:①有且只有一个特定的称为根(root)的结点;②当n>1时,其余结点可以分为m(m>0)个互不相交的有限集T₁,T₂,T₃....Tп,其中每个集合本身又是一棵树,并且称为根的子树(subTree)树的定义用到了递归,也就是在树的的定义中还用到了树的概念,如上图中T₁,T₂的树就是结...
2018-11-18 10:49:25
546
转载 postgresql中postgresql.conf配置说明
一、连接配置与安全认证1、连接Connection Settings listen_addresses (string)这个参数只有在启动数据库时,才能被设置。它指定数据库用来监听客户端连接的TCP/IP地址。默认是值是* ,表示数据库在启动以后将在运行数据的机器上的所有的IP地址上监听用户请求(如果机器只有一个网卡,只有一个IP地址,有多个网卡的机器有多个 IP地址)。可以写成机...
2018-11-09 17:19:50
2251
原创 postgresql目录及进程说明
postgresql采用常见C\S架构,服务端的主程序和进程叫做postgres,每当有新的客户端连接,服务器端都会新增一个postgres进程与之交互。主进程用来管理所有的数据文件,接收客户端请求,执行客户端操作。客户端可以是JDBC/ODBC,psql命令行客户端等等。postgresql常见进程:wal sender process/ wal receiver process:w...
2018-11-09 17:05:28
783
原创 数据结构之队列
队列队列是只允许在一端进行插入,在另一端进行删除的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO,允许插入的一端叫队尾,允许删除的一端叫队头。线性表有顺序存储和链式存储,栈是线性表,所以有这两种存储方式,同样,队列作为特殊的线性表,也有两种存储方式。队列的顺序存储结构:假设我们有一个n个元素队列,则顺序存储的队列需要一个大于n的数组,并且把...
2018-11-08 22:03:43
620
原创 数据结构之栈
栈栈的定义栈(stack)是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),没有任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。栈元素具有线性关系,及前驱和后继的关系。关于定义中仅在表尾插入和删除的操作,这里的表尾指的是栈顶。栈元素的特殊之处在于限制了插入和...
2018-11-06 21:48:06
372
原创 数据结构之线性表(二)
数据结构之线性表一主要讲的是线性表的顺序存储结构和链式存储结构的实现和代码。这次我们来讨论下静态链表,循环链表和双向链表。静态链表我们让数组每个元素都是由两个数据域组成:data和cur。数据域data用来存储数据元素,cur相当于我们链表中的next指针,存放该数据元素的后继在数组中的下标。我们把这种数组描述的链表叫做静态链表。基本结构/*线性表的静态链表存储结构*/#def...
2018-11-05 21:40:59
151
原创 数据结构之线性表(一)
本文主要是线性表的顺序存储结构和链式存储结构的实现和代码。线性表的定义线性表:零个或多个数据元素的有限序列序列说明元素之间是有顺序的,若元素存在多个,则第一元素无前驱,最后一个元素无后继,其他元素都有且只有一个前驱和后继。有限说明元素的个数是有限的,所有在计算机中处理的数据对象都是有限的。另外在线性表的定义中,只有相同的数据类型。比如大学占位置,有一个同学拿着水杯占了三个位置,这其实并...
2018-10-30 20:44:17
393
原创 算法基本概念
数据结构与算法的关系是相互依赖且不可分割的。算法的定义:是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个动作。在算法的定义中提到了指令,指令是能被人或机器等计算装置执行,它可以是计算机指令,也可以是我们平时的语言文字。为了解决某个问题,需要将指令表示成一定的操作序列,操作系列包括一组操作,每一个操作完成特定的功能,这就是算法。简单来说就是描述解决问题的方...
2018-09-18 16:12:19
650
原创 数据结构基本概念及结构
数据结构基本概念数据:描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据可以为整型等数值类型,也可以是字符及声音,图片,视频等非数值类型。也就是说,我们这里讨论的数据,就是符号,这些符号具有两个前提:可以输入到计算机中 能被计算机程序处理数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。例如在人类中,...
2018-09-17 11:16:35
329
原创 pacemaker资源代理
Resource Agent集群资源代理在 Pacemaker集群中,每一个原始资源都有一个资源代理(Resource Agent, RA), RA是一个与资源相关的外部脚本程序,该程序抽象了资源本身所提供的服务并向集群呈现一致的视图以供集群对该资源进行操作控制。通过 RA,几乎任何应用程序都可以成为 Pacemaker集群的资源从而被集群资源管理器和控制。RA的存在,使得集群资源管理器可以对...
2018-09-11 17:35:16
695
原创 pacemaker浅析
因为数据库部署在Linux上,需要做数据库集群实现高可用,而所有的PostgresqlHA方案中,流复制HA的可用性,部署成本,性能都是比较好的,而管理流复制集群的工具,pacemaker+corosync则是比较成熟可靠的,借此机会学习下Pacemaker。Pacemaker官网 http://clusterlabs.org/简要介绍Pacemaker是 Linux环境中使用...
2018-09-11 17:02:17
13556
原创 linux上ora2pg安装步骤
安装perlperl一般自带,需要5.8以上版本 perl -v。如未安装,可以事先下载好安装包。安装步骤:1、解压安装包,进入解压目录2、运行 sh Configure –de (使用默认配置安装)3、make4、make test5、make install安装oracle客户端准备以下安装包:instantclient-basic-linux.x64-11.2.0.4.0.zip,insta...
2018-06-08 10:11:22
1793
1
原创 oracle导出数据到postgresql之ora2pg数据迁移工具分析
ora2pg主要功能: Ora2Pg可用于任何反向工程Oracle数据库,到巨大的企业数据库迁移或简单地复制一些Oracle,数据导入PostgreSQL数据库。它非常易于使用,而且不需要任何Oracle数据库知识,需要知道其连接到Oracle数据库所需的参数。 Ora2pg总体描述: 1.安装ora2pg,安装其所需要的依赖包,以及Perl模块等。 2.配置...
2018-06-08 10:03:42
4209
原创 Linux服务器PostgreSQL远程连接设置
PostgreSQL安装完成后是不能从本机之外的机器连接的按以下步骤修改配置1,安装目录/data/pg_hba.confhost all all 192.168.1.1/32 md5 --/32代表只允许192.168.1.1访问host all all 192.168.1.0/24 md5 ...
2018-06-08 09:49:31
6270
原创 Postgresql 进程分析
Linux上执行 ps -ef | grep postgres 查看postgresql进程wal sender process/ wal receiver process wal sender 进程和wal receiver进程是实现postgresql复制(streaming replication)的进程。 Wal sender进程通过网络传送WAL日志,而其他PostgreSQL实例的w...
2018-06-08 09:45:03
1749
转载 MySQL性能调优技巧
针对购物旺季网站流量会对数据库造成的压力,作者给出了MySQL性能调优的一些技巧,这些技巧极具参考价值,通过这些调优,可以有效避免因为流量过大造成服务器宕机,从而给企业造成经济损失。
2017-12-06 08:45:39
242
原创 EJB的是个什么东西???
接着上一篇文章进行描述,上一篇我们分析了C/S和B/S,那么我们这次再来看下EJB到底是什么?首先,有一篇博客给了我很大的启发,https://www.cnblogs.com/strugglion/p/6027318.html接下来谈一下自己的感想,首先先看下百度给的解释其实啊,看了之后已经可以明白EJB到底是啥了,照着百度说的,所谓EJB就是把已经编写好的程序打包放在服务
2017-12-04 14:25:53
480
原创 B/S和C/S的区别及应用
今天本来是在研究weblogic,如果考虑EJB的话,weblogic是比较好的选择。那么就得看下这个EJB是什么东西啊,至于什么是EJB我就在另一篇博客中阐述,在较多人并发访问的C/S 结构的应用程序,尽量不要使用EJB,这就引申到我们今天的话题了(B/S和C/S)B/S和C/S都是软件架构的方式,首先分别描述下B/S和C/S: b/s(Browser/Server):浏览器/服务
2017-12-04 11:14:03
14007
3
原创 List Map Set
上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。List,Set,Map是否继承自Collection接口? 答:List,Set是,Map不是。 C
2017-10-18 10:17:12
270
原创 java基本数据类型转换
数据类型的转换,分为自动转换和强制转换。自动转换是程序在执行过程中“ 悄然 ” 进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中声明,转换顺序不受限制。自动数据类型转换 自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下: 低------------------------------------------
2017-10-17 10:25:57
230
转载 final关键字
由于语境(应用环境)不同,final关键字的含义可能会稍微产生一些差异。但它最一般的意思就是声明“这个东西不能改变”。之所以要禁止改变,可能是考虑到两方面的因素:设计或效率。final关键字的三种应用场合:数据(变量)、方法以及类数据(成员变量和局部变量):对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后
2017-10-16 14:34:25
249
原创 java重写(override)和重载(Overriding)--->多态的体现
问:什么是重写(override)答:子类继承父类,子类有一个与父类相同参数签名的方法,并且需要重新定义此方法,此为重写。问:为什么要重写答:子类可继承父类中的方法,而不需要重新编写相同的方法,但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖,是父类与子类多态性的一种表现。若子类中的方法与父类中的某一方法具有相同的方法名
2017-10-13 16:15:25
427
原创 &,&&,|,||详解
在&,&&,|,||这四个运算符中,我们将短路运算符就是我们常用的“&&”、“||”,一般称为“条件操作”。非短路运算符包括 “& 与”、“| 或” 一般称为“逻辑操作”。首先我们先来分析条件操作的短路运算符&&,先看个小Demo:“&&”运算符检查第一个表达式是否返回“false”,如果是“false”则结果必为“false”,不再检查其他内容。class Test2 {
2017-09-29 09:14:12
348
转载 有return的情况下try catch finally的执行顺序
结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally
2017-09-28 14:13:49
218
原创 抽象类和接口的区别
关于抽象类和接口的区别.首先我们要知道什么是抽象类?什么是接口?抽象类:包含抽象方法的类.如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。那么我们现在就需要知道什么是抽象方法,抽象方法它只有声明,而没有具体的实现。抽象方法的声明格式为:abstract void aaa();抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承
2017-09-27 14:12:05
212
原创 java回收算法
两个最基本的java回收算法:复制算法和标记清理算法复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B。此为新生代最常用的算法标记清理:一块区域,标记要回收的对象,然后回收,一定会出现碎片,那么引出标记-整理算法:多了碎片整理,整理出更大的内存放更大的对象两个概念:新生代和年老代 新生代:初始对象,生命周期短的永久代:长时间存在的对象
2017-09-27 09:35:14
254
原创 java值传递
java语言参数之间只有值传递,包括按值调用和按引用调用。 一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。按值调用:包括八大基本数据类型都是按值调用。传值的时候,也就是说方法得到的是所有参数值的一个拷贝。按引用调用:数组、对象。传值时候,传递的是引用地址的拷贝,但是都是指向同一个对象。String是不可变类(final and Immuta
2017-09-27 09:00:47
407
转载 关于类中静态块,静态方法,构造代码块,构造方法的执行顺序
题目要求:输出运行结果:[java] view plain copypublic class Text { public static int k =0 ; public static Text t1 = new Text("t1") ; public static Text t2 = new Text("t
2017-09-25 10:22:07
755
空空如也
算法:17,6,25,49,27,65,42,48 按顺序加减得99
2018-11-02
数据库数据定时导出并删除数据库中数据?当需要查询时,需要将备份文件导入!!
2018-03-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人