MariaDB HA之Galera集群

MariaDB HA之Galera集群 功能简介 特性 真正的多主架构,任何节点都可以进行读写 同步复制,各节点间无延迟且节点宕机不会导致数据丢失 紧密耦合,所有节点均保持相同状态,节点间无不同数据 无需主从切换操作或使用VIP 热Standby,在Failover过程中无停机时间(由于不需要Failove……

阅读全文

MySQL高可用集群之双主多从

简介 通常MySQL主从复制主要用来解决读写分离,分担服务器压力。MySQL互为主备实现服务的高可用;这里同时基于高可用和负载均衡。 集群架构 环境准备 主机名/角色 VIP IP地址 操作系统 MySQL版本 Node0/master1 172.16.10.100 172.16.10.10 CentOS8.1.1911 8.0.17 Node1/master2 172.16.10.11 CentOS8.1.1911 8.0.17 Node2/slave1 172.16.10.12 CentOS8.1.1911 8.0.17 注意 MySQL版本保持一致,不然容易出现不可预知的错误。 安装My……

阅读全文

蓝鲸paas平台bk-paas安装部署

简介 蓝鲸智云PaaS平台是一个开放式的开发平台,让开发者可以方便快捷地创建、开发、部署和管理SaaS应用。 github仓库: https://github.com/Tencent/bk-Paas 结构 源码包含 Paas 包含4大服务,均基于python2.7+django1.8开发 login 蓝鲸统一登录服务,支持用户及角色管理,支持对接企业内部登录体系 paas 蓝鲸开发者中……

阅读全文

nginx+etcd实现服务配置动态更新

Nginx是目前使用量最大的web服务器和负载均衡服务器 实现的方案有: nginx+consul nginx+etcd 这里主要介绍nginx+etcd,具体方法都差不多 下面介绍一下怎么实现的 安装并运行etcd 安装etcd 目前最新版本为3.4.7 1wget https://github.com/etcd-io/etcd/releases/download/v3.4.7/etcd-v3.4.7-linux-amd64.tar.gz 2tar xf etcd-v3.4.7-linux-amd64.tar.gz -C /usr/bin \ 3 --strip-components 1 etcd-v3.4.7-linux-amd64/etcd{,ctl} 创建etcd用户和工作目录 1groupadd -g 379 etcd 2useradd -u 379 -g 379 etcd -s /sbin/nologin -d /etc/etcd 创……

阅读全文

使用Nessus扫描系统漏洞

简介 Nessus是目前使用人数最多的系统漏洞扫描与分析软件,是开源软件OpenVas的增强版本。使用它可以发现系统中存在的问题,并及时修复,加强对服务器的保护。 安装 下载地址:https://www.tenable.com/downloads/nessus 选择合适的平台软件进行下载……

阅读全文

Go爬虫开发

引入 在具体讲解爬虫知识之前,我们首先简单回顾下前面HTTP编程。一种是我们自己编写一个服务器,让浏览器请求我们的服务器。接受请求后分析协议,回发相应数据给浏览器。 另一种,我们可以编写程序充当客户端或者说是用程序模拟浏览器行为,向互联网上现有的服务器发送请求,获取服务器上的数据。例……

阅读全文

使用Prometheus监控常用中间件

常用中间件 中间件指系统软件和应用软件之间的连接软件,无论是在分布式系统还是在单体系统中,中间件都发挥着重要的作用。 常用的中间件主要有以下几类: 数据库中间件: 如PostgreSQL 消息中间件:如Kafka 缓存中间件:如Redis Web服务中间件: 如nginx 安装Prometheus……

阅读全文

使用Prometheus监控MySQL

prometheus出了前面将了能监控系统的性能指标外,还能监控具体的应用程序,只需要按照prometheus约定的格式收集指标即可。这里介绍一下监控mysql应用。 安装Mysqld_Exporter 其中mysqld_exporter是有官方提供,下载地址: Mysql_exporter 1wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz 这些应用程序都是……

阅读全文

Go-micro学习笔记(2)gRPC使用

使用gRPC构建一个简易的商品服务注册到etcd中 创建models/protos目录,新建商品模型 1syntax = "proto3";2package models;34// 商品模型 5message ProdModel{6 // @inject_tag: json:"pid" 7 int32 ProdId = 1;8 // @inject_tag: json:"pname" 9 string ProdName = 2;10}使用protoc创建服务 1syntax = "proto3";2package models;34import "models.proto";56message ProdRequest{7 int32 size = 1;8}910message ProdListResponse{11 repeated ProdModel data = 1;12}1314service ProdService{15 rpc GetProdList(ProdRequest) returns (ProdListResponse);16}使用proto……

阅读全文

Go-micro学习笔记(1)http调用

1. go-micro体验 1package main 2 3import ( 4 "fmt" 5 "github.com/micro/go-micro/web" 6 "net/http" 7) 8 9func main(){ 10 service := web.NewService(web.Address("127.0.0.1:8000")) 11 // 使用http原生的handlefunc 12 service.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { 13 w.Write([]byte("hello world")) 14 }) 15 err := service.Run() 16 if err != nil { 17 fmt.Println(err) 18 } 19} 测试结果 1curl http://127.0.0.1:8000 2hello world 2. 使用web框架gin 1package main 2 3import ( 4 "github.com/gin-gonic/gin" 5 "github.com/micro/go-micro/web" 6 "net/http" 7) 8 9func main() { 10 r := gin.Default() 11 r.Handle("GET", "/", func(c *gin.Context) { 12 c.JSON(http.StatusOK, gin.H{ 13 "code": http.StatusOK, 14 }) 15 }) 16 service := web.NewService( 17 web.Name("demo_service"), 18……

阅读全文