太阳上的雨天
执着于理想,纯粹于当下
太阳上的雨天
C/C++、Go、JAVA、PHP、VUE
展开
-
微服务 二十一 Mycat中间件 实现主从读写分离
mycat下载地址: http://dl.mycat.org.cn/简介MyCat 是目前最流行的基于 java 语言编写的数据库中间件,是一个实现了 MySQL 协议的服务器,用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以用 MySQL 原生协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信,其核心功能是分库分表。配合数据库的主从模式还可实现读写分离MyCat 是基于阿里开源的 Cobar 产品而研发,Cobar 的稳定原创 2022-05-28 14:51:09 · 278 阅读 · 0 评论 -
微服务 二十 Mysql8多主一从搭建
机器规划名字IP配置master1172.16.129.1552CPU 2G 20硬盘master2172.16.129.1562CPU 2G 20硬盘slave172.16.129.1572CPU 2G 20硬盘三台机器都执行的操作1. 联网 vim /etc/sysconfig/network-scripts/ifcfg-ens33 ONBOOT=yes service network restart2. yum -y install v原创 2022-05-28 14:50:33 · 183 阅读 · 0 评论 -
微服务 十九 k8s搭建
环境macVmware fusioncentos7docker准备准备三台虚拟机 master、node1、node2选择桥接模式,安装的时候选择时区 DATE & TIME Asia Shanghai角色ip机器名配置master192.168.3.103master2核 2G (至少2核 否则报错)node192.168.3.104node12核 2Gnode192.168.3.105node22核 2G原创 2022-05-28 14:47:04 · 342 阅读 · 0 评论 -
微服务十八 搭建 mysql 主从同步
在实际项目,当访问量大,并发量高或者业务较复杂的时候。为了优化性能,减轻一个主库mysql服务的压力,提升用户体验,会考虑分库分表或者主从模式。 项目中会存在大量的读写操作,而且读的操作可能会占很大的比例,如果写的同时使用了锁机制,那么会导致查询等待,也就导致查询很慢。为了减少这种情况的发生,可以使用从库来处理读,主库负责写。主从又分为几种模式一主一从一主多从多主一从多主多从这里采用一主多从的模式,实现主从数据同步。同步会有时间延迟,最终确保数据一致性。原理master将变动记录到二进原创 2022-05-28 14:46:00 · 265 阅读 · 0 评论 -
Go 微服务十七 存储过程 + 事件 实现数据备份
遇到一个需求。需要每天凌晨三点实现对指定的几张表执行备份(备份前一天的数据)。并且写到备份库里,并对现有库中删除掉。每天的单子量非常大,如果再加上备份读写 mysql 会比较慢刚开始通过go协程开四个协程实现备份,一个小时备份了 不到50万太慢了。所以改用存储过程+事件的方式实现。经测试530万的数据量 备份需要大概13分钟。创建demo 数据库创建 o_a_order表创建 o_b_order表创建 o_c_order表创建 o_match_order表备份的表创建 o_a_order_原创 2022-05-28 14:44:59 · 1247 阅读 · 0 评论 -
Go 微服务十六 ElasticSearch安装和使用
简介Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据用途应用程序搜索网站搜索企业搜索日志处理和分析基础设施指标和容器检测应用程序性能检测地理空间数据分析和可视化安全分析业务分析安装 - docker方式拉取镜像docker pull elasticsearch:7.2.0启动docker run --name my-elasticsearch -p 9200:9200 -原创 2022-05-28 14:44:22 · 154 阅读 · 0 评论 -
Go 微服务十五 生成雪花ID
创作不易感谢支持。一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持点击链接查看我的Go 微服务十五 生成雪花ID原文章github地址: jsnowflake自己写了一个生成雪花ID的包,放到了github上。地址: jsnowflake 。如果喜欢,还望点个star 谢谢🙏如有问题,欢迎指出~此文章基于自己的包实现原创 2022-03-23 22:12:16 · 357 阅读 · 0 评论 -
微服务十四 Go 使用leveldb
创作不易感谢支持。一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持微服务十四 Go 使用leveldb简介LevelDB是一个由Google公司所研发的键-值存储嵌入式数据库管理系统编程库leveldb是一个写性能十分优秀的存储引擎,是典型的LSM树(Log Structured-Merge Tree)实现。LSM树的核心原创 2022-03-21 09:18:01 · 1265 阅读 · 0 评论 -
微服务十三 日志收集项目结构设计及Kafka介绍
创作不易感谢支持。一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持日志收集项目结构设计及Kafka介绍项目背景每个业务系统都有日志,当系统出现问题时,需要通过日志信息来定位和解决问题。当系统机器比较少时,登录到服务器上查看即可满足,当系统机器规模巨大,登录到机器上查看几乎不现实(分布式的系统,一个系统部署在多台机器上)解决原创 2022-03-21 09:17:13 · 1052 阅读 · 0 评论 -
Go微服务十二 Go使用nacos 注册服务,服务发现
创作不易感谢支持。一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持Go使用阿里nacos管理服务注册和发现,思路Demo连接nacosfunc InitNacos() *nacosRF { //return &nacosRF{} d := &nacosRF{} clientConfig := const原创 2022-03-21 09:13:28 · 2287 阅读 · 0 评论 -
Go微服务十 编写shell脚本启动docker部署的go项目
创作不易感谢支持。一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持上一篇,通过编写Dockerfile部署go项目。存在一个不方便的地方。每次将新的打包好的go项目传到服务上之后都需要先停止docker,删除docker 容器 , 删除docker 镜像,再执行dokcer build 和docker run 步骤台繁琐.这一原创 2022-03-21 09:10:27 · 735 阅读 · 0 评论 -
Go微服务九 go语言工程制作dockerfile,通过docker将项目或者独立服务部署到服务器
创作不易感谢支持。一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持#go语言工程制作dockerfile,通过docker将项目或者独立服务部署到服务器前言docker,[kubernetes]的天下,如何使用docker将go语言项目部署到docker容器,然后部署到服务器>[kubernetes]的天下,如何使用d原创 2022-03-21 09:09:00 · 1168 阅读 · 0 评论 -
Go微服务八 Go-gGRPC 不同端口提供rpc和http服务
与[微服务六]略有不同。以商品详情场景解释本篇和[微服务六]还有[微服务七]的不同之处微服务六: 不同端口同时支持rpc和http。 场景: 商品服务-> 商品库存等 商品服务-> 商品库存提供rpc:端口(9001) 客户端可以通过rpc调用商品库存rpc接口服务,此时客户端可能没有使用rpc,只会http api调用的形式。这个时候客户端也可以通过http, 调用用商品库存rpc接口提供的http: 端口(8001)相当于一个商品库存,通过基于protobuf协议封装的g原创 2022-03-21 09:07:54 · 713 阅读 · 0 评论 -
Go微服务七 同一端口监听grpc和http服务 客户端只能使用rpc调用服务端提供的rpc,服务端提供的api,客户端可以使用http调用
创作不易感谢支持。一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持在上一篇文章中,基于TLS认证,使用grpc-gateway提供了grpc和http服务。两个服务启动了两个端口。可能还有同一个端口启用两个服务的业务。rpc是rpc服务,另外是api接口。其实一个链接可以是rpc或者http,但不能同时是两者一 在项目目录下原创 2022-03-21 09:06:07 · 679 阅读 · 0 评论 -
Go微服务六 Go - gRPC - TLS 使用rpc-gatway 不同端口同时提供rpc和http服务 客户端rpc和http选其一调用
为什么要这么做:不管时内部另外一个服务还是外部第三方服务,如果调用者也使用了rpc,可以调用写好的服务端。如果调用者没有使用rpc而使用了http RESTFUL API ,那就要使用roc-gatway提供http服务了简而言之:一个商品详情服务接口即可以提供rpc也可以支持http RESUTFUL API (rpc和api不同的启动端口)一 安装go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gatew原创 2022-03-21 09:05:05 · 449 阅读 · 0 评论 -
Go微服务五 Go - gRPC 中的TLS认证
介绍在上一篇中简单介绍了 在go中gRPC的使用,但是无签名的认证。这一篇简单介绍生成cert进行TLS认证的调用代码较上一篇改动不大。包含使用openssl生成ca证书证书生成流程新增ca.conf[ req ]default_bits = 4096distinguished_name = req_distinguished_name[ req_distinguished_name ]countryName = CNcountryNam原创 2022-03-20 13:57:56 · 751 阅读 · 0 评论 -
Go微服务三 Go-RPC
RPC1. 简介 什么是RPC?远程过程调用(Remote Procedure Call, RPC)。计算机的一个通信协议该协议允许一台计算机的程序调用另一台计算机的程序。如果涉及的软件采用的面向对象编程,远程调用也可以叫做远程调用或远程方法调用2. Go实现RPC2.1 如何实现go使用官方提供的nei/rpc包使用encoding/gob进行编码,支持tcp和http数据传输,由于其他语言暂不支持gob编码方式,所以go的rpc只支持go开发的服务与客户端之间的交互但是原创 2022-03-20 13:56:01 · 3043 阅读 · 0 评论 -
Go微服务二 Go+nacos 实现配置共享
创作不易感谢支持。一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持Nacos简介作用发现、配置和管理微服务特性服务发现和服务健康监测、动态配置服务动态 DNS 服务服务及其元数据管理搭建Nacos安装压缩包方式[nacos2.0.4 github下载地址]➜ mkdir nacos-server➜原创 2022-03-20 13:54:11 · 1497 阅读 · 0 评论 -
Go微服务一 浅谈微服务
创作不易感谢支持。一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持什么是微服务把一个大应用拆分成多个独立的小应用,每个应用就是一个服务。每个服务运行在独立的进程里,并且他们可以通过自动化的方式部署微服务的特点单一指责,比方说登陆注册服务,只处理登陆和注册、日志服务之处理日志、用户服务、订单服务、商品服务、秒杀服务、短信通原创 2022-03-20 13:48:20 · 830 阅读 · 0 评论