grpc

云原生时代,应用架构将如何演进?

怎甘沉沦 提交于 2020-11-03 14:26:10
简介: 如何借助云原生技术来提升交付速度?云原生时代背景下,研发的关注点又会有哪些转变?阿里云高级技术专家许晓斌通过本文分享从 IaaS 上云时代到 PaaS 上云时代的应用架构演进方向,以及云原生技术与应用架构演进的关系。 作者 | 许晓斌 阿里云高级技术专家 导读 :如何借助云原生技术来提升交付速度?云原生时代背景下,研发的关注点又会有哪些转变?阿里云高级技术专家许晓斌通过本文分享从 IaaS 上云时代到 PaaS 上云时代的应用架构演进方向,以及云原生技术与应用架构演进的关系。 云原生已经进入了 PaaS 上云为主的阶段 阿里巴巴已经经历了 IaaS 上云的阶段,迈进到了 PaaS 上云的时代。在去年的“双11”,阿里巴巴就已经实现了电商核心系统的全面上云,这里的上云主要是在 IaaS 层。所谓 IaaS 主要就是对计算、网络、存储的虚拟化,经过了这个阶段,阿里巴巴就进入了 PaaS 上云的阶段。在 PaaS 上云这个阶段就需要使用更多的云产品,包括中间件、存储、缓存甚至是应用托管平台等。 IaaS 阶段和 PaaS 阶段其实存在很大的差别。在 IaaS 阶段,对于应用研发来说,所关心的往往就是基础设施和资源,通俗来讲就是虚拟机或者容器等,这些对应用架构几乎没有任何侵入。但是在 PaaS 上云阶段,当你使用云产品,比如云 Redis、云 RDS、云 OSS、云

Grpc&&protocol buffer结合提供grpc服务

强颜欢笑 提交于 2020-11-03 11:03:08
Grpc&&protocol buffer 关于下载:首先下载一个protobuf 对于mac系统就 brew install protobuf 就可以了。然后可以 protoc --version 看下安装的版本号,默认按最新版。 如果想手动按就去官网下载 https://github.com/protocolbuffers/protobuf/releases 下载go语言的proto插件 protoc -h 看到没有 --go_out 就没法生成go的pb.proto代码,所以需要下载 go的插件-----执行下面命令,从源端下载 go get -u -v github.com/golang/protobuf/protoc-gen-go 下载grpc go get -u google.golang.org/grpc 如果用go module的话 ,如下引入,可以改成想要的版本 require ( google.golang.org/grpc v1.33.1 google.golang.org/protobuf v1.25.0 ) ###根据proto生成 pb.go 先展示一下目录结构 $ tree . ├── README.md ├── client.go ├── db │ └── mongo │ └── pool.go ├── go.mod ├── go.sum ├──

常见面试题之缓存雪崩、缓存穿透、缓存击穿

吃可爱长大的小学妹 提交于 2020-11-03 03:35:49
前言 ❝ Hello,everybody,我是asong,今天与大家一起来聊一聊面试中几个常见的缓存问题。为什么会突然想做一篇这个文章呢,今天翻了一下我当初准备面试时整理的一些资料,发现缓存在面试中占比还是很高的,当初为了面试也是背了好久的,不过因为都是背的,现在也有点忘了,今天就想着好好整理一下这一部分,好好记录一下。因为自己能力有限,这一篇主讲通俗易懂,不涉及太难的缓存使用场景。好啦,我们开始吧。 ❞ 缓存应用 缓存在我们平常的项目中多多少少都会使用到,缓存使用的使用场景还是比较多的,缓存是分布式系统中的重要组件,主要解决高并发、大数据场景下,热点数据访问的性能问题。提高性能的数据快速访问。一提到缓存,这些是我们都能想到的一些缓存应用场景,但是我们是不太清楚缓存的本质思想是什么的。缓存的基本思想就是我们非常熟悉的空间换时间。缓存也并不是那么的高大上,虽然他可以为系统的性能进行提升。缓存的思想实际在操作系统或者其他地方都被大量用到。比如 「CPU Cache 缓存的是内存数据用于解决 CPU 处理速度和内存不匹配的问题,内存缓存的是硬盘数据用于解决硬盘访问速度过慢的问题。」 「再比如操作系统在 页表方案 基础之上引入了 快表 来加速虚拟地址到物理地址的转换。我们可以把快表理解为一种特殊的高速缓冲存储器(Cache)。」 上面简单介绍了缓存的基本思想,现在回到业务系统来说:*

