Redis

harbor高可用集群配置

橙三吉。 提交于 2020-12-21 07:26:11
[toc] 说明 在上一篇 企业级镜像管理系统Harbor 中,我们简要说明了单机版本harbor的配置。然而这种单机部署显然无法满足在生产中需求,必须要保证应用的高可用性。 目前有两种主流的方案来解决这个问题: 双主复制 多harbor实例共享后端存储 双主复制 主从同步 harbor官方默认提供主从复制的方案来解决镜像同步问题,通过复制的方式,我们可以实时将测试环境harbor仓库的镜像同步到生产环境harbor,类似于如下流程: 在实际生产运维的中,往往需要把镜像发布到几十或上百台集群节点上。这时,单个Registry已经无法满足大量节点的下载需求,因此要配置多个Registry实例做负载均衡。手工维护多个Registry实例上的镜像,将是十分繁琐的事情。Harbor可以支持一主多从的镜像发布模式,可以解决大规模镜像发布的难题: 只要往一台Registry上发布,镜像就像“仙女散花”般地同步到多个Registry中,高效可靠。 如果是地域分布较广的集群,还可以采用层次型发布方式,如从集团总部同步到省公司,从省公司再同步到市公司: 然而单靠主从同步,仍然解决不了harbor主节点的单点问题。 双主复制说明 所谓的双主复制其实就是复用主从同步实现两个harbor节点之间的双向同步,来保证数据的一致性,然后在两台harbor前端顶一个负载均衡器将进来的请求分流到不同的实例中去

K8s 容器集群

安稳与你 提交于 2020-12-21 06:57:16
本文重点说下 Harbor 高可用集群方案的部署,目前主要有两种主流的 Harbor 高可用集群方案:1)双主复制;2)多 harbor 实例共享后端存储。 一、Harbor 双主复制高可用集群 1.1 主从同步 harbor 官方默认提供主从复制的方案来解决镜像同步问题,通过复制的方式,我们可以实时将测试环境 harbor 仓库的镜像同步到生产环境 harbor,类似于如下流程: 在实际生产运维的中,往往需要把镜像发布到几十或上百台集群节点上。这时,单个 Registry 已经无法满足大量节点的下载需求,因此要配置多个 Registry 实例做负载均衡。手工维护多个 Registry 实例上的镜像,将是十分繁琐的事情。Harbor 可以支持一主多从的镜像发布模式,可以解决大规模镜像发布的难题: 只要往一台 Harbor 上发布,镜像就会像"仙女散花"般地同步到多个 Registry 中,高效可靠。 如果是地域分布较广的集群,还可以采用层次型发布方式,比如从集团总部机房同步到分公司1机房,再从分公司1机房同步到分公司2机房: 然而单靠主从同步,仍然解决不了 harbor 主节点的单点问题。 1.2 双主复制说明 所谓的双主复制其实就是复用主从同步实现两个 harbor 节点之间的双向同步,来保证数据的一致性,然后在两台 harbor

控制反转( IoC)和依赖注入(DI)

蹲街弑〆低调 提交于 2020-12-20 04:09:48
控制反转( IoC)和依赖注入(DI) tags: 容器 依赖注入 IOC DI 控制反转 引言:如果你看过一些框架的源码或者手册,像是laravel或者tp5之类的,应该会提到容器,依赖注入,控制反转等词汇。或者是某些面试官会问到这类问题。希望这篇文章能让你有所收获。 ###1.1、IoC(控制反转 Inversion of Control) 简述:控制反转并不是一种技术,而是一种 设计思想 。通过控制反转容器(以后称容器),改变了原本某些对象运行时依赖其他对象资源时需要自己进行获取(比如通过new ClassName),所造成的对象之间的强耦合(耦合的概念如果不理解,可以先去了解一下。)。   所谓IoC,对于程序来说,就是构造了一个容器,比如在tp5中,这个容器叫Container,此容器来负责控制对象和对象间的关系。在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个),这样的话一个对象A和另一个对象B之间就有了很强的联系(也就是强耦合)。这种耦合体现在如果被依赖的资源类初始化的时候(也可能是其他时候)传入的参数变化了,你要修改两个类的代码,举例说明:    你本来用的是php本身的session机制,现在想改成也支持redis,并在初始化的时候增加一个参数来控制。这个时候你不止需要去修改类Session类的代码,还要去修改类A的代码。部分代码如下 //原代码

