spring-boot简介
优点
- 基于spring4以上,简化spring开发的生态
- 提倡注解,集成方便简单,很好的处理了依赖问题
- 组件集成功能,注解等更加完善,同时也是spring-cloud的基础
- 支持jar启动,改善运维能力
缺点
最佳实践
- 全面采用javaconfig,方便的yml配置等
- 使用spring-boot组件,如starter,@EnableReids等集成通用模块不在原来的spring基础上更进一步支持简单业务处理,甚至是controller,比较类似 spring-cloud-zuul其实就是一个spring-boot服务
自定义spring-boot starter
monitor-common
MonitorAutoConfiguration
进一步简化封装
- 如何处理web层通用异常
- 如何处理dubbo层异常
- 如何避免swagger重复引用
groot commmon
- 统一api基础使用规范
- 屏蔽web层封装,简单处理统一异常
目前项目集成简单梳理
优点
目前的架构
缺点
- 网关根据ip+port转发,无服务发现能力
- dubbo目前xml形势,非常不利于集成
upms例子
- 需要引入dubbo xml配置,引入jar包
- 理想模型,和springboot一样引入jar,配置yml就可以
- 需要可以加入@EnableUpms这样的注解更方便控制
怎么做
// 提供一套dubbo-spring-boot-starter
服务发现
- 我们有必要花一些时间来了解一下Eureka的元数据,这样就可以添加一些自定义的数据以适应特定的业务场景。像主机名、IP地址、端口号、状态页url和健康检查url都是Eureka定义的标准元数据。这些元数据会被保存在Eureka Server的注册信息中,客户端会读取这些数据来向需要调用的服务直接发起连接。你可以使用以eureka.instance.metadataMap开头的参数来添加你自定义的元数据,所有客户端都会读取到该信息。通过这种方式你能给客户端自定义一些行为。
配置中心
spring cloud
spring cloud微服务最小组件
- 服务发现 spring cloud eureka
- 负载均衡 spring cloud ribbon
- http客户端 spring cloud feign
- 服务隔离、熔断(也可以称为断路)、降级等 spring cloud hystrix 【可选】
- 服务链路追踪 Spring Cloud Sleuth 【可选】
对于整个分布式系统
目前现状
问题
- 没有完善的dubbo测试工具,有的可能需求提供两套接口
- 现有公司的业务的高可用 其实在一套架构下就可以支持
- 如果切换到cloud,需要一套规范,使用规范等,如何定义