Deploy

SpringBoot中使用dubbo实现RPC调用

房东的猫 提交于 2020-08-10 16:38:48
Dubbo(来自于阿里巴巴) Dubbo是一个分布式服务框架,致力于提供高性能和透明化的PRC远程调用服务调用方案。 Dubbo的的特点 通过spring配置的方式即可完成服务化,对于应用无入侵。(SpringCloud有一定的入侵) 通过maven的install &deploy命令把interface和Model层发布到仓库中,服务调用方只需要依赖interface和model层即可。 通过zookeeper设置达到注册服务和心跳检测,通过gateWay前置网关(Clound使用Zuul实现负载均衡将请求转向Eureka服务器)隔绝外部直接调用原子服务的风险 SpringBoot中使用Dubbo 引入依赖 < ! -- dubbo依赖 -- > < dependency > < groupId > com . alibaba < / groupId > < artifactId > dubbo < / artifactId > < version > 2.6 .6 < / version > < / dependency > < dependency > < groupId > org . apache . curator < / groupId > < artifactId > curator - framework < / artifactId > < version >

开发函数计算的正确姿势——OCR 服务

血红的双手。 提交于 2020-08-10 14:11:03
简介 首先介绍下在本文出现的几个比较重要的概念: OCR(光学字符识别) : 光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。亦即将图像中的文字进行识别,并以文本的形式返回。 Tesserocr : Tesserocr 是 python 的一个 OCR 识别库,但其实是对 tesseract 做的一层 python API 封装,所以它的核心是 tesseract。 函数计算(Function Compute) : 函数计算 是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考 。 Funcrfat : Funcraft 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档 参考 。 备注: 本文介绍的技巧需要 Funcraft 版本大于等于 3.6.8 。 本文介绍将一个预制的 tesserocr 示例快速部署到函数计算平台。该示例借助于 Funcraft

K8S(09)交付实战-通过流水线构建dubbo服务

天大地大妈咪最大 提交于 2020-08-10 12:31:11
k8s交付实战-流水线构建dubbo服务 目录 k8s交付实战-流水线构建dubbo服务 1 jenkins流水线准备工作 1.1 参数构建要点 1.2 创建流水线 1.2.1 创建流水线 1.2.2 添加10个构建参数 1.2.3 添加完成效果如下: 1.2.4 添加pipiline代码 1.3 用流水线完成dubbo-service的构建 1.3.1 选择参数化构建 1.3.2 填写完成效果如下 1.3.3 执行构建并检查 2 交付dubbo-service到k8s 2.1 准备资源清单 2.1.1 创建depeloy清单 2.2 创建k8s资源 2.2.1 创建app名称空间 2.2.2 创建secret资源 2.2.3 应用资源清单 3 交付dubbo-monitor监控服务到k8s 3.1 制作dobbo-monitor镜像 3.1.1 下载源码 3.1.2 修改配置文件: 3.1.3 优化Dockerfile启动脚本 3.1.4 构建并上传 3.2 创建资源配置清单 3.2.1 准备目录 3.2.2 创建deploy资源文件 3.2.3 创建service资源文件 3.2.4 创建ingress资源文件 3.3 创建dobbo-miniotr服务 3.3.1 应用资源配置清单 3.3.2 添加dns解析 3.3.3 访问monitor的web页面 4 构建dubbo

CODING DevOps + Nginx-ingress 实现自动化灰度发布

为君一笑 提交于 2020-08-10 10:05:24
作者:王炜,CODING DevOps 后端开发工程师,拥有多年研发经验,云原生、DevOps、Kubernetes 资深爱好者,Servicemesher 服务网格中文社区成员。获得 Kubernetes CKA、CKAD 认证。 前言 在 Kubernetes 上的应用实现灰度发布,最简单的方案是引入官方的 Nginx-ingress 来实现。 我们通过部署两套 deployment 和 services,分别代表灰度环境和生产环境,通过负载均衡算法,实现对两套环境的按照灰度比例进行分流,进而实现灰度发布。 通常的做法是当项目打包新镜像后,通过修改 yaml 文件的镜像版本,执行 kubectl apply 的方式来更新服务。如果发布流程还需要进行灰度发布,那么可以通过调整两套服务的配置文件权重来控制灰度发布,这种方式离不开人工执行。如果项目数量多,灰度的时间跨度过长,人为误操作的概率将大大增加,过于依赖于人工执行,这对于 DevOps 工程实践是不能忍受的。 那么,有没有一种方式能够实现无需人工干预的自动化灰度呢?例如在代码更新后,自动发布到预发布和灰度环境,并在一天的时间内自动将灰度比例从 10% 权重提高到 100%,且能够随时终止,灰度通过后自动发布到生产环境? 答案是肯定的,利用 CODING DevOps 就能够满足此类需求。 Nginx-ingress 架构和原理

Serverless 技术在格灵深瞳的落地实践

