最后更新:2022-07-18 10:54:37 手机定位技术交流文章
服务是一个相对较小且独立的功能单元或功能单元组,用户可以认为是最小的函数集。服务分解原则:高封装低耦合。
微服务架构风格是开发一个单个应用程序作为一个小服务群的方式。每个服务程序在其本身的进程中运行,它也与轻量级机制(通常是HTTP资源API)通信。这些服务以业务功能为基础。该机器可以通过完全自动部署来独立部署.这些服务器可以用不同的编程语言编写,使用不同的数据存储技术,尽量避免集中管理。微服务架构的本质:分离和结合。
易混淆概念:
微服务架构:将复杂的系统使用组件化的方式进行拆分,并使用轻量级通讯方式进行整合的一种设计方法。
微服务: 由这个架构设计方法分开的独立组件化的小应用程序。
单体式服务架构
特性:
微服务架构
单一服务与微服务的比较
| 传统单体架构 | 分布式微服务化架构 | |
|---|---|---|
| 新功能开发 | 需要时间 | 容易开发和实现 |
| 部署 | 不经常而且容易部署 | 经常发布,部署复杂 |
| 隔离性 | 故障影响范围大 | 故障影响范围小 |
| 架构设计 | 初期技术选型难度大 | 设计逻辑难度大 |
| 系统性能 | 相对快速,少量摄入 | 相对慢,高吞吐量 |
| 系统运维 | 运维难度简单 | 运维难度复杂 |
| 新人上手 | 学习曲线大(应用逻辑) | 学习曲线大(结构逻辑) |
| 技术 | 技术单一而且封闭 | 技术多样,易于开发 |
| 测试和差错 | 简单 | 复杂(每个服务必须单独测试,需要集群测试) |
| 系统扩展性 | 扩展性差 | 扩展性好 |
| 系统管理 | 重点在于开发成本 | 重点是服务管理和日程安排 |
RPC(Remote Procedure Call Protocol):远程过程调用协议。可以像调用本地函数一样,去调用远程函数。
为什么微服务使用RPC:
- 每个服务都包含在一个过程中,它们是“独立”的。
- 不同的语言实现可以在进程之间使用。
与许多RPC系统一样,gRPC基于以下原则:定义指定如何远程调用服务。
当使用probe编译器服务f时,只使用gRPC编译它。
参考资料:
gRPC官方文件中文版本: http://doc.Oschina.Net/grpc?t=60133
gRPC网站: https://grpc.io
方法1:正式推荐安装方法(需要科学的互联网访问)
方法2:通过Github下载各种依赖库,然后配置
方法3:
链接: https://pan.Baidu.com/s/1eFfin2a7AIF-MUjr58iwew
提取码:3btj
将x.zip和google.golang.org.zip拖拽到虚拟机中。
原始文件编译
例如: Pandas是一个基于 NumPy的工具,用于解决数据分析任务。
新建一个person.proto的proto文件
使用命令protoc --go_out=plugins=grpc:. *.proto编译,会自动生成peron.pb.go文件,这个生成的文件不会做任何修改。
写服务端,新建一个server.go文件
写服务端,新建一个client.go文件
运行服务端和客户端
如果终端写成两种不同的语言, grpc可以保证终端与客户端之间的通信,协议可以保证两种语言之间的正常数据交换
本文由 在线网速测试 整理编辑,转载请注明出处。