- 博客(35)
- 收藏
- 关注
原创 【Docker】Docker学习⑨ - 单机编排之Docker Compose
4.1 创建数据目录和文件4.2 编辑compose配置文件web1:expose:- 80- 443volumes:ports:- "80:80"web2: #每个容器一个IDexpose:- 80- 443ports:- "81:80"4.3 重启容器4.4 登录验证Web访问4.5 其他常用命令##重启单个指定容器##重启所有容器##停止和启动单个容器##停止和启动所有容器。
2024-01-24 23:15:12
1281
原创 【Docker】Docker学习⑧ - Docker仓库之分布式Harbor
基于角色的访问控制:用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里由不同的权限。镜像复制:镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。图形化用户界面:用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。AD/LDAQ支:Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
2024-01-24 22:47:21
1311
原创 【Docker】Docker学习⑦ - Docker仓库之单机Dokcer Registry
Docker Registry作为Docker的核心组件之一负责镜像内容的存储与分发,客户端的docker pull以及push命令都将直接与registry 进行交互,最初版本的registry由Python实现,由于设计初期在安全性,性能以及API的设计上有着诸多的缺陷。本部分将介绍通过官方提供的docker registry 镜像来简单搭建一套本地私有仓库环境。
2024-01-23 23:20:42
926
原创 【Docker】Docker学习⑥ - 网络部分
上一步骤中,自定义的容器名称可能后期会发生变化,那么一旦名称发生变化,程序之间也要随之发生变化,比如程序通过容器名称进行服务调用,但是容器名称发生变化之后再使用之前的名称肯定是无法成功调用,每次都进行更改的话又比较麻烦,因此可以使用自定义别名的方式解决,即容器名称可以随意变更,只要不更改别名即可docker run -d --name 新容器名称 --link 目标容器名称:自定义的名称 -p本地端口:容器端口 镜像名称 shell命令2.2.1 创建第三个容器2.2.2 查看hosts文件内容。
2024-01-23 23:11:00
1284
原创 【Docker】Docker学习⑤ - Docker数据管理
数据卷实际上就是宿主机上的目录或者是文件,可以被直接mount到容器当中使用。实际生成环境中,需要针对不同类型的服务、不同类型的数据存储要求做相应的规划,最终保证服务的可扩展性、稳定性及安全性。需要存储+有状态:redis、mysql不需要存储+有状态:tomcat session在内存中不需要存储+无状态:nginx proxy、lvs。
2024-01-21 23:12:32
1274
原创 【Docker】Docker学习④ - Docker镜像与制作
docker镜像有没有内核?为什么没有内核?Docker制作类似于虚拟机的镜像制作,即按照公司的实际业务需求将需要安装的软件、相关配置等基础环境配置完成,然后将其做成镜像,最后再批量从镜像批量生产实例,这样可以极大的简化相同环境的部署工作,Docker的镜像制作分为手动制作和自动制作(基于DockerFile),企业通常都是基于Dockerfile制作精细,其中手动制作镜像步骤具体如下:1.2 yum安装并配置nginx1.3 关闭nginx后台运行1.4 自定义web页面1.5
2024-01-21 22:58:18
1379
原创 【Docker】Docker学习③ - Docker镜像管理
在官方的docker仓库中搜索指定名称的docker镜像,也会有很多三方镜像。docker search centos:7.2.1511 #带指定版本号docker search centos #不带版本号默认latest从docker仓库将镜像下载到本地3. 查看本地镜像下载完成的镜像比下载的大,因为下载完成后会解压4. 镜像导出可以将镜像从本地导出为一个压缩文件,然后复制到其他服务器进行导入使用导出方法1:导出方法2:5. 镜像导入验证镜像:6. 删除镜像docker rmi
2024-01-20 22:39:56
2710
2
原创 【Docker】Docker学习② - Docker安装及基础命令介绍
yum源安装日志:启动日志:验证docker版本:验证docker0网卡:在docker安装启动之后,默认会生成一个名称为docker0的网卡并且默认IP地址为172.0.0.1。验证docker信息:2. Docker存储引擎目前docker的默认存储引擎为overlay2,需要磁盘分区支持d-type文件分层功能,因此需要系统磁盘的额外支持。官方文档关于存储引擎的选择文档:https://docs.docker.com/storage/storagedrive
2024-01-20 22:20:24
1230
原创 【Docker】Dokcer学习① - 简介
首先Docker是一个在2013年开源的应用程序并且是一个基于go语言编写的一个开源的PASS服务(Platform as a service,平台即服务的缩写),go语言是由google开发,docker公司最早叫dotCloud,后由于Docker开源后大受欢迎就将公司改名为Docker Inc,总部位于美国加州的旧金山。
2024-01-20 21:53:11
1148
原创 【Redis】Redis学习⑪ - redis高可用与集群-redis集群
codis-proxy 相当于redis,即连接codis-proxy和连接redis是没有任何区别的,codis-proxy无状态,不负责记录是否在哪保存,数据在zookeeper 记录,即codis proxy向zookeeper查询key的记录位置,proxy将请求转发到一个组进行处理,一个组里面有一个master和一个或多个slave组成,默认有1024个槽位,redis cluster默认有16384个槽位,其把不同的槽位的内容放在不同的group。被迁移的master服务器必须保证没有数据。
2023-10-29 22:58:16
106
原创 【Redis】Redis学习⑩ - redis高可用与集群-redis集群
在哨兵 sentinel 机制中,可以解决redis高可用的问题,即当master故障后可以自动将slave提升为master从而可以保证redis服务的正常使用,但是无法解决redis单机写入的瓶颈问题,即单机的redis写入性能受限于单机的内存大小、并发数量、网卡速率等因素,因此redis官方在redis 3.0版本之后推出了无中心架构的redis cluster机制。redis cluster 的架构虽然解决了并发的问题,但是又引入了一个新的问题,每个redis master的高可用如何解决?
2023-10-29 22:54:56
129
原创 【Redis】Redis学习⑨ - redis高可用与集群-redis集群
前一章的主从架构无法实现master和slave角色的自动切换,即当master出现redis服务异常、主机断电、磁盘损坏等问题导致master无法使用,而redis高可用无法实现自故障转移(将slave提升为master),需要手动改环境配置才能切换到slave redis 服务器,另外也无法横向扩展Redis服务的并行写入性能,当单台Redis服务器性能无法满足业务写入需求的时候就必须要一种方式解决以上的两个核心问题。1)master和slave角色的无缝切换,让业务无感知从而不影响业务使用。
2023-10-28 21:15:37
166
原创 【Redis】Redis学习⑧ - redis高可用与集群-配置redis主从
虽然Redis可以实现单机的数据持久化,但无论是RDB也好或者AOF也好,都解决不了单点宕机问题,即一旦redis服务器本身常出现系统故障、硬件故障等问题后,就会直接造成数据的丢失,因此需要使用另外的技术来解决单点问题。主备模式,可以实现Redis数据的跨主机备份。
2023-10-28 21:00:53
75
原创 【Redis】Redis学习⑥ - redis消息队列
消息队列主要分为两种,分别是生产者消费者模式和发布者订阅者模式,这两种模式Redis都支持。在生产者消费者(Producer/Consumer)模式下,上层应用接收到外部请求后开始处理其当前步骤的操作,在执行完成后将已经完成的操作发送至指定的的频道(channel)当中,并由其下层的应用监听该频道并继续下一步操作,如果其处理完成后没有下一步操作就直接返回数据给外部请求,如果还有下一步操作就再将任务发布到另外一个频道,由另外一个消费者继续监听和处理。
2023-10-28 20:11:36
80
原创 【Redis】Redis学习④ - Redis持久化
redis虽然是一个内存级别的缓存程序,即redis是使用内存进行数据缓存的,但是其可以将内存的数据按照一定的策略保存到硬盘上,从而实现数据持久保存的目的,redis支持两种不同方式的数据持久化保存机制,分别是RDB和AOF。
2023-10-20 16:23:02
58
原创 【Redis】Redis学习③ - Redis主要配置项
Append Only File是另一种持久化方式,可以提供更好的持久化特性,Redis会把每次写入的数据在接收后都写入appendonly.aof文件,每次启动时Redis都会先把这个文件读入内存里,先忽略RDB文件。是否开启AOF日志记录,默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够使用了。前台启动redis,一般不是作为守护进程运行的,如果你想让他在后台运行,就改成yes,当redis作为守护进程运行的时候,会写一个pid到/var/run/redis.pid文件里面。
2023-10-20 16:13:19
125
1
原创 【Redis】Redis学习① - Redis简介
1.开源的、遵循BSD协议的、基于内存的键值数据库。2.非关系型数据库3.redis提供将内存通过网络远程共享的一种服务,提供类似功能的还有memcache,但相比memcache,redis还提供了易扩展,高性能,具备数据持久性等功能。4.redis在高并发、低延迟环境要求较高的环境使用量非常广泛。
2023-10-13 16:19:06
96
原创 【国产数据库】GBase学习⑬ - GBase 8c 备份与恢复
导出postgres数据库全量信息导出指定schema导出指定schema场景一: 创建用户(会自动创建模式),在指定模式下创建业务数据,然后通过gs_dump导出指定模式下数据导出指定的表导出指定的表只导出表定义,不导出数据 + 恢复命令:恢复1:恢复2:数据导入导出导出命令:COPY TO导入1:INSERT 通过INSERT语句插入一行或多行数据,及从指定表插入数据命令:导入2:使用INSERT 批量插入命令:导入3:使用COPY 表名 [(列名[,
2023-04-18 23:14:39
1118
原创 【国产数据库】GBase学习⑫ - Plan Hint
Plan Hint为用户提供了直接影响执行计划的手段,用户可以通过指定join顺序,join、scan方法,指定行数等手段来进行执行计划调优,以提升查询性能。hint 弊端:如果将hint写在应用代码中,当修改执行计划,还需要修改代码,不够灵活。指定形式: /*+ */
2023-04-18 23:06:07
696
原创 【国产数据库】GBase学习⑪ - 分布式执行计划
例:update 带有 returning 语句,并存在两表连接,不支持stream 计划,CN通过remote query 从DN获取两表数据,在CN完成连接操作,根据连接结果构造最终update语句,通过remote query下发DN。当链接条件均为非分布列时,通过广播和重分布均能实现链接,表规模较小时,倾向于广播,规模较大时,倾向于重分布。update t1时,连接条件为t1.id1(分布列)与t2.id1(分布列),不会进行重分布或广播。例2:select 连接条件为分布列和非分布列。
2023-04-18 22:53:54
1000
原创 【国产数据库】GBase学习⑩ - 安全特性
账户安全策略:自动锁定和解锁账户、手动锁定和解锁、锁定异常账户和删除不再使用的账户账号的有效期:限制用户的操作期限(有效开始时间和结束时间)密码的安全策略:密码的加密算法,密码复杂度,密码重用,密码有效期限,设置用户密码失效等。
2023-04-18 22:42:00
733
原创 【国产数据库】GBase学习⑨ - 存储引擎
GBase 8c 提供了多种索引类型:hash,B-tree,gist,gin。每一种索引类型使用了一种不同的算法来适应不同类型的查询。GBase 8c 的数据分片策略:在创建表时,通过关键字distribute、replication来设置表分片策略。在此基础上,分区表功能,支持二级分区,9种分区组合,interval分区。interval分区:根据间隔自动创建分区,例如,1 day 、1 month(主备式)在不指定时,默认使用hash分片,分布式键按照顺序为第一个满足hash算法的字段。
2023-04-18 22:25:12
1449
原创 【国产数据库】GBase学习⑧ - 函数
SQL函数的主要分类包括:单行函数、多行函数(SQL 函数指的是数据库内置函数,可以运用在SQL语句中实现特定的功能)根据数据类型分为:字符函数、数值函数、日期函数、转换函数 以及其他通用的函数。单行函数:对于每一行数据进行计算后得到的一行输出结果。
2023-04-17 22:53:58
2005
原创 【国产数据库】GBase学习⑦ - 数据类型
复合类型:由一个属性名和数据类型的列表指定。符合类型本质上和表的行类型相同,但是如果只想定义一种类型,使用CREATE TYPE避免了创建一个实际的表。单独的复合类型也是很有用的,例如可以作为函数的参数或者返回类型。基本类型:用户可以自定义一种新的基本类型(标量类型)。通常来说这些函数必须是底层语言所编写。shell类型:是一种用于后面要定义的类型的占位符。在创建基本类型时,需要shell类型作为一种向前引用。
2023-04-17 22:18:37
1645
原创 【国产数据库】GBase学习⑤ - gsql 客户端连接工具
GBase 8c 客户端工具是gsql。类似于MySQL的mysql,Oracle的sqlplus。gsql :客户端连接工具。为用户提供的连接到数据库并进行各种操作和调试的命令行工具。gsql提供连接、元命令等功能。
2023-04-10 22:36:55
5146
原创 【国产数据库】GBase学习④ - GBase 8c 介绍
MOT是一种内存数据库存储引擎,其中所有表和索引完全驻留在内存中。同时,事务更改(WAL)同步到磁盘上来保证严格一致性。GTM采用基于全局事务提交时间戳的方案代替全局活跃事务列表的方案来管理全局事务。DN节点部分场景仍采用活跃事务列表的方式管理事务。分布式数据库的诞生是为了解决集中式数据库横向扩展的问题。中间件的分布式数据库,底层不具备分布式能力,跨节点事务能力、关联能力较差。采用LSM-tree的分布式数据库,适用于写多读少的场景,读性能不高。
2023-04-06 22:29:45
2385
原创 基于Tomcat的MQ学习月记
基于Tomcat的MQ学习月记JAVA实现简单MQ队列服务主要角色功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入JA...
2019-07-17 11:19:31
451
原创 代码月记之JAVA排序
JAVA排序排序类型、时间复杂度、空间复杂度、稳定性、复杂性复杂度总结代码测试类序列化接口Dao层接口排序选择总结排序类型、时间复杂度、空间复杂度、稳定性、复杂性我们首先对时间复杂度、空间复杂度做一下整理:时间复杂度 :一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数...
2019-06-26 14:21:26
389
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人