首页 文章 精选 留言 我的

精选列表

搜索[搭建],共10000篇文章
优秀的个人博客,低调大师

在阿里云容器服务上,轻松搭建Concourse CI

Concourse CI是一款CI/CD工具,它的魅力在于极简设计,被广泛应用于Cloud Foundry各个模块的CI/CD。阿里云也推出了CI工具CodePipeline,开箱即用,推荐试用。 Concourse CI官方提供了标准的Docker镜像,在阿里云容器服务部署一套 Concourse CI应用是很轻松的一件事儿。 准备Docker集群 首先,在阿里云容器服务控制台创建一个集群。简单起见,这里节点数为1,网络类型为经典网络。 集群创建过程大约几分钟,成功后的状态如下图: 然后需要开启8080端口的入网权限: 接下来,SSH到节点上,创建容器目录,脚本如下: -p keys/web keys/workerssh-keygen -t rsa -f ./keys/web/tsa_host_key -N ''ssh-keygen -t r

优秀的个人博客,低调大师

使用 Node.js 搭建一个 API 网关

原文地址:Building an API Gateway using Node.js 外部客户端访问微服务架构中的服务时,服务端会对认证和传输有一些常见的要求。API 网关提供共享层来处理服务协议之间的差异,并满足特定客户端(如桌面浏览器、移动设备和老系统)的要求。 微服务和消费者 微服务是面向服务的架构,团队可以独立设计、开发和发布应用程序。它允许在系统各个层面上的技术多样性,团队可以在给定的技术难题中使用最佳语言、数据库、协议和传输层,从而受益。例如,一个团队可以使用 HTTP REST 上的 JSON,而另一个团队可以使用 HTTP/2 上的 gRPC 或 RabbitMQ 等消息代理。 在某些情况下使用不同的数据序列化和协议可能是强大的,但要使用我们的产品的客户可能有不同的需求。该问题也可能发生在具有同质技术栈的系统中,因为客户可以从桌面浏览器通过移动设备和游戏机到遗留系统。一个客户可能期望 XML 格式,而另一个客户可能希望 JSON 。在许多情况下,您需要同时支持它们。 当客户想要使用您的微服务时,您可以面对的另一个挑战来自于通用的共享逻辑(如身份验证),因为您不想在所有服务中重新实现相同的事情。 总结:我们不想在我们的微服务架构中实现我们的内部服务,以支持多个客户端并可以重复使用相同的逻辑。这就是 API 网关出现的原因,其作为共享层来处理服务协议之间的差异并满足特定客户端的要求。 什么是 API 网关? API 网关是微服务架构中的一种服务,它为客户端提供共享层和 API,以便与内部服务进行通信。API 网关可以进行路由请求、转换协议、聚合数据以及实现共享逻辑,如认证和速率限制器。 您可以将 API 网关视为我们的微服务世界的入口点。 我们的系统可以有一个或多个 API 网关,具体取决于客户的需求。例如,我们可以为桌面浏览器、移动应用程序和公共 API 提供单独的网关。 API 网关作为微服务的切入点 Node.js 用于前端团队的 API 网关 由于 API 网关为客户端应用程序(如浏览器)提供了功能,它可以由负责开发前端应用程序的团队实施和管理。 这也意味着用哪种语言实现 API Gateway 应由负责特定客户的团队选择。由于 JavaScript 是开发浏览器应用程序的主要语言,即使您的微服务架构以不同的语言开发,Node.js 也可以成为实现 API 网关的绝佳选择。 Netflix 成功地使用 Node.js API 网关及其 Java 后端来支持广泛的客户端 - 了解更多关于它们的方法阅读 The "Paved Road" PaaS for Microservices at Netflix 这篇文章 Netflix 处理不同客户端的方法, 资源 API 网关功能 我们之前讨论过,可以将通用共享逻辑放入您的 API 网关,本节将介绍最常见的网关职责。 路由和版本控制 我们将 API 网关定义为您的微服务的入口点。在您的网关服务中,您可以指定从客户端路由到特定服务的路由请求。您甚至可以通过路由处理版本或更改后端接口,而公开的接口可以保持不变。您还可以在您的 API 网关中定义与多个服务配合的新端点。 API 网关作为微服务入口点 网关设计的升级 API 网关方法也可以帮助您分解您的整体应用程序。在大多数情况下,在微服务端重构一个系统不是一个好主意也是不可能的,因为我们需要在重构期间为业务发送新的以及原有的功能。 在这种情况下,我们可以将代理或 API 网关置于我们的整体应用程序之前,将新功能作为微服务实现,并将新端点路由到新服务,同时通过原有的路由服务旧端点。这样以后,我们也可以通过将原有功能转变为新服务来分解整体。 随着网关设计的升级,我们可以实现整体架构到微型服务的平滑过渡 API 网关设计的升级 认证 大多数微服务基础设施需要进行身份验证。将共享逻辑(如身份验证)添加到 API 网关可以帮助您保持您的服务的体积变小以及可以集中管理域。 在微服务架构中,您可以通过网络配置将您的服务保护在 DMZ (保护区)中,并通过 API 网关向客户公开。该网关还可以处理多个身份验证方法。例如,您可以同时支持基于 cookie 和 token 的身份验证。 具有认证功能的 API 网关 数据汇总 在微服务架构中,可能客户端所需要的数据的聚合级别不同,比如对在各种微服务中产生的非规范化数据实体。在这种情况下,我们可以使用我们的 API 网关来解决这些依赖关系并从多个服务收集数据。 在下图中,您可以看到 API 网关如何将用户和信用信息作为一个数据返回给客户端。请注意,这些数据由不同的微服务所拥有和管理。 序列化格式转换 我们需要支持客户端不同的数据序列化格式这样子的需求可能会发生。 想象一下我们的微服务使用 JSON 的情况,但我们的客户只能使用 XML APIs。在这种情况下,我们可以在 API 网关中把 JSON 转换为 XML,而不是在所有的微服务器中分别进行实现。 协议转换 微服务架构允许多通道协议传输从而获取多种技术的优势。然而,大多数客户端只支持一个协议。在这种情况下,我们需要转换客户端的服务协议。 API 网关还可以处理客户端和微服务器之间的协议转换。 在下一张图片中,您可以看到客户端希望通过 HTTP REST 进行的所有通信,而内部的微服务使用 gRPC 和 GraphQL 。 速率限制和缓存 在前面的例子中,您可以看到我们可以把通用的共享逻辑(如身份验证)放在 API 网关中。除了身份验证之外,您还可以在 API 网关中实现速率限制,缓存以及各种可靠性功能。 超负荷的 API 网关 在实现您的 API 网关时,您应避免将非通用逻辑(如特定数据转换)放入您的网关。 服务应该始终拥有他们的数据域的全部所有权。构建一个超负荷的 API 网关,让微服务团队来控制,这违背了微服务的理念。 这就是为什么你应该关注你的 API 网关中的数据聚合 - 你应该避免它有大量逻辑甚至可以包含特定的数据转换或规则处理逻辑。 始终为您的 API 网关定义明确的责任,并且只包括其中的通用共享逻辑。 Node.js API 网关 当您希望在 API 网关中执行简单的操作,比如将请求路由到特定服务,您可以使用像 nginx 这样的反向代理。但在某些时候,您可能需要实现一般代理不支持的逻辑。在这种情况下,您可以在 Node.js 中实现自己的 API 网关。 在 Node.js 中,您可以使用 http-proxy 软件包简单地代理对特定服务的请求,也可以使用更多丰富功能的 express-gateway 来创建 API 网关。 在我们的第一个 API 网关示例中,我们在将代码委托给 user 服务之前验证请求。 const express = require('express') const httpProxy = require('express-http-proxy') const app = express() const userServiceProxy = httpProxy('https://user-service') // 身份认证 app.use((req, res, next) => { // TODO: 身份认证逻辑 next() }) // 代理请求 app.get('/users/:userId', (req, res, next) => { userServiceProxy(req, res, next) }) 另一种示例可能是在您的 API 网关中发出新的请求,并将响应返回给客户端: const express = require('express') const request = require('request-promise-native') const app = express() // 解决: GET /users/me app.get('/users/me', async (req, res) => { const userId = req.session.userId const uri = `https://user-service/users/${userId}` const user = await request(uri) res.json(user) }) Node.js API 网关总结 API 网关提供了一个共享层,以通过微服务架构来满足客户需求。它有助于保持您的服务小而专注。您可以将不同的通用逻辑放入您的 API 网关,但是您应该避免 API 网关的过度使用,因为很多逻辑可以从服务团队中获得控制。 作者:牧云云 出处:http://www.cnblogs.com/MuYunyun/" 本文版权归作者和博客园所有,欢迎转载,转载请标明出处。 如果您觉得本篇博文对您有所收获,请点击右下角的 [推荐],谢谢!