怒肝一页,搞定这篇MyBatis 缓存结构(下)

有些话、适合烂在心里 提交于 2020-12-19 21:58:21
二级缓存 主要内容: 二级缓存构建在一级缓存之上,在收到查询请求时,MyBatis 首先会查询二级缓存。若二级缓存未命中,再去查询一级缓存。与一级缓存不同,二级缓存和具体的命名空间绑定,一级缓存则是和 SqlSession 绑定。 在按照 MyBatis 规范使用 SqlSession 的情况下,一级缓存不存在并发问题。二级缓存则不然,二级缓存可在多个命名空间间共享。这种情况下,会存在并发问题,因此需要针对性去处理。除了并发问题,二级缓存还存在事务问题。 二级缓存如何开启? 配置项 <configuration> <settings> <setting name="cacheEnabled" value="true|false" /> </settings> </configuration> cacheEnabled=true表示二级缓存可用,但是要开启话,需要在Mapper.xml内配置。 <cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/> 或者 简单方式 <cache/> 对配置项属性说明: flushInterval="60000",间隔60秒清空缓存,这个间隔60秒,是被动触发的,而不是定时器轮询的。 size=512,表示队列最大512个长度,大于则移除队列最前面的元素

可能是目前最给力的Prometheus与Zabbix选型解读

怎甘沉沦 提交于 2020-12-19 18:53:39
云原生成为趋势之际,企业对容器监控的需求日渐增长,Prometheus也日益受到关注,随之掀起了新一轮关于监控选型的探讨。 Zabbix 因轻量、 成熟度高 、开发门槛低等优点被广泛应用,但在 云环境下却 渐显力不从心。 该如何对 二者进行选型和 应用? 针对大家关心的监控问题,dbaplus社群开启【deeplus · 当打之年 】 第一期,邀请到分别专研于 Prometheus 和Zabbix的两位专家,在线上直播间连麦探讨,帮大家答疑解惑: 直播时间 2020年9月12日 14:00-16:00 【线上直播间】 直播议程 ① 讨论 - 关于Prometheus与Zabbix,你最关心的核心问题(约20min) 两者各有哪些优劣异同?应该根据哪些方面进行选择? 监控经常出现的告警风暴和误报,两者怎么进行解决? 在故障自愈上,两者怎么结合其他手段实现? 大规模场景下,两者怎么做架构搭建和优化? 关于监控指标,单个指标与聚合指标该如何设计?需要做什么区分吗? 基于开源监控工具做自研监控平台,从哪方面入手更好? 二者怎么解决存储问题? 如何基于二者做分布式监控架构? …… 更多讨论议题 由你决定! 点击文末 阅读原文 ,报名并填写你希望听到或感到疑惑的监控话题,让这次探讨的内容真正 为你适用! ② 案例 - 基于Prometheus与Zabbix的实践经验分享(约60min) 主题:

python之接口自动化测试框架

╄→尐↘猪︶ㄣ 提交于 2020-12-19 18:24:31
梳理python+unittest接口自动化测试框架的思路: 1.确定目录: cases:存放测试用例的py文件;config:存放一些数据库,环境地址等固定不变的信息; core:核心的文件, cases:测试用例test_cj.py,代码如下: import unittest import os import jsonpath from core.my_requests import MyRequest from conf.setting import default_host from core.tools import mysql from core.tools import r as redis class Cj(unittest.TestCase): username = ' autotest_lyh78910 ' # 自动化测试注册的用户 password= ' aA123456 ' # 类变量 def test_reg(self): # post请求,请求参数为username,pwd,cpwd. ''' 注册接口 ''' url = ' /api/user/user_reg ' new_url = os.path.join(default_host,url) data ={ ' username ' :self.username, ' pwd ' :self

