1.微服务是什么
(1)微服务的核心就是将传统的一站式应用,根据业务拆分成一个个的服务,彻底的去耦合;
(2)每一个微服务都提供单个业务功能的服务,一个微服务只做一件事情;
(3)从技术角度看,就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有独立的数据库。
2.微服务于微服务架构
微服务架构:用maven开发的独立的小module,使用springboot开发的小模块,专业的事情交给专业的模块做,一个模块只做一件事情,----一个个独立的进程,避免统一的集中式的服务管理机制
3.优缺点
(1)优点
①每个服务足够内聚,足够小,代码容易理解这样能聚集一个指定的业务功能或业务需求
② 开发简单,开发效率提高,一个服务只干一件事
③微服务能够被小团队单独开发
④微服务松耦合,是有功能意义的服务,无论开发阶段还是部署阶段都是相互独立的
⑤微服务能使用不同的语言进行开发
⑥易于和第三方集成,允许容易且灵活的方式集成自动部署,通过持续集成工具
⑦微服务易于被理解,修改,维护
⑧只针对逻辑部分的代码,不会和html css 或其他界面组件混合
⑨灵活搭配,可以有独立的数据库,也可以使用统一的数据库
(2)缺点
①开发人员处理分布式系统的复杂性
②多服务运维难度,随着服务增加,运维压力增大
③系统部署依赖
④服务之间的通信成本
⑤数据的一致性
⑥系统集成测试
4.微服务的技术栈有哪些
多种技术栈的集合服务
微服务条目技术备注服务开发spring boot spring/springMVC 服务注册与发现阿里 Diamond
服务注册与发现Eureka Consul Zookeeper
服务调用Rest RPC gRPC 服务熔断器Hystric Envoy 负载均衡Ribbon Nignx 服务接口调用Feign 消息队列Kafka RabbitMQ ActiveMQ 服务配置管理中心SpringCloudConfig Chef 服务路由(网关)Zuul 服务监控Zabbix Nagios Metrics Spectstor 全链路追踪Zipkin Brave Dapper 服务部署Docker OpenStack Kubernetes 数据流操作开发包SpringCloud Stream 事件消息总线Spring Cloud Bus5.为什么选择SpringCloud
选型依据:整体解决方案和框架成熟度,社区热度,可维护性,学习曲线
现有微服务架构:阿里Dubbo/HSF 京东JSF 新浪微博Motan 当当 DubboX
功能点/服务框架Springcloud
Double功能定位完整的微服务框架服务框架支持Rest是否支持RPC否是是否支持多语言否否服务注册/发现Eruke服务注册表是负载均衡Zuul是(客户端)服务配置Springcloud Config server
否高可用Hystrix是(客户端)其他Spring cloudBus提供更多管理端点实践公司多