架构
haoxin963
身为一名资深Java程序员,我已经把人工智能融入我的代码中,梦想用Java创造出能和我一起喝咖啡的智能机器人!
展开
-
zookeeper(四)-zookeeper安装
前面几篇博客讲了zookeeper的原理和应用场景,下面给大家介绍怎么安装部署:zookeeper(一)-zookeeper介绍及原理zookeeper(二)-Paxos算法zookeeper(三)-zookeeper应用场景 环境部署zk服务器集群规模不得小于3个节点 要求各服务器之间系统时间要保持一致现在我们准备三台机器,都是centos7.2IP my...原创 2018-08-10 15:48:54 · 258 阅读 · 0 评论 -
Docker(三)-使用Maven插件构建Docker镜像
一、工具工欲善其事,必先利其器。笔者经过调研,有以下几款Docker的Maven插件进入笔者视野:插件名称 官方地址 docker-maven-plugin https://github.com/spotify/docker-maven-plugin docker-maven-plugin https://github.com/fabric8io/docker-m...原创 2018-09-20 14:57:10 · 305 阅读 · 0 评论 -
Docker(二)-Dockerfile介绍及使用
目录 一、简介二、Dockerfile 文件格式三、构建镜像四、Dockerfile 指令详解1 FROM 指定基础镜像2 RUN 执行命令3 COPY 复制文件4 ADD 更高级的复制文件5 ENV 设置环境变量6 EXPOSE7 VOLUME 定义匿名卷8 WORKDIR 指定工作目录9 USER 指定当前用户10 CMD11 E...原创 2018-09-20 10:42:19 · 656 阅读 · 0 评论 -
redis(一)-redis简介
一、简介Redis是一个速度极快的非关系数据库,也就是我们所说的NoSQL数据库(non-relational database),它可以存储键(key)与5种不同类型的值(value)之间的映射(mapping),可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展性能,并且它还提供了多种语言的API。二、为什么要使用redis我们想一下...原创 2018-10-18 10:24:31 · 523 阅读 · 0 评论 -
持续集成架构图
原创 2018-09-30 17:21:59 · 2392 阅读 · 0 评论 -
sky平台技术架构图
sky平台开源地址:https://gitee.com/haoxin963/sky更多微服务的文章请关注我的微信公众号:原创 2018-09-30 17:25:57 · 3623 阅读 · 0 评论 -
分布式锁介绍及实现
一、什么是分布式锁?要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如synchronized是共享对象头,显示锁Lock是共享某个变量(state)。分布式锁:当多个进程不在同一个系...原创 2018-10-16 22:40:41 · 1144 阅读 · 0 评论 -
分布式唯一ID
一、使用场景在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据库的分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。二、ID生成需求1.全局唯一性:不能出现重...原创 2018-10-16 22:56:29 · 428 阅读 · 0 评论 -
redis(五)-缓存三大问题及解决方案
缓存的设计包含很多技巧,设计不当将会导致严重的后果。本文将介绍缓存使用中常见的三大问题,并给出相应的解决方案。缓存穿透 缓存雪崩 缓存击穿1. 缓存穿透在大多数互联网应用中,缓存的使用方式如下图所示:当业务系统发起某一个查询请求时,首先判断缓存中是否有该数据; 如果缓存中存在,则直接返回数据; 如果缓存中不存在,则再查询数据库,然后返回数据。了解了上述过程后,下面说说缓...原创 2018-10-21 21:12:54 · 28927 阅读 · 8 评论 -
redis(三)-redis高可用方案
redis包含三种高可用方案主从复制 哨兵 集群一、主从复制通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。 。但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样即使有...原创 2018-10-21 00:13:46 · 362 阅读 · 0 评论 -
zookeeper(二)-Paxos算法
分布式系统中的节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。基于消息传递通信模型的分布式系统,不可避免的会发生以下错误:进程可能会慢、被杀死或者重启,消息可能会延迟、丢失、重复,在基础 Paxos 场景中,先不考虑可能出现消息篡改即拜占庭错误的情况。Paxos 算法解决的问题是在一个可能发生上述异常的分布式系统中如何就某个值达成一致,保...原创 2018-10-20 13:20:49 · 185 阅读 · 0 评论 -
zookeeper(三)-zookeeper应用场景
1.分布式配置 要点:配置信息保存在db与zk中(保险起见,数据安全性更高),弄一个后台管理界面,对配置修改后,先保存到db,然后同步写入zk的节点中。应用启动时,先连到zk上读取节点中的配置,同时监听节点的数据变化,当配置变化时,得到实时通知。2.消除单点故障(Single Point of Failure,SPOF)└── ./OrderNoServic...原创 2018-10-20 13:46:42 · 185 阅读 · 0 评论 -
zookeeper(一)-zookeeper介绍及原理
一、ZooKeeper是什么ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。官网:zookeeper.apache.org/源码:github.com/apache/zook…二、...原创 2018-10-20 13:27:32 · 280 阅读 · 0 评论 -
kafka(一)-为什么使用kafka
我们知道kafka是消息队列的一种,我们要先知道为什么我们需要消息队列,什么场景下我们选择kafka。1.为什么要用消息队列解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 冗余 有些情况下,处理数据的过程会...原创 2018-10-21 21:26:39 · 2299 阅读 · 0 评论 -
RabbitMQ(一)-RabbitMQ原理及简介
一、什么是RabbitMQRabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。AMQP,即Advanced Message Queuing Prot...原创 2018-10-24 22:50:42 · 976 阅读 · 0 评论 -
Docker(四)-Docker Compose介绍及使用
一、Compose 简介Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。Compose 定位是 「定义和运行多个 Docker 容器的应用(Defining and running multicontainer Docker applications)」,其前身是开源项目 Fig。使用一个 Dockerfile 模板文件,可以让用户很方便...原创 2018-09-20 15:28:41 · 489 阅读 · 0 评论 -
RabbitMQ(二)-centos安装RabbitMQ
上篇博客讲了RabbitMQ,本文主要介绍安装:RabbitMQ(一)-RabbitMQ原理及简介1.安装Erlangyum install -y erlang2.安装RabbitMQ#先下载wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.no...原创 2018-09-10 11:00:05 · 165 阅读 · 0 评论 -
elk日志分析系统(二)
上篇博客介绍关于elk的原理和搭建:elk日志分析系统(一)但这种架构只适合数据量不大且可靠性不强的业务使用,当大并发情况下,由于日志传输峰值比较大,没有消息队列来做缓冲,就会导致 Elasticsearch 集群丢失数,所以需要对架构做进一步的扩展,引入kafka集群。架构图filebeat收集日志数据投递到 Kafka 集群中,这样当遇到 Logstash 接收数据的能力超过 ...原创 2018-08-15 10:09:33 · 193 阅读 · 0 评论 -
kafka(三)-kafka安装
前面几篇介绍了kafka的原理,本文主要讲解kafka的安装:kafka(一)-为什么使用kafkakafka(二)-kafka原理及介绍现在我们准备三台机器,都是centos7.2IP broker.id 192.168.10.1 1 192.168.10.2 2 192.168.10.3 3 1.下载安装压缩包:下载地址:http:/...原创 2018-08-13 10:42:00 · 689 阅读 · 0 评论 -
elk日志分析系统(一)
简介:ELK是三个开源软件的缩写,分别为:Elasticsearch 、 Logstash以及Kibana , 它们都是开源软件。不过现在还新增了一个Beats,它是一个轻量级的日志收集处理工具(Agent),Beats占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具,目前由于原本的ELK Stack成员中加入了 Beats 工具所以已改名为Elastic S...原创 2018-08-08 16:31:03 · 2946 阅读 · 0 评论 -
zabbix介绍和安装
1.介绍 基于Web界面的分布式系统监控的企业级开源软件。可以监控各种系统与设备,网络参数,保证服务器设备安全运营;提供灵活的通知机制。zabbix的逻辑图zabbix官网: https://www.zabbix.comzabbix 主要由2部分构成 zabbix server和 zabbix agentzabbix proxy是用来管理其他的agent,作为代理zab...原创 2018-08-16 17:15:24 · 244 阅读 · 0 评论 -
持续交付
随着微服务架构与容器虚拟化技术的发展,持续集成与持续交付的概念又重新回到了大家的视野,越来越多的公司开始使用持续集成的系统来解决频繁发布带来的质量问题;使用持续交付的工具来实现代码在不同环境上的自动部署。持续交付的概念和产生传统软件的开发与交付的周期都很漫长,一款普通的企业软件通常需要十几个开发人员,几个月的时间来完成,从需求的分析、系统的设计、编写测试用例、系统开发、单元测试、组装测试到...原创 2018-08-17 16:50:03 · 1715 阅读 · 0 评论 -
centos安装tomcat
1.进入安装目录cd /usr/local2.检查jdk版本java -version安装jdk参考:centOS安装jdk3.安装tomcatwget http://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.tar.gz //下载tar -zx...原创 2018-08-27 14:49:25 · 139 阅读 · 0 评论 -
centos安装mysql
1.下载MySQLwget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm2.安装MySQLyum -y install mysql57-community-release-el7-10.noarch.rpmyum -y install mysql-community-serv...原创 2018-08-27 15:54:05 · 188 阅读 · 0 评论 -
jenkins(二)
上一篇博客:jenkins(一) 讲了jenkins的简介和搭建,下面跟大家分享怎么完整的发布一个tomcat的web项目。一、系统配置web项目发布一般会依赖:JDK,maven,git1.安装配置JDKjdk的安装参考:centOS安装jdk配置: 2.安装配置mavenmaven的安装参考:centos安装Maven配置:3. 安装和配置git...原创 2018-08-27 16:39:34 · 155 阅读 · 0 评论 -
jenkins(一)
上篇博客介绍了持续交付,Jenkins是持续交付过程中的最重要的产品,让我们开始一起学习jenkins吧。Jenkins介绍Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/。Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建...原创 2018-08-20 15:20:22 · 196 阅读 · 0 评论 -
centos安装Maven
1.进入安装目录cd /usr/local2.检查jdk版本Maven 3.3+ require JDK 1.7 java -version安装jdk参考:centOS安装jdk3.安装mavenwget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5...原创 2018-08-20 16:14:43 · 1592 阅读 · 0 评论 -
centos安装git
1.安装编辑器yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker wget autoconf -y2.下载最新版git,解压cd /usr/localwget https://github.com/git/git/arc...原创 2018-08-20 16:52:58 · 138 阅读 · 0 评论 -
Docker(一)-介绍及安装
目录1.Docker时代之前的难题2.什么是docker3.为什么用docker4.Docker vs VM5.Docker相关的核心技术6.Docker架构和基本概念7.Docker网络8.Dokcer 常用命令工作原理9. Docker安装部署10.Docker常用命令1.Docker时代之前的难题一、环境配置的难题软件开发最大的麻烦事之一,...原创 2018-08-21 17:06:06 · 1073 阅读 · 0 评论 -
redis(二)-centos安装redis
1.由于Centos官方yum源里面没有Redis,这里我们需要安装一个第三方的yum源,这里用了Fedora的epel仓库yum install epel-release安装过程中会有让你确认的,输入y按回车就可以了2.安装redisyum install redis3.启动redissystemctl start redis #启动systemctl stop ...原创 2018-09-10 10:35:35 · 177 阅读 · 0 评论 -
git分支管理策略
git是一款优秀的版本管理工具,但是我们面对版本管理的时候,依然有非常大得挑战。大部分开发人员现在使用Git就只是用三个甚至两个分支,一个是Master, 一个是Develop, 还有一个是基于Develop打得各种分支。这个在小项目规模的时候还勉强可以支撑,因为很多人做项目就只有一个Release, 但是人员一多,而且项目周期一长就会出现各种问题。git 和 svn 的一个显著区别就是提供更丰富的分支特性,我们今天就要说一下如何使用 git 管理这些分支。原创 2019-07-29 22:30:20 · 244 阅读 · 0 评论