- 博客(89)
- 资源 (1)
- 收藏
- 关注
原创 系统架构的几个要点
系统架构的几个要点:1、系统安全这是首要考虑的,以下图为例,网络划分为3个区:a) DMZ区可以直接公网访问,也可以 与App Core区互通,但不能直接与DB Core区互通 (通常这里放置 反向代理Web服务器)b) App Core区能与DMZ区、DB Core区互通,但是无法直接从公网访问(通常这里放置 应用服务器、中间件服务器之类)c) DB Core区仅与App Core区互通(通常这里放置 核心数据库)2、尽量消除单点故障上图中,除了“硬件负载均衡”节点外,其它..
2020-11-01 09:58:32
776
原创 什么是软件架构?;
什么是软件架构,概括起来就是下面几点: 根据要解决的问题,对目标系统的边界进行界定。比如:并发,稳定性,可用性 等边界值 目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。比如:按功能进行划分,运营按时间维度来进行。 并对这些切分出来的部分,设立沟通机制。 根据3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。 ...
2020-11-01 09:50:45
360
原创 k8s常用命令
一,kubectl 命令行的语法如下:$ kubectl [command] [TYPE] [NAME] [flags] 上面的命令是: kubectl命令行中,指定执行什么操作(command),指定什么类型资源对象(type),指定此类型的资源对象名称(name),指定可选参数(flags),后面的参数就是为了修饰那个唯一的对象 属于典型的英文语法,比如你是老师,你说,小明(kubectl)买(command)方便面(type)老坛酸菜方便面(name)桶装的(flag)。命令的根本原则是准..
2020-09-13 20:02:48
406
原创 Centos上面部署K8S集群
ip地址信息如下:192.168.181.128 master192.168.181.129 node1192.168.181.131 node2设置k8s的yum源地址cat > /etc/yum.repos.d/kube.repo << EOF[kubernetes]name=kubernetesenabled=1baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-.
2020-09-13 09:11:06
161
原创 Docker安装太慢,使用国内镜像服务快速安装
官网CentOS安装教程https://docs.docker.com/install/linux/docker-ce/centos/官网介绍了三种安装方式以下采用设置Docker存储库从存储库安装和更新Docker的方式安装卸载旧版本yum remove docker \ docker-client \ docker-client-latest \ docker-common \ .
2020-09-12 22:28:16
1315
原创 Docker 安装Redis
1.拉取镜像 #docker pull redis2.通过镜像创建容器并运行mkdir /etc/rediscd /etc/redisdocker run -p 6379:6379 --name redis \ -v /data/redis/redis.conf:/etc/redis/redis.conf \ -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf \ --requirepass
2020-06-20 09:21:48
241
原创 Docker 安装Mysql8.2
1.查找镜像:docker search mysql2.下载镜像(如上一步,可以指定想要的版本,不指定则为最新版):docker pull mysql3.通过镜像创建容器并运行:mkdir /usr/mysqlcd /usr/mysqldocker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MY
2020-06-20 08:52:36
565
原创 Docker 配置阿里云镜像服务
进入阿里云,找到容器镜像服务执行镜像加速器中的命令,添加docker加速器在centos上执行如下命令:sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://6f27oj10.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo syste...
2020-06-19 23:07:23
275
原创 CentOS 8.1级数安装Docker19.03(阿里Docker yum源)
参考:https://docs.docker.com/engine/install/centos/1.较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ .
2020-06-19 22:53:08
685
原创 ShardingSphere-JDBC实现分表,分库,读写分离(SpringBoot2.2+ShardingSphere4.1)
ShardingSphere-JDBC采用分散式架构,适用于用Java开发的高性能轻量级OLTP应用程序;ShardingSphere-Proxy提供静态输入和所有语言支持,适用于OLAP应用程序和分片数据库的管理和操作情况。 实现读写分离只需要在项目中集成主和从的数据源,ShardingSphere-JDBC自动根据DML和DQL 语句类型连接主或者从数据源。注意: ShardingSphere-Jdbc只是实现连接主或者从数据源,不会实现主从复制功能,需要自己配置数据库自带...
2020-06-12 10:33:41
1035
原创 Mycat分片规则之枚举和取模
Mycat 的原理:中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语句,首先对 SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。前置操作建库(userdb_1,userdb_2,userdb_3)##建表DROP TABLE IF EXISTS `user_info`;CREATE TABLE `user_info` ( `name` var
2020-06-11 23:26:31
323
转载 Mycat监控工具Mycat-web
Mycat-web下载地址:http://dl.mycat.io/mycat-web-1.0/Mycat-web-1.0-SNAPSHOT-20170102153329-linux.tar.gzzookeeper下载地址:http://dl.mycat.io/zookeeper-3.4.6.tar.gz1.下载安装zookeeper服务[root@k8s01 ~]# wgethttp://dl.mycat.io/zookeeper-3.4.6.tar.gz[root@k8s01 ~...
2020-06-11 22:52:42
503
原创 Mycat的10种分片规则
所有的分片规则配置的tableRule标签中:rule标签中的columns标签内填写要分片的表字段,algorithm标签内填写分片所使用的自定义函数名,要与function函数中的name属性保持一致function函数中的property标签内配置自定义参数。1)枚举法:sharding-by-intfile<tableRule name="sharding-by-intfile"> <rule> <columns>user...
2020-06-10 09:11:08
360
原创 利用注解实现数据源的动态调用
参考:https://blog.csdn.net/huangyk206/article/details/96603435原理:通过自定义注解DataSource,每次在类或者方法上面指定DataSource,以实现数据源的动态调用。
2020-06-09 23:47:09
221
原创 MyCat实现读写分离与动态数据源切换实现方式之一
接上一篇:https://blog.csdn.net/jiayoubing/article/details/106605141已经通过mycat对数据进行了读写分离,在代码中如何实现读写用不同的DataSource呢?原理是:通过切面的方式对方法进行判断,如果是增删改,设置数据源为updateDataSource,如果是查询操作,设置数据源为selectDataSource数据源。代码实现如下:application.ymlspring: datasource: ###可读
2020-06-09 23:18:03
389
原创 使用MyCat实现MySQL读写分离
配置MyCat读写分类前需要先配置MySQL的主从复制,参考我上一篇的文章,已经做了比较详细地讲解了。什么是MyCat MyCAT是一款由阿里Cobar演变而来的用于支持数据库,读写分离、分表分库的分布式中间件。MyCAT支持Oracle、MSSQL、MYSQL、PG、DB2关系型数据库,同时也支持MongoDB等非关系型数据库。 MyCAT原理MyCAT主要是通过对SQL的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将返回...
2020-06-07 19:46:27
278
原创 MySQL主从复制配置
主机:192.168.234.3 从机:192.168.234.41.主库搭建,配置修改如下:vi /etc/my.cnf 新增以下内容server_id=3 //服务器idlog-bin=mysql-bin //开启日志文件binlog-do-db=infosys //同步数据库binlog-ignore-db=mysql //不同步数据库2.重启mysql服务 service mysqld restart3.授...
2020-06-07 11:38:03
269
原创 Centos8.1安装mysql8.0.17
先检查系统是否装有mysql rpm -qa | grep mysql下载mysql的repo源(CentOS yum对应的是mysql 8.0.17版本) wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 安装mysql-community-release-el7-5.noarch.rpm包 sudo rpm -ivh mysql-community-...
2020-06-07 10:46:32
812
原创 高并发情况下分布式全局Id生成4种方案
1.利用全球唯一UUID生成订单号UUID是一个字符串而且没有顺序,所以不适合做主键,可以 做 token 使用。利用全球唯一UUID生成订单号 UUID基本概念: UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。UUID组成部分:当前日期和时间+时钟序列+随机数+全局唯一的IEEE机器识别号 全局唯一的IEEE机器识别号:如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。优点:简单,代码方便 生成ID性能非常好,基本不会有性能问题 全球唯一,在..
2020-06-07 06:21:45
604
原创 从零搭建Prometheus监控报警系统+Grafana展示(系统监控必备知识)
https://www.cnblogs.com/chenqionghe/p/10494868.html什么是Prometheus?Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。.
2020-06-06 09:57:14
442
原创 goLang学习之一
windows下搭建golang开发环境下载地址:http://www.golangtc.com/download环境变量配置,这里只需要配置GOROOT、GOBIN和GOPATH三个环境变量即可。 GOBIN :golang安装后根目录下的bin目录,即$GOROOT\bin\,windows平台下默认为c:\go\bin,安装过程中会由安装程序自动添加到PATH环境变量中。 GOROOT:golang安装后的根目录,windo...
2020-05-29 17:32:00
301
原创 Kafka Manager (最新 cmak-3.0.0.4 已编译打包)
链接:https://pan.baidu.com/s/1B6rGuHB_KURGoxJGXd3-GQ提取码:z9k8
2020-05-24 09:31:16
1781
3
原创 SpringBoot2.2.0整合kafka2.5集群
接上一篇,搭建好kafka集群先看效果,生产者发送10条数据,3个消费者轮训处理10条数据。直接上代码,复制粘贴即可执行!POM文件<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.0.RELEASE</v
2020-05-24 09:11:34
1336
原创 kafka集群搭建&SpringBoot整合kafka2.5
一、kafka简介Kafka最初由Linkedin公司开发,是一个分布式的、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常用于web/nginx日志、访问日志、消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。二、kafka的特性高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒;可扩展性:kafka集群支持热扩展;持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止丢.
2020-05-22 21:22:12
1452
原创 一篇文章搞懂java内存结构和jvm优化
java堆:堆是java虚拟机所管理的内存中最大的一块,在虚拟机启动时候,所有的对象以及数组都要在堆上分配。从内存回收的角度来说,java堆分为新生代和老生带(新生带就是新创建,但是使用频率不高的对象;老生带是指使用频率较高的对象,不会轻易被gc回收) java栈:用于存储局部变量表的地方 垃圾回收器:不定时去堆内存中清理不可达对象...
2020-05-19 23:12:16
187
原创 分布式+微服务业务全景图,你都会了吗?
静态页面保存在nginx上 视频,文件,图片,css文件存放在第三方七牛云 Gateway网关可以实现日志拦截,权限控制,跨域问题,限流、熔断、负载均衡、黑名单、白名单拦截、鉴权等服务 分布式锁利用协同工具zookeeper来实现 分布式事务控制采用阿里巴巴Seata进行管理 对于高并发的服务网元,采用Sentinel来实现服务降级、限流和异常处理。 RabbitMQ不建议用于事务处理。它可以用在对于实时反馈优先级较低的业务,对于系统解耦推荐优先使用 对于高并发的业务采用二级缓存(M...
2020-05-17 23:01:28
1400
原创 用docker搭建一款自己的私有网盘(nextcloud)
几年前还百家争锋的国内网盘市场,如今只剩下百度网盘一枝独秀了。虽然还有一些稳定的国外网盘,如 OneDrive、DropBox、Google Drive 等,但国内访问并不友好。私有云和 NAS 这种完全掌握在自己手中的云端存储方案就体现其优势了。本文就介绍下如何docker下快速使用 Nextcloud 搭建个人专属的私有云同步网盘。优势:私密,自己全权管理所有文件; 稳定,不存在服务商关闭网盘服务的问题; 高速,直链下载,不限速; 功能丰富,可安装插件实现各种云端功能。不足:.
2020-05-14 09:17:22
6228
1
原创 RabbitMQ实现分布式事务详解
RabbitMQ实现分布式事务方案:1.生产者一定要把消息发送到MQ服务器中生产者采用Confirm确认应答机制 如果发送到MQ服务器失败,采用重试机制2.消费者能够正常消费MQ的消息采用手动ack模式和重试机制,需要采用死信补偿机制,同时采用redis方式重复消费问题3.采用补单机制在创建一个补单消费者进行监听,如果订单创建后,最后又发送异常事务回滚,就需要将订单进行补偿 采用交换机路由健模式,补单和排单都采用相同的路由健...
2020-05-13 20:28:00
3277
1
原创 Docker 安装kafka
我操作的linux 地址:192.168.234.103 1、kafka需要zookeeper管理,所以需要先安装zookeeper。下载zookeeper镜像$ docker pull wurstmeister/zookeeper2、启动镜像生成容器$ docker run -d --restart=always --log-driver json-file --log-opt ...
2020-05-07 22:25:44
273
原创 SpringBoot整合RabbitMQ案例
这里还是采用用户注册后发送邮件和短信为例来说明:生产者代码package com.infosys.china.producer;import org.springframework.amqp.core.Binding;import org.springframework.amqp.core.BindingBuilder;import org.springframe...
2020-05-07 10:13:18
362
原创 RabbitMQ消息确认机制
产生的背景:我们知道可以通过持久化(交换机、队列和消息持久化)来保障我们在服务器崩溃时,重启服务器消息数据不会丢失。但是我们无法确认当生产者在将消息发送出去之后,消息到底有没有正确到达Broker代理服务器呢今天我们讲解的RabbitMQ消息确认机制,主要包括两个方面,因为RabbitMQ为我们提供了两种方式:通过AMQP事务机制实现,这也是AMQP协议层面提供的解决方案; 通过将cha...
2020-05-06 23:57:23
131
原创 RabbitMQ总结
消息队列对于业务服务模块解耦,异步通信,高并发限流,超时延迟处理等均有广泛的应用!RabbitMQ 管理平台地址 http://127.0.0.1:15672默认账号:guest/guest 用户可以自己创建新的账号Virtual Hosts:像mysql有数据库的概念并且可以指定用户对库和表等操作的权限。那RabbitMQ呢?RabbitMQ也有类似的权限管理。在Rabb...
2020-05-05 19:33:26
193
原创 一篇文章搞定Mybatis Generator(使用说明和原理讲解)
建立数据模型pdm,表结构前缀说明cms_*:内容管理模块相关表 oms_*:订单管理模块相关表 pms_*:商品模块相关表 sms_*:营销模块相关表 ums_*:会员模块相关表新建pom工程如下:1.pom文件内容如下:<dependencies> <!-- https://mvnrepository.com/artifact/org...
2020-05-05 11:43:13
2933
原创 Hadoop3.2.1 之开发环境搭建和HDFS读写API(系列文章之六)
1.在电脑上配置hadoop_home环境变量2.pom文件添加一下内容<dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <vers...
2020-04-24 11:30:41
487
原创 Hadoop3.2.1 之编译源码(系列文章之五)
1 前期准备工作1. CentOS联网配置CentOS能连接外网。Linux虚拟机ping www.baidu.com 是畅通的注意:采用root角色编译,减少文件夹权限出现问题2. jar包准备(hadoop源码、JDK8、maven、ant 、protobuf)(1)hadoop-3.2.1-src.tar.gz(2)jdk-8u144-linux-x64....
2020-04-24 10:15:45
748
原创 Hadoop3.2.1 之HDFS常用shell命令(系列文章之四)
HDFS的Shell操作1.基本语法bin/hadoop fs 具体命令 OR bin/hdfs dfs 具体命令dfs是fs的实现类。2.命令大全[root@master hadoop-3.2.1]$ bin/hadoop fs[-appendToFile <localsrc> ... <dst>] [-cat [-i...
2020-04-24 09:56:28
338
原创 Hadoop最新版本3.2.1集群搭建(系列文章之三)
规划节点信息如下: namenode datanode journalnode zookeeper master(192.168.234.101) * * * slave1(192.168.234.102) * * * * slave2(192.168.234.103) * * ...
2020-04-23 18:00:01
817
原创 Centos8.1 Linux更改yum源配置说明
大家可以按照如下流程修改源1.备份现有源mv /etc/yum.repos.d /etc/yum.repos.d.backup2.设置新的yum目录mkdir /etc/yum.repos.d3.安装wget(我没安装,也没事,可能是我以前安装过)yum install -y wget4.下载配置CentOS 8wget -O /etc/yum.repos.d/CentOS-B...
2020-04-22 10:55:46
1318
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人