优秀的个人博客,低调大师

云服务器 ECS 搭建WordPress网站:购买域名

购买域名 您可以给自己的网站设定一个单独的域名。您的用户可以使用易记的域名访问您的网站,而不需要使用复杂的 IP 地址。 建议通过 阿里云购买域名。 操作步骤 1.在购买域名页面,搜索想用的域名,如尚未被注册,则可以购买。选择要购买的域名及期限,然后结算。 2.在确认订单的时候,需要选择域名的所有者是个人还是企业。为方便操作,建议暂时先选择个人,以后可以在会员中心进行修改。本文档将以个人用户为例。 3.如果这是您首次购买域名,需要创建消息模板。 4.比较便捷的方式是选择用会员信息自动填写。请务必填写真实信息。 5.完成后需要进行实名认证。上传个人身份证正面扫描件。审核一般需要 3 ~ 5 个工作日。 下一步 备案 原文链接

优秀的个人博客,低调大师

云服务器 ECS 搭建WordPress网站:安装 WordPress

安装 WordPress 请先下载最新版的 WordPress,网址: https://cn.wordpress.org/ 。也可直接到阿里云市场选择WordPress镜像完成一键部署,点击查看。 操作步骤 1.将下载的安装包解压缩。 2.打开 Xshell,然后打开 Xftp,将解压缩后的文件上传到 Linux 实例中的 alidata/www/phpwind 目录下。如果找不到 alidata 文件夹,双击 名称 列的 … 文件夹图标,到上一级目录即可找到。 3.上传完成后,在浏览器输入 Linux 实例的公网 IP 地址,进入到 WordPress 的安装页面。单击 现在就开始。 4.配置数据库信息。然后单击 提交。 数据库:填写在 phpMyAdmin 中创建的数据库的名称。 用户名:默认是 root。 密码:输入您的密码。 主机:可以使用默