上周热点回顾(9.23-9.29)

大城市里の小女人 提交于 2020-11-02 07:36:48
热点随笔: · .NET Conf 2019 大会上发布.NET Core 3.0 ( 张善友 ) · 程序员写 2000 行 if else?领导:这个锅我不背 ( 小柒2012 ) · 多事之秋-最近在阿里云上遇到的问题:负载均衡失灵、服务器 CPU 100%、被 DDoS 攻击 ( 博客园团队 ) · 程序员过关斩将--要想获取我的用户信息,就得按照规矩来 ( 架构师修行之路 ) · ASP.NET Core 3.0 使用gRPC ( 晓晨Master ) · [翻译] ASP.NET Core 3.0 的新增功能 ( 秦文轩 ) · ASP.NET Core 3.0 gRPC 双向流 ( 晓晨Master ) · 基于RHEL8/CentOS8的网络基础配置 ( 王者★孤傲 ) · 我用数据结构花了一夜给女朋友写了个h5走迷宫小游戏 ( bigsai ) · 从壹开始 NetCore 新篇章 ║ Blog.Core 开发社之招募计划书 ( 老张的哲学 ) · 跳槽时,不敢要高工资也会对候选人不利 ( hsm_computer ) · ASP.NET Core 3.0 : 二十四. 配置的Options模式 ( FlyLolo ) 热点新闻: · Facebook中国程序员之死:年仅38岁跳楼轻生,浙大EE毕业生 · 李彦宏主刀百度大手术:用户优先,去庸人打硬战 ·

Java工程师必备

不羁的心 提交于 2020-11-01 07:37:45
Java工程师必备 JAVA基础扎实,熟悉JVM,熟悉网络、多线程、分布式编程及性能调优 精通Java EE相关技术 熟练运用Spring/SpringBoot/MyBatis等基础框架 熟悉分布式系统相关技术 熟悉MySQL及SQL优化 高并发、高可用、微服务、容器化等开发经验 熟悉JVM原理,精通io、多线程,精通分布式、缓存、消息等机制 熟练使用和配置Tomcat应用服务器 掌握Eclispse,Maven,SVN,GIT等软件开发工具的环境搭建和使用 熟悉H5、CSS、JS等前端技术,熟悉BootStrap、Jquery等常用框架的一种 掌握SQL,至少熟悉MariaDB(MySQL)/Oracle数据库中的一种 客户端与服务端数据接口封装,独立调试各类数据接口,如支付接口,短信接口,等各类第三方数据接口对接 熟悉分布式缓存、消息中间件、RPC框架、负载均衡、安全防御等技术 有大数据处理经验,包括hadoop/storm/spark/hbase/ELK等 对RPC或GRPC有一定的工作经验 熟悉Linux环境以及操作 熟练掌握Java开发语言或Python,有服务端开发经验,熟悉多线程、高并发等常用开发技术 熟悉JS、Jquery,掌握HTTP/HTTPS协议,有Web前台开发经验优先 有云计算及大数据领域开发经验优先 结言 好了,欢迎在留言区留言,与大家分享你的经验和心得

微服务架构

不打扰是莪最后的温柔 提交于 2020-10-31 05:31:19
原文: 微服务架构 微服务架构到底应该如何选择? 什么是微服务? 微服务的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。 微服务是SOA架构下的最终产物,该架构的设计目标是为了肢解业务,使得服务能够独立运行。 主要有一下几个特点 服务拆分粒度更细 微服务可以说是更细维度的服务化,小到一个子模块,只要该模块依赖的资源与其他模块都没有关系,那么就可以拆分为一个微服务。 服务独立部署 每个微服务都严格遵循独立打包部署的准则,互不影响。比如一台物理机上可以部署多个 Docker 实例,每个 Docker 实例可以部署一个微服务的代码。 服务独立维护 每个微服务都可以交由一个小团队甚至个人来开发、测试、发布和运维,并对整个生命周期负责。 服务治理能力要求高 因为拆分为微服务之后,服务的数量变多,因此需要有统一的服务治理平台,来对各个服务进行管理。 微服务架构下,服务调用主要依赖下面几个基本组件: 服务描述 注册中心 服务框架 服务监控 服务追踪 服务治理 开源RPC框架介绍 Dubbo

