一,微服务
1,什么是微服务
是一种架构模式,把一个程序分成很多不同的服务,各个服务运行在其独立的进程内,服务之间相互协调,相互配置。服务之间采用轻量级的通信机制http沟通,每个服务负责自己的业务,再有一个轻量级的集中式管理来协调这些服务
2,微服务优缺点
优点
高内聚,低耦合:每个服务足够小,代码容易理解,更方便各部门专注自己业务。各个服务相互独立
能使用不同语言进行开发
易于集成和部署
缺点
运维的复杂度加大
数据一致性问题,系统集成测试问题
3,微服务的技术栈
技术条目 | 落地技术 |
---|---|
服务开发 | springboot,spring,springMVC |
服务配置及管理 | Archaius,Diamond |
服务注册与发现 | Eureka,Zookeeper |
服务调用 | Rest,RPC |
服务熔断 | Hystrix,Envoy |
负载均衡 | Ribbon,Nginx |
消息队列 | kafka,RocketMQ,RabbitMQ |
服务配置中心管理 | SpringCloudConfig,Chef |
服务路由 | Zuul |
服务监控 | Metrics,Zabbix,Cat |
服务部署 | Docker,Kubernetes |
4 ,微服务通讯
常见的微服务框架:dubbo和springcloud
dubbo采用RPC远程调用,二进制传输,占用带宽小一些
springcloud采用http传输,带宽占用多一点,比RPC调用更灵活