优秀的个人博客,低调大师

零基础搭建Hadoop大数据处理-初识

在互联网的世界中数据都是以TB、PB的数量级来增加的,特别是像BAT光每天的日志文件一个盘都不够,更何况是还要基于这些数据进行分析挖掘,更甚者还要实时进行数据分析,学习,如双十一淘宝的交易量的实时展示。 大数据什么叫大?4个特征: 体量化 Volume,就是量大。 多样化 Variety,可能是结构型的数据,也可能是非结构行的文本,图片,视频,语音,日志,邮件等 快速化 Velocity,产生快,处理也需要快。 价值密度低 Value,数据量大,但单个数据没什么意义,需要宏观的统计体现其隐藏的价值。 可以看出想只要一台强大的服务器来实时处理这种体量的数据那是不可能的,而且成本昂贵,代价相当大,普通的关系型数据库也随着数据量的增大其处理时间也随之增加,那客户是不可能忍受的,所以我们需要Hadoop来解决此问题。 优点: Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点: 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。 低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。 Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。 Hadoop在各应用中是最底层,最基础的组件,所以其重要性不言而喻。 框架结构 Hadoop主要由HDFS ( 分布式文件系统)和MapReduce (并行计算框架)组成。 Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。 HDFS 对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。 存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。 单节点物理结构 主从结构 主节点,只有一个: namenode 从节点,有很多个: datanodes namenode负责:接收用户操作请求 、维护文件系统的目录结构、管理文件与block之间关系,block与datanode之间关系 NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。 datanode负责:存储文件文件被分成block存储在磁盘上、为保证数据安全,文件会有多个副本 MapReduce MapReduce是处理大量半结构化数据集合的编程模型。编程模型是一种处理并结构化特定问题的方式。例如,在一个关系数据库中,使用一种集合语言执行查询,如SQL。告诉语言想要的结果,并将它提交给系统来计算出如何产生计算。还可以用更传统的语言(C++,Java),一步步地来解决问题。这是两种不同的编程模型,MapReduce就是另外一种。 MapReduce和Hadoop是相互独立的,实际上又能相互配合工作得很好。 主从结构 主节点,只有一个: JobTracker 从节点,有很多个: TaskTrackers JobTracker负责:接收客户提交的计算任务、把计算任务分给TaskTrackers执行、监控TaskTracker的执行情况 TaskTrackers负责:执行JobTracker分配的计算任务 Hadoop能做什么? 大数据量存储:分布式存储 日志处理: Hadoop擅长这个 海量计算: 并行计算 ETL:数据抽取到oracle、mysql、DB2、mongdb及主流数据库 使用HBase做数据分析: 用扩展性应对大量的写操作—Facebook构建了基于HBase的实时数据分析系统 机器学习: 比如Apache Mahout项目 搜索引擎:hadoop + lucene实现 数据挖掘:目前比较流行的广告推荐 大量地从文件中顺序读。HDFS对顺序读进行了优化,代价是对于随机的访问负载较高。 数据支持一次写入,多次读取。对于已经形成的数据的更新不支持。 数据不进行本地缓存(文件很大,且顺序读没有局部性) 任何一台服务器都有可能失效,需要通过大量的数据复制使得性能不会受到大的影响。 用户细分特征建模 个性化广告推荐 智能仪器推荐 扩展 实际应用: Hadoop+HBase建立NoSQL分布式数据库应用 Flume+Hadoop+Hive建立离线日志分析系统 Flume+Logstash+Kafka+Spark Streaming进行实时日志处理分析 酷狗音乐的大数据平台 京东的智能供应链预测系统 Hadoop的学习不仅仅是学习Hadoop,还要学习Linux,网络知识,Java、还有数据结构和算法等等,所以万里长征才开始第一步,希望Hadoop学习不是从了解到放弃。 本文作者:欢醉 来源:51CTO