把旧系统迁移到.Net Core 2.0 日记 (15) --Session 改用Redis

蓝咒 提交于 2020-12-19 18:08:47
安装Microsoft.Extensions.Caching.Redis.Core NuGet中搜索Microsoft.Extensions.Caching.Redis.Core并安装,此NuGet包是对Caching的拓展,即可以更换Caching存储介质 appsettings.json配置Redis连接字符串 appsettings.json配置Redis连接字符串(相当于web.config里面配置appsetting节点),注意:添加位置要在Logging上面 { " ConnectionStrings " : { " RedisConnection " : " 127.0.0.1:6379,password=xxxxxxxxx " }, " Logging " : { " IncludeScopes " : false , " LogLevel " : { " Default " : " Warning " } } } Startup.cs的ConfigureServices方法中添加引用 public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); services.AddDistributedRedisCache

离职10天,面挂4家公司!

落花浮王杯 提交于 2020-12-19 18:05:53
作者:莫那鲁道 来源: http://1t.click/U4g 楼主离职已有 10 天,这段时间里除了看源码,就是投简历面试了。一共面试了 4 家,说说感受。 # XX 汇 XX 汇是一家小型的电商网站,由于楼主的技术栈集中在 Java 语言这里,所以,即使楼主对并发,JVM,Netty,Spring 等都稍有了解,但依然没有任何优势—— 因为他们完全用不到。 整个面试过程中,问了大概以下问题: 1.说说你的项目,用了 SpringCloud 哪些功能? 2.熟悉 Mysql 吗?说说索引(不懂 Mysql 啊大佬) 3.如何实现一个单例模式(这个俺擅长) 4.平时使用了哪些线程池(这个俺也擅长) 5.Map 接口有哪些类(这个俺也擅长) 6.写一段 SQL 呗(不会 SQL) 7.如何实现免登陆功能(cookie session?) 当然,被刷了,估计是 SQL 不够好吧,而我擅长的他们也不需要。 关注微信公众号:Java技术栈,在后台回复:面试题,可以获取我整理的 N 篇面试题精选,真是太全了。 # XX 旅游 这个就比较奇葩了,是最奇葩的一个,面试官是个小伙子,根本不懂并发,然后强行问我并发,自己基本一言不发。 还对我的回答貌似不满意? 1.自我介绍一下。 2.说说 Mysql 的索引。 3.说说 redis 主从同步。 4.说说 redis 缓存穿透,缓存雪崩,恶意访问

redis-cluster搭建

旧城冷巷雨未停 提交于 2020-12-19 16:46:00
#安装redis和一些要用到的工具 yum -y install gcc automake autoconf libtool make wget tcl zlib ruby rubygems gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/ gem sources -u gem install redis cd /usr/local wget http://download.redis.io/releases/redis-stable.tar.gz tar zxvf redis-stable.tar.gz cd redis-stable make make install cd utils ./install_server.sh #修改配置文件目录在/etc/redis下 vi 6379.conf port=6379 pidfile /var/run/redis_6379.pid logfile /var/log/redis_6379.log daemonize=yes cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 15000 appendonly yes dir

redis cluster搭建

丶灬走出姿态 提交于 2020-12-19 16:35:31
一、搭建准备 要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下(为了简单演示都在同一台机器上面) 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 二、下载最新版本 wget http://download.redis.io/releases/redis-3.0.0.tar.gz 解压安装 tar xf redis- 3.0 . 0 .tar.gz cd redis- 3.0 . 0 make && make install 创建存放多个实例的目录 mkdir /data/cluster -p cd /data/cluster mkdir 7000 7001 7002 7003 7004 7005 修改配置文件 cp redis-3.0.0/redis.conf /data/cluster/7000/ port 7000 protected -mode no daemonize yes cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000