什么是微服务
1)一组小服务(大小没有特别的标准,只要同组的工程师明白服务标识一致即可)
2)独立进程(javaTomcat、nodejs等)
3)轻量级通信(不是soap,一般的http或rpc)
4)基于业务能力(类似于用户服务、商品服务等)
5)独立部署(迭代速度快)
6)无集中管理(无统一技术栈,根据不同服务或团队灵活选择)
微服务优缺点
优点:
- 容易开发
- 灵活的技术栈
- 服务独立无依赖服务间通信成本
- 数据一致性
- 系统集成测试
- 重复性工作
- 性能监控
什么时候适合使用微服务
微服务不是灵丹妙药当ap应用成熟,业务领域熟悉,如果发现单一服务无法适应业务发展,再考虑微服务的设计和架构。
微服务具有的一些东西
1。微服务网关
网关就像公司的门卫。屏蔽内部细节,统一对外服务接口。网关可以统一进行权限验证和API监控注册中心然后在其框架下提供发现服务的功能。这样就避免了多个微服务的配置和微服务与客户端之间的耦合。
3。微服务配置中心的配置
写在配置文件中。在配置的情况下,成本很高。并且没有修改配置的记录,问题很难追溯。配置中心解决了以上问题。
4。监控系统
监控内容分为五个部分:日志监控、Metrics监控(服务调用状态)、调用链监控、告警系统和健康检查。
5.熔断、隔离、限流、降级
面对突如其来的巨大流量,大公司一般会采用熔断(系统自动关闭服务,防止最大问题)、隔离(Isolateservicesfromservices,防止一个服务挂掉,其他服务无法访问),限流(单位时间内允许一定数量的用户访问),降级(当整个微服务架构的整体负载超过预设的上限阈值或者即将到来的流量时)预计超过预设阈值,为保证重要或基础服务的正常运行,我们可以延迟或暂停使用一些不重要或非紧急的服务或任务)。
通用微服务组件
1.服务发现
SpringCloudEureka、Nacos等
2.负载均衡、调用等功能Ribbon
3.网关等