惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

浮华生

Elasticsearch 检索性能优化 舆情监控系统综述 2024 半年度总结 2023 年终总结 - 浮华生 异地机器组网方案 Kubernetes 部署 Elasticsearch 和 Kibana 2022 年终总结 RabbitMQ connection channel 的关系 Kafka Java 客户端 Producer 原理分析 RabbitMQ 和 Kafka 应用原理简单对比 - 浮华生 阿里云 OpenSearch 介绍 Golang Array 和 Slice 区别 - 浮华生 Mac OS 下打造 golang nvim 编程环境之基础配置 电商搜索技术总结 电商搜索业务总结 2021 年终总结 Cypress 实践总结 年终总结 关于我 使用 cucumber 进行行为驱动开发(BDD) 微服务应用集成 SpringCloud 步骤 电商搜索数据同步方案 - 浮华生 通过一道数值转换题重温计算机补码 - 浮华生 macOS 系统推荐的一些软件 - 浮华生 DevOps 实施规划(持续更新) rabbitmq 如何提高可靠性并保证消费端幂等 AMQ Model总结 结对编程 RSocket 介绍 面向对象的理解 企业平台技术框架 对创业的思考 - 浮华生 知难行易 - 浮华生 一年工作经验总结 - 浮华生 我与领域驱动之缘 TDD 中使用的工具 tf-idf 算法 gitlab 添加代码规范检测 query 改写 阶段性总结 操作系统作用 - 浮华生 无标题 hamming-distance - 浮华生 ElasticSearch API 基本操作 elasticsearch 集群容错 ElasticSearch 基础概念 技术选型怎么做 条件概率、全概率与贝叶斯公式 年终总结 迁移到 ubuntu18 的问题及配置 - 浮华生 总结 使用 psi-probe 监控 Tomcat Tomcat 远程 Debug jstack 死循环和死锁定位 jmap & mat 内存溢出 JVM 常用参数查看 - 浮华生 周总结(8.13-8.19) - 浮华生 周总结(7.30-8.4) 使用移位运算符 master 公式 - 浮华生 VMware 12 NAT网络下配置 ubuntu 16.04 LTS 系统静态 IP - 浮华生 关于进制的计算 项目总结 第三篇 项目总结 第二篇 editor.md 富文本编辑器的使用 项目总结 第一篇 - 浮华生 2017至今总结 单例模式 - 浮华生 tor 使用 - 浮华生 归档 搜索 - 浮华生 搜索 && 推荐
谈谈微服务 - 浮华生
2017-11-25 · via 浮华生

什么是微服务

微服务是一些协同工作的小而自治的服务。

发展历史

微服务是应运而生,它不是谁发明的,而是现实社会总结出来的一种模式。

特性

我们可以把微服务看成一种细粒度的架构。当我们参与大型项目构建时会考虑到使用模块化的思想尽可能减少模块间的依赖,但这些模块间的界限很难维护,模块间相似的代码会有很多,这就增加了修复bug的难度。 在单一系统内,通常会创建一些抽象层或者模块来保证代码的内聚性,从而避免这个问题。内聚性是指将相关代码放在一起。内聚性在微服务架构里占有非常重要的地位。 微服务将这个理念应用到独立服务器上,根据业务的边界来确定服务的边界,这样就能确定某个功能放哪里。 微服务很小,专注于做好一件事 自治性:一个为服务就是一个独立的实体。他可以独立的部署在PAAS(Platform As A Service ,平台及服务)上,亦可以作为一个操作系统进程存在。 服务会暴露出API(Application Programming Interface,应用编程接口),然后服务之间通过这些API进行通信

好处:

  • 技术异构型:我们可以使用多种语言来编写程序,只需要保持相同API即可。
  • 弹性:当一个组件不可用时并不会导致级联故障。
  • 扩展:以前一整套系统只能被当做一个整体来进行扩展,需要花费大量的时间精力去进行整个系统的代码修改,在使用微服务的系统里,我们只需要对想扩展的那个服务进行扩展
  • 简化部署:使用微服务架构的系统不会像原来那样,每次更新都需要把整个项目重新部署一次,因为此时每个服务都是独立的,我们只需要把修改过代码的服务部署上去即可,有问题也只是这单个的服务,我们可以进行快速发现以及回滚。
  • 与组织结构相匹配:一个团队或者小组专门负责一个服务,维护一个代码库。
  • 可组合性:我们应该做到每个服务都是可重复使用的,根据客户需求对不同服务进行拼接组装。
  • 可替代性的优化:当你进入一个公司时,可能要面临重构上任程序员留下来的系统,很有可能让你眼花缭乱心惊胆战。当使用微服务时,每个服务只有很少的代码,重写或者移除一个或者多个服务也变得容易。