Dubbo3.0

我与影子孤独终老i 提交于 2020-10-28 03:50:41
作者 | 郭浩(项升) 阿里巴巴经济体 RPC 框架负责人 导读: 本文整理自作者于 2020 年云原生微服务大会上的分享《Dubbo3.0 - 开启下一代云原生微服务》,主要介绍了关于思考 rpc 框架层面,功能演进的方向是什么?以及怎么更好地支持云上的多语言开发的新思考。 看 到这个题目,大家可能会有几个问题,比如,什么是云原生微服务?Dubbo3.0 是什么?和目前的 Dubbo2.0 有什么区别?用了 Dubbo3.0 会带来哪些业务视角的好处? 后面的分享会对这些问题逐一解答。 这次分享分为以下几个环节: Dubbo 的演进历史 Dubbo 的开源现状 定义 Dubbo3.0 分享 Dubbo 3.0 目前取得的一些成果 考虑到有些同学对 Dubbo 可能不太熟悉,在介绍背景之前,我先简单介绍一下 Dubbo 是什么。简单地说,Dubbo 是基于 Java 的 RPC 框架。一个 RPC 框架至少由数据格式、传输协议和连接管理组成,这三点也是构成核心。Dubbo 能够被广泛应用主要有两个原因: 一方面是较好的插件机制支撑了多种扩展,这些扩展在不同业务场景和基础架构中能分别发挥最大优势; 另一方面不同于普通的 RPC 框架,Dubbo 的服务治理功能让其在易用性方面脱颖而出,比如路由规则能够支持灵活多样的运行时动态路由,可以基于此功能实现灰度、ABTest、流量回放等功能。

直观讲解一下 RPC 调用和 HTTP 调用的区别!

大憨熊 提交于 2020-10-25 12:55:46
作者:浮生忆梦 blog.csdn.net/m0_38110132/article/details/81481454 很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive! 本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹啦!下面来具体说一说RPC服务和HTTP服务。 OSI网络七层模型 在说RPC和HTTP的区别之前,我觉的有必要了解一下OSI的七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层:(从上到下) 第一层:应用层。定义了用于在网络中进行通信和传输数据的接口; 第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等; 第三层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断; 第四层:传输层。管理着网络中的端到端的数据传输; 第五层:网络层。定义网络设备间如何传输数据; 第六层:链路层。将上面的网络层的数据包封装成数据帧,便于物理层传输; 第七层:物理层。这一层主要就是传输这些二进制数据。 实际应用过程中

基于Flask-APScheduler实现添加动态定时任务

拈花ヽ惹草 提交于 2020-10-24 17:13:30
阅读目录 一、apSheduler 二、Flask-APScheduler 三、动态定时任务 四、uwsgi部署注意事项 一、apSheduler 第一部分内容限于apSheduler3.0以下版本,以上版本可移步至 FastAPI+apSheduler动态定时任务 1. 引子(Introduction) Advanced Python Scheduler (APScheduler) 是一个轻量级但功能强大的进程内任务调度器,允许您调度函数(或任何其他python可调用文件)在您选择的时间执行。 2. 特性(Features) 没有(硬)外部依赖性 api线程安全 支持CPython、Jython、PyPy 可配置的调度机制(触发器): 类似cron调度 单次运行延迟调度(如UNIX“at”命令) 基于时间间隔(以指定的时间间隔运行) 支持多种存储空间 RAM 基于文件的简单数据库 SQLAlchem MongoDB Redis 3. 使用(Usage) 3.1 安装 pip install apscheduler 3.2 启动调度程序 from apscheduler.scheduler import Scheduler sched = Scheduler() sched.start() 3.3 调度job 3.3.1 简单日期调度job 在指定时间执行一次job