优秀的个人博客,低调大师

零基础搭建Hadoop大数据处理-环境

由于Hadoop需要运行在Linux环境中,而且是分布式的,因此个人学习只能装虚拟机,本文都以VMware Workstation为准,安装CentOS7,具体的安装此处不作过多介绍,只作需要用到的知识介绍。 VMware的安装,装好一个虚拟机后利用复制虚拟机的方式创建后面几个虚拟机,省时省力,需要注意的是需要修改每个虚拟机的IP与主机名。 所有虚拟机采用NAT模式上网,而且要保证与物理主机的IP互相能访问。 需要注意的几个问题。nat如果上网首先需要查看物理机(pc机)这个服务器已经启动。上网的原理:流量是走的物理网卡,但是它的ip,却是和物理机没有关系的。也就是说,无论你怎么更换网络环境,你的虚拟机都不需要做改变。这就是它的优点。 首先在安装VMware 之后,我们会看到多了两个网卡 这个如果经过网络配置的折磨,应该能找到着两个网卡:vmnet1和vmnet8,这里讲的是vmnet8。 重点看右侧第三图你会看到ip地址,这个ip地址,因个人而异,也就是说不同网络,不同环境,这个ip变化的概率是很大的。可能是192.168.0.1等等。这里也相当于我们编程的一个变量,这里是需要你根据你的环境来赋值的,建议vmnet1到vmnet8分别设置192.168.10.1到192.168.80.1,好作区分。 上面我们通过看到的虚拟机网卡的ip,为了避免混肴,上面的虚拟网卡和本地网络适配器处于同一界面。如下图: 而下面则是在打开虚拟机之后,通过菜单弹出 弹出之后,我们在看一下虚拟机的(交换机)vmnet8. 可以看到vmnet8子网ip和虚拟机网卡是出于同一个网段的。 同时在右侧net设置界面,我们可以看到网关为:192.168.106.2,改成192.168.80.2 虚拟机的设置会用到。 Linux基础知识 Linux的学习也是一个过程,因为可能你连最简单的开机和关机命令都不会,更不要谈配置网络。这里面给大家提供刚开始学习所查阅的资料和经验总结。 首先我们需要使用一些命令,进行网络配置,但是在网络配置中,这里面又必须懂得虚拟机的一些知识,所以前面的虚拟机知识需要掌握扎实一些。 在此注意CentOS7与CentOS6的命令有些不同,会一些常用命令是必备,每次开机或启动解压安装授权都是最基本的知识,其它的可以暂时不用学。 CentOS中安装java环境 下载对应32或64位jdk,设置好JDK环境变量PATH,具体的配置可自行Google。 环境准备 修改机器名,每个系统中都要修改成这样。 打开终端,切换到root用户下修改机器名称。 $sudosu $vim/etc/sysconfig/network 在其中添加“HOSTNAME=H32” 添加每个服务器IP对应的机器名 三个ip地址都添加到各自的/etc/hosts文件中 每个系统中都要修改成这样 #编辑hosts vim/etc/hosts 关闭SELinux #编辑SELinux配置文件 vim/etc/selinux/config #改状态 SELINUX=disabled SSH设置 进入H30,查看ssh是否安装,如果有,继续,没有安装下。 rpm-qa|grepssh 时间服务器安装 这里需要安装时间服务器,其他的服务器通过这个来进行多机器时间的同步,分布式部署时机器时间不一致会导致数据错误或组件内通讯错误。 安装httpd服务 httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。 安装yum-utils yum install yum-utils 用于在线yum安装 它是基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。(需要机器能访问外网) 准备资源和环境 下载Centos 7.2 的iso安装镜像,jdk1.8 for Linux压缩包,hadoop2.7.3压缩包(本来用hadoop3,发现后面不兼容hive的最新版本) Java基础知识 由于Hadoop框架源码都是以java来写,因此最好都以java作为开发的最佳语言,虽然说有些用C#做了封装,但性能已大打折扣。(这就是为什么说Java的学大数据有很大的优势,其它语言的还需要重新学习Java) Eclipse IDE使用 Linux和Windows下源码编译技术 还有最重要的是你的网速要好,因为安装过程中会下载依赖包,网不好会卡到你怀疑人生。 最后还需要有耐心,每台机子的环境都不一样,而且每个人下载的包的版本也有可能不一样 会导致各种问题,此时就需要耐心的去看日志,不停的尝试和仔细的对比安装步骤,可能就是少了个变量 或大小写错误或是要重启。 环境准备就这么多,下一章开始讲如何安装Hadoop集群。 本文作者:欢醉 来源:51CTO

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册