
中间件技术
文章平均质量分 78
zollty
这个作者很懒,什么都没留下…
展开
-
docker导入镜像报错:docker symlink usr/bin /bin: operation not permitted
docker导入镜像报错:docker symlink usr/bin /bin: operation not permitted修改Docker存储地址后,如上报错。deamon.json配置如下{ "data-root": "/tmp/usb/sda/sda1/docker"}我这边的**原因是:挂载的磁盘格式(exfat/NTFS等)不兼容overlay2**原创 2021-12-30 22:12:37 · 605 阅读 · 0 评论 -
IBM MQ监控方法
2019-10-25 18:26:12IBM MQ监控工具已开源,参见:https://github.com/zollty/IBM-MQ-Monitoring-Script1、检查连接数1)底层网络连接检测方法netstat -tnp | grep amqrmppa | wc -l或netstat -tn | grep :14 | wc -l2)IBM MQ tool检测dspmqtrn -a | grep "TranNum(" | wc -l参考原创 2021-10-16 19:43:21 · 3410 阅读 · 0 评论 -
存储基础(SATA、SCSI、RAID、SAN、SAS、FC)
2020-02-27本文涉及如下知识: SAN(存储区域网络) SCSI:小型计算机系统级接口的独立处理器标准 iSCSI:Internet(i)小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术 SATA:基于行业标准的串行硬件驱动器接口 RAID:磁盘阵列 FC(Fibre Channel):FC协议、FC网络、FC互联 Fiber Channel:光纤通道 InfiniBand(IB):无限带..原创 2021-10-16 19:35:11 · 10969 阅读 · 0 评论 -
真正弄懂存储虚拟化、软件定义存储
2020-03-31 15:07:40一、什么是存储虚拟化?计算机数据存储在磁盘和固态介质上,以便在几天,几个月或几年内保持可用性。在小型系统(例如个人计算机)中,有一个CPU和一个或两个硬盘。当磁盘发生故障或空间不足时,必须手动添加另一个磁盘,并且必须将数据放置在该磁盘上。在大型系统中,可能有数百个磁盘和数字存储系统,并且管理信息的复杂性大大增加。存储虚拟化是存储设备的分组,因此无缝地看起来像是一个大型存储设备。在简单的系统中,只要程序需要访问文件,它都会向操作系统发出请求。操...原创 2021-10-16 19:30:30 · 1654 阅读 · 0 评论 -
文件系统、POSIX标准及VFS
2020-03-24 10:10:03一、POSIX标准 以及 POSIX文件接口POSIX(Portable Operating System Interface of UNIX)表示可移植操作系统接口,是IEEE为要在各种UNIX操作系统上运行软件,而定义API接口的一系列互相关联的标准的总称。POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。...原创 2021-10-16 19:27:39 · 3553 阅读 · 0 评论 -
对象存储、文件存储、块存储的区别和联系
2020-03-24 19:11:401、块存储- 典型设备:磁盘阵列,硬盘- 主要是将裸磁盘空间映射给主机使用的。- 使用场景: - docker容器、虚拟机远程挂载磁盘存储分配。 - 日志存储。 - 文件存储。 - ... 2、文件存储- 典型设备:FTP、NFS服务器为了克服块存储文件无法共享的问题,所以有了文件存储。在服务器上架 设FTP与NFS服务,就是文件存储。- 使用场景: - 日志存储。 - 多个用户有目录结..原创 2021-10-16 19:25:25 · 12483 阅读 · 2 评论 -
中间件的定义
前言 近日,与多人交流中,我发现了一个问题,很多人根本就不懂什么是中间件,哪些是中间件、哪些不是,他们区分不了。 所以,我查阅了很多外文资料,包括Oracle、IBM等大公司关于中间件的一些描述,做了一个总结和对照。中间件的定义是什么?目前很难给中间件一个严格的定义,国际上各家机构都有不同的定义。我根据很多的定义和普遍的理解,综合了一下:中间件,通常指“应用中间件”,是一种独立的系统软件或服务程序,能“独立部署和运行”,且处于“应用程序”和“基础设施...原创 2020-12-29 18:04:42 · 3406 阅读 · 1 评论 -
FastDFS网络连接问题分析
这是个一般性问题,参见这篇文章的描述:《中间件客户端配置中的域名与IP》先讲解一下FastDFS文件上传的执行流程: 获取trackerServer连接; 向trackerServer发送请求,获取一个可用的storageServer的IP; (请求指令为104,参见TrackerClient.getStoreStorage方法) 注意,每次上传请求,都要重新获取storageServer(以便达到负载均衡等目的)。另外,每次上传请求,可以重新获取tracke...原创 2020-12-21 16:51:46 · 840 阅读 · 0 评论 -
我的Dockerfile构建笔记
一、构建Docker镜像# 构建容器 docker build -t 镜像名称 . # 后面的. 指的是当前文件夹 (其实是Dockerfile存放的文件夹) docker build --rm=true -t loen/lamp . –rm 选项是告诉Docker,在构建完成后删除临时的Container,Dockerfile的某些指令(比如RUN、ADD、COPY)会创建临时的Container,这些临时生成的Container可以当做下次或者其他构建的缓...原创 2020-12-21 15:58:15 · 316 阅读 · 0 评论 -
Dockerfile最佳实践【原创、很多实践经验】
首先,参见官方文档:dockerfile_best-practices有如下几点说明:红色标注的是重点 Create ephemeral containers(构建无状态的容器) Understand build context(理解上下文,不引入多余文件) Pipe Dockerfile through stdin(无需上下文的情况,通过stdin构建) Exclude with .dockerignore(排除context中文件,参见.dockeri...原创 2020-12-21 15:56:29 · 987 阅读 · 1 评论 -
各种Java Web应用服务器对比
官方介绍:Apache TomcatApache Tomcat is an open source software implementation of theJavaServlet and JavaServer Pages technologies and developed by the Apache Software Foundation (ASF).JBoss Enterprise Application PlatformThe JBoss Enterpris...原创 2020-12-21 15:47:57 · 812 阅读 · 0 评论 -
深入理解分布式事务的二阶段提交和三阶段提交
一、“两阶段提交”的架构对于分布式系统,在两阶段提交的架构中,有两种类型的节点:事务的协调者,事务的参与者。两阶段提交的程序执行流程如下:1.请求阶段(commit-request phase,或称 预提交阶段,prepare phase)在请求阶段,协调者将通知事务参与者 “执行本地事务,并做好提交的准备”,然后参与者答复协调者自己的决策:OK(事务参与者本地作业执行成功)或 Fail 取消(本地作业执行故障)。2.提交阶段(commit phase)在该阶段,协调者将综合第...原创 2020-12-17 15:08:00 · 1529 阅读 · 1 评论 -
Keycloak前端JavaScript、移动端的使用说明
接上文《Keycloak通用接入手册(以Java为例)》,前面所述的,都是针对于服务器端的接入说明。而现代化的前端技术,已经具备了很强大的native处理能力,很幸运,Keycloak已经提供JavaScript Adapter,它可以用于现代化的前端、移动端APP接入,GitHub上可以找到很多 VueJS、ReactJS、React Native的接入例子。下面以 VueJS APP为例,说明如何接入。主要参考的官方教程:javascript-ad...原创 2020-12-17 14:47:45 · 4887 阅读 · 0 评论 -
Keycloak使用说明(Java Spring Boot)
第一步:在keycloak平台上,新建一个client app联系Keycloak管理员,提供 应用的root url和app name即可。建好client之后,可以得到一个 clientsecret(密匙)。第二步:在client project中 加入 keycloak配置配置形如: #空间名,默认所有app和用户都在一个keycloak空间 keycloak.realm=ops #keycloak服务器的auth地址 ke...原创 2020-12-17 14:45:04 · 7297 阅读 · 0 评论 -
不跟风,容器技术的真实优、缺点
传统虚拟机 和 容器云的 真实 优缺点对比:(本文基于的前提:同样是在DevOps自动化程度很高的情况下。很多时候有人说 容器云平台更先进,那是因为他们传统的模式做得不好,如果把传统的模式做好,不见得比容器化平台的自动化程度低。)1、构建和部署方面传统的方案是: a)使用支持虚机部署的DevOps平台,每个节点安装有agent,可以执行命令、上传文件等做很多事(参见阿里的 云效、StarAgent); b)使用jenkins,功能很成熟、强大,可以自定义脚...原创 2020-12-03 14:55:45 · 7543 阅读 · 1 评论 -
中间件选型标准和流程
一、选型流程对于重大组件、中间件的选型,首先要明确短期、中长期的需求,根据需求,列出一些重点考虑的需求特性,根据这些特性,列出一些测试用例,在选型时,用这些测试用例对入围产品进行测试,根据测试结果来评判各个产品的优劣以及与需求的匹配程度。(对应下面的第3、4项)1 初步收集和整理需求,可以参考比较主流的方案和中间件的功能------>相关资料------->2 召集领导、技术骨干、架构师等,讨论需求和使用中间件的必要性--...原创 2020-12-02 15:38:29 · 1708 阅读 · 0 评论 -
Vagrant安装和使用实践
下载安装 vagrant 和 virtualbox 安装没什么说的都选默认就行安装好这两个东西后 virtualbox 就不用管了因为它会随着 vagrant 而启动打开命令行 输入命令 vagrant -v 可以看到vgrant版本。添加vagrant box, 其实就是就是虚拟系统, vagrant box add {url}{url} 是vagrant box 的地址, vagrant box 没有国内源,用vpn到 官方镜像:https://vagrantclo...原创 2020-12-02 09:21:56 · 1012 阅读 · 0 评论 -
Docker容器化CI/CD Pipeline,加快项目编译构建速度的方法
名词解释:所谓“容器化Pipeline”,是指 CI/CD流水线运行在Kubernetes容器云平台上,而非运行在虚拟机或物理机上。加快项目构建在容器化流水线中的构建速度,本质是利用好缓存(或本地仓库),不要让每次编译构建都去拉包。方法一:外挂共享存储卷针对 类似于 Maven(Java)构建的项目(所有项目共享本地仓库),这种方法比较简单有效。以Maven为例,在mvn构建容器中,直接从host或者远程块设备上mount一个目录进去作为Maven的repo...原创 2020-10-09 11:35:37 · 1126 阅读 · 1 评论 -
高速路上换轮胎系列——动态迁移Zookeeper
前面讲了 动态迁移Kafka节点,本篇文章讲Zookeeper的无感知迁移。实际问题:生产上有5个节点的ZK服务器,要换新服务器且IP地址要改变,怎么办才能让数据完整、且应用不受影响?大概的方案为:先给zk扩容,扩到11个节点(原来的5个+新增5个+1个临时节点)。然后再缩容,干掉原来的5个及临时的1个,剩下5个新加的节点。扩节点,两个两个加:(如下步骤,如无特殊说明,每次启停节点后,都要等待2~10分钟直到集群状态稳定)第一步,+2等于7个节点,新增的...原创 2020-10-09 11:29:57 · 282 阅读 · 0 评论 -
Kafka与zk的关系及连接参数bootstrap.server的正确理解
1、我们知道旧版Kafka,用的是zookeeper地址而非bootstrap.servers,那么新版 kafka 消费者、生产者配置为何使用 bootstrap-servers 而不是 zookeeper 服务器地址?解答:Kafka修改这个配置的提案叫做“KIP-500: Replace ZooKeeper with a Self-Managed Metadata Quorum”,该提案一出,大部分人都赞同组件越少越好,并认为这会让部署变得更加容易;当然也有网友担心,移除 Z...原创 2020-10-09 11:14:13 · 18264 阅读 · 4 评论 -
Kubernetes私有容器云平台日志收集方案(最新版2019.12)
有很多的方案备选,下面列出了几种:1、sidecar边车模式,在每一个pod部署一个filebeat sidecar容器(共享empty dir卷进行日志采集)2、应用容器pod内直接部署日志采集agent进行采集;3、打印到console,从宿主机的docker log文件去采集(读取本地文件,不推荐)4、打印到console,通过宿主机的docker log driver去采集(二进制直接输出);5、挂载k8s的flex volume,将日志文件写到这个flex volume目...原创 2020-09-18 17:45:56 · 912 阅读 · 2 评论 -
filebeat使用笔记
filebeat安装命令(for dockerfile rpm) RUN set -eux; \ \ rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch; \ { \ echo '#!/usr/bin/env bash'; \ echo '[elastic-7.x]'; \ echo 'name=El...原创 2020-09-18 17:43:37 · 948 阅读 · 0 评论 -
分布式文件存储MinIO SeaweedFS FastDFS对比总结
首先,看下这几篇文章:总体思路:《分布式文件存储选型考虑点》专题分析:1、SeaweedFS参见我的这篇文章《分布式文件存储SeaweedFS试用对比总结》。2、MinIO参见我的这篇文章《分布式文件存储MinIO试用对比总结》3、FastDFS参见我的这几篇文章《FastDFS的一些缺点(强烈需要注意)》《FastDFS集群部署和使用》4、还有一些我没仔细看过的,简单分析一下比如:Ceph:https:...原创 2020-09-08 10:22:41 · 18523 阅读 · 3 评论 -
为什么要使用统一配置中心
首先给大家举个例子,我的亲身经历,或许大家也深有体会。我曾经做一个项目,这个项目一套代码,卖给了30多个企业客户。也就是说,我们为这30多个企业客户部署的是同一套程序,只是配置不一样而已。所以知道,配置是很重要的:配置是程序的一部分,配置设计得好的话,程序就会非常灵活、易用。把易改变的配置,比如选项、开关、阈值、密码等,从代码中独立出来,从外部去加载。这样做的主要好处有两个,一个是改变配置,不需要重新编译打包应用程序;第二配置可以做到...原创 2020-09-08 10:15:33 · 1493 阅读 · 0 评论 -
关于软件定义数据中心(SDDC)和超融合
先看一下各自的定义:(综合了国外比较权威的解释)1、数据中心的基础资源基础资源,主要包括3大类:计算资源、存储资源、网络资源2、软件定义数据中心(SDDC)软件定义数据中心(SDDC)通常是指虚拟化所有基础结构的数据中心。利用模拟硬件的软件,操作系统和应用程序可以抽象自物理硬件并进行倍增,以形成处理器、内存、I/O 和网络的弹性资源池。软件定义数据中心架构可以分为三个逻辑层:物理层、虚拟化层和管理层。物理层可以由来自不同厂商的商用硬件...原创 2020-09-08 10:09:44 · 4808 阅读 · 0 评论 -
IBM WebSphere MQ基础操作和监控
基础概念:MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。队列最重要的部分,用来存放、取出消息。通道WebSphere® MQ 使用两种不同类型的通道:1、消息通道,它是两个队列管理器之间的单向通信链路。WebSphere MQ 使用消息通道在队列管理器之间传送消息。 要双向发送消息,您必须定义每个方向的通道。2、MQI 通道,它是双向通道,用于将应用程序(MQI 客户机)连接至服务器上的队列管...原创 2020-09-08 10:06:14 · 3447 阅读 · 0 评论 -
统一Portal门户和IAM平台(单点登录、统一用户资源和权限管理)实践
一、背景和目的解决如下问题: 打通所有系统的账户密码,只需要记住一个就行,而且登录一个系统后,打开其他系统不需要再登录。 不需要记住多个系统的地址,甚至不需要在多个系统页面跳来跳去,通过一个门户网站,串通起常用功能。 需求如下: 具备单点登录功能,并且能为第三方应用提供主流的登录认证。 具备用户的基本信息、角色、资源权限等集中管理和控制。 提供统一的集中办公Portal门户网站,在里面无缝链接其他系统的页面和功能。 关键术语:...原创 2020-09-08 10:04:01 · 23435 阅读 · 3 评论 -
分布式文件存储MinIO试用对比总结
介绍就不说了,官方有中文文档:https://docs.min.io/cn说点个人感受。首先,MinIO是兼容Amazon S3的,换句话说,MinIO可以伪装成Amazon S3,你可以用Amazon S3的SDK操作MinIO。MinIO支持多租户,但是却不支持动态扩展。因此,大租户,就单独搭一套MinIO吧。小租户倒是可以共用一套。关于服务发现和动态扩展,作者的讨论如下:(重要)To get a really resilient storage c...原创 2020-09-08 09:32:49 · 6279 阅读 · 0 评论 -
分布式文件存储SeaweedFS试用对比总结
基础概念1、SeaweedFS将磁盘进行了分组分为DataCenters(数据中心、机房)、Racks(机架),Servers 和 Hard Drive,从而保证可用性。2、Replication- 复制多副本这是启动Master节点时设置的参数: ./weedmaster-defaultReplication=001 代表在相同机架的不同服务器上复制一个副本(共2两份)。为什么是001,官方的定义如下: 000no replication...原创 2020-09-08 09:22:45 · 4549 阅读 · 0 评论 -
FastDFS的一些缺点(强烈需要注意)
数据安全性1、写一份即成功:从源storage写完文件至同步到组内其他storage的时间窗口内,一旦源storage出现故障,就可能导致用户数据丢失,而数据的丢失对存储系统来说通常是不可接受的。2、缺乏自动化恢复机制:当storage的某块磁盘故障时,只能换存磁盘,然后手动恢复数据;由于按机器备份,似乎也不可能有自动化恢复机制,除非有预先准备好的热备磁盘,缺乏自动化恢复机制会增加系统运维工作。3、数据恢复效率低:恢复数据时,只能从group内其他的storage读取,同...原创 2020-08-31 22:34:04 · 5981 阅读 · 0 评论 -
分布式文件存储选型考虑点
目前市面上有的开源产品包括: GridFS(MongoDB的一部分,https://docs.mongodb.com/manual/core/gridfs/) FastDFS(https://github.com/happyfish100/fastdfs) TFS(https://github.com/alibaba/tfs) SeaweedFS(https://github.com/chrislusf/seaweedfs) HBASE(HDFS) ...原创 2020-08-31 22:27:11 · 867 阅读 · 0 评论 -
FastDFS集群部署和使用
Installation参考文档:https://github.com/happyfish100/fastdfs/wiki(官网 Wiki)https://www.cnblogs.com/cnmenglang/p/6731209.htmlhttp://blog.youkuaiyun.com/xyang81/article/details/52928230集群服务器规划(示例):跟踪服务器1【主机】(Tracker Server):192.100.139.121跟踪服务...原创 2020-08-31 22:24:41 · 961 阅读 · 0 评论 -
Zookeeper原理和业界实践
PS:ZK基础参见我的另一篇文章:《ZooKeeper简介、基础知识和主要配置》使用的协议:ZAB(zookeeper原子广播),为paxos的一种实现。Zookeeper提供了三种选择策略: LeaderElection AuthFastLeaderElection FastLeaderElection这里仅介绍默认的算法:FastLeaderElection。基础概念 Sid:服务器id; Zxid:服务器的事务id...原创 2020-08-31 22:20:27 · 172 阅读 · 0 评论 -
关于阿里Java热加载框架jarslink的应用和选型研究
本文针对 jarslink v1.0+(jarslink官方地址:https://github.com/alibaba/jarslink)一、本身设计和功能问题(不成熟,功能弱):1、jarslink自定义的API,无法和swagger等API文档自动生成工具结合;2、传统的统一配置中心都是基于应用级别的隔离,无法针对module来隔离配置,和jarslink结合不好;3、不能方便的支持多数据源和多redis源;4、缺少各module之间的日志隔离规范,所有module的...原创 2020-08-31 22:16:38 · 787 阅读 · 2 评论 -
FastDFS问题分析和总结
故障现象 描述:1、应用方面:Java客户端,上传身份证图片和视频失败,有几次,报错时间大概是从 2018 09-27 22:27:34.815。客户端错误信息:2、服务器方面:查看日志,发现上传的 那个storage节点 报错了,报错信息为 : 无法rename/data/xxxx01.tmp文件到/data/10/00/xxxxxxx.mp4路径 无法rename/data/xxxx02.tmp文件到/data/10/00...原创 2020-08-30 16:20:42 · 2621 阅读 · 0 评论 -
Kubernetes开发环境一键安装教程
鉴于之前玩熟了Vagrant,就想到使用Vagrant这个神器来一键搭建Kubernetes及其必要附属组件,不出所料,果然已经有高人封装好了Vagrant Kubernetes的安装文件(相关配置和脚本),就是这个项目:https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster,在这里,简单总结一下。Kubernetes 需要一个至少包含三个节点的分布式系统。IP Hostname Componets 172...原创 2020-08-29 16:24:05 · 1319 阅读 · 0 评论 -
中间件监控和告警方案
一、综述中间件故障,可以分为以下几个方面:1、网络环境问题;2、服务器资源问题(CPU、内存、磁盘);3、中间件运行过程中,遇到自身偶然的bug。中间件故障,很多时候是由于 网络或者服务器资源问题 导致,所以首先要监控好网络和服务器。中间件一般自身都没有自我监控的机制,但是都会有日志记录,可以通过 日志 和 调用方 来监控中间件是否正常。综上分析,中间件监控,可以从以下几个方面入手:1、通过日志监控中间件的状态。2、通过调用方监控中间件的状态。3、监...原创 2020-08-25 14:04:07 · 3161 阅读 · 0 评论 -
dubbo分布式服务化框架的使用经验
初学者可以看看如下文章:http://shiyanjun.cn/archives/1075.htmlDubbo获取不到IP的问题如dubbo官方文档所述:http://dubbo.io/Host+Binding-zh.htm缺省主机IP查找顺序: 通过LocalHost.getLocalHost()获取本机地址。 如果是12原创 2016-12-31 21:59:51 · 2226 阅读 · 0 评论 -
ZooKeeper简介、设计原理、主要配置及集群
一、Zookeeper的一些概念和理解1、数据模型如上图所示,ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每个ZNode都可以通过其路径唯一标识,比如上图中第三层的第一个ZNode, 它的路径是/app1/c1。在每个ZNode上可存储少量数据(默认是1M, 可以通过配置修改, 通常不建议在ZNode上存储大量的数据),原创 2016-12-31 22:04:10 · 1251 阅读 · 0 评论 -
分布式协调服务ZooKeeper的典型应用
Zookeeper典型应用参考官方文档:http://zookeeper.apache.org/doc/current/recipes.htmlOut of the Box Applications: Name Service, Configuration, Group MembershipBarriersDouble Barriers原创 2016-12-31 22:06:41 · 821 阅读 · 0 评论