Deadly 提交于 2020-08-10 09:33:22
格灵深瞳是一家全国领先的人工智能物联网科技企业。专注于把先进的人工智能科技转化为具备低成本、大规模部署能力的产品和服务,并深度结合应用场景,为用户提供高性能、 可靠实用的智慧解决方案。目前,在智慧安防、智能零售、智慧银行和新能源领域,为遍布全国和全世界的客户提供包含智能传感器、 智能识别、智能云计算和服务机器人的综合智能解决方案和服务。 随着业务的快速增长,需求迭代、资源投入、运维压力也随之变的越来越紧迫。怎样提升研发效能、保障业务快速上线,怎样提升资源利用效率、降低成本开销,怎样减少运维的压力、又能保障系统的可靠运转,逐渐成为我们的重点诉求。在此基础上,我们开始考虑引入新的技术,并做了一些调研,最终锁定了 Serverless 技术。 Serverless 想必大家或多或少都有接触,也是最近云计算领域非常火的一个技术方向,核心是帮用户屏蔽了底层的资源、提供按需请求、按需使用、按需付费的一种全新服务,像腾讯云的云函数 SCF 和对象存储等都是 Serverless 化的服务。在这里也和大家分享下,我们业务和 Serverless 是如何结合的。 我们考虑使用 Serverless 技术方案是经过一些调研,结合我们自己的业务需求最终决定的,主要有以下几点: 我们服务的客户与场景流量潮汐现象很明显,Serverless 自动弹性伸缩能力可以为我们解决这个问题,比起普通服务器

从企业微信机器人到小爱同学,用 Serverless 实现生活智能化!

早过忘川 提交于 2020-08-10 09:05:10
通过定时触发器,可以简单快速地定制一个企业微信机器人。我们可以用它来实现喝水、吃饭提醒等小功能,还能实现定时推送新闻、天气,甚至是监控告警的小功能。 使用企业微信机器人 在企业微信中,选择添加机器人: 之后,我们可以根据文档进行企业微信机器人的基础功能定制: 以下是用 curl 工具往群组推送文本消息的示例(注意要将 url 替换成机器人的 webhook 地址,content 必须是 utf8 编码): curl '企业微信机器人地址' \ -H 'Content-Type: application/json' \ -d ' { "msgtype": "text", "text": { "content": "hello world" } }' 通过 Python 语言实现: url = "" data = { "msgtype": "markdown", "markdown": { "content": "hello world", } } data = json.dumps(data).encode("utf-8") req_attr = urllib.request.Request(url, data) resp_attr = urllib.request.urlopen(req_attr) return_msg = resp_attr.read().decode("utf

Spark+Zookeeper搭建高可用Spark集群

末鹿安然 提交于 2020-08-10 06:40:14
Spark三种分布式部署方式比较 目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN, 详情参考 。 Spark standalone模式分布式部署 环境介绍 主机名 应用 tvm11 zookeeper tvm12 zookeeper tvm13 zookeeper、spark(master)、spark(slave)、Scala tvm14 spark(backup)、spark(slave)、Scala tvm15 spark(slave)、Scala 说明 依赖scala: Note that support for Java 7, Python 2.6 and old Hadoop versions before 2.6.5 were removed as of Spark 2.2.0. Support for Scala 2.10 was removed as of 2.3.0. Support for Scala 2.11 is deprecated as of Spark 2.4.1 and will be removed in Spark 3.0. zookeeper: Master结点存在单点故障,所以要借助zookeeper,至少启动两台Master结点来实现高可用

ERROR: for pigfarm-app Cannot start service pigfarm: OCI runtime create failed: container_linux.g...

自闭症网瘾萝莉.ら 提交于 2020-08-09 12:55:13
如下启动报错,就是驱动掉了引发的问题。 ubuntu@yufeichang1 : /data/pigfarm/packages/pigfarm-deploy-packages $ sudo docker-compose up -d Creating nginx ... done Creating pigfarm-app ... error ERROR: for pigfarm-app Cannot start service pigfarm: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"process_linux.go:385: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --utility -

Maven知识点--Maven基础

家住魔仙堡 提交于 2020-08-09 12:50:46
一、Maven常用命令 1.mvn install 用于把项目安装到本地的仓库中,提供给别的项目做引用或作自有项目。 2.mvn clean 与install起着反作用能力,当你发现项目install有问题的时候,可以先clean(清除),然后重新install。 3.mvn archetype 可以用这个命令,就是创建一个maven项目。 4.mvn deploy 一般情况下,我们做maven项目,都会有私库的存在,就是自己在服务器上建自己的,存放jar包的仓库,这个命令就是用来把我们install好的包发布(其实就是网络传输)上去。 5.mvn site 我们一般在一个项目的时候,都是有一定信息的,这个命令可以帮我们生成html形式的项目信息。 6.mvn compile 编译maven项目的源代码 7.mvn test-compile 编译的是测试包里面的源代码 8.mvn test 测试所有的单元测试 9.mvn package 这是一个集成过程,它的执行顺序是先clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段,最后是成一个打成jar包。 10.mvn eclipse 生成一个eclipse可直接导入的文件 11.mvnjetty:run与mvntomcat:run

发布到 maven 以及 github 仓库

只愿长相守 提交于 2020-08-09 11:27:24
发布到中央仓库 settings.xml <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- <mirrors> --> <!-- <mirror> --> <!-- <id>google-maven-central</id> --> <!-- <name>Google Maven Central</name> --> <!-- <url>http://repo1.maven.org/maven2</url> --> <!-- <mirrorOf>central</mirrorOf> --> <!-- </mirror> --> <!-- </mirrors> --> <mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name