发表于: 2019-10-30 19:35:48

1 905


今天做了什么
spring boot + dubbo:
提供端:
1,引入依赖
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
2,配置dubbo
dubbo.application.name=dubbo2-springboot-provider
dubbo.registry.protocol=zookeeper
dubbo.registry.address=192.168.10.173:2181
dubbo.protocol.port=20883
3,给Service加@Service注解(dubbo提供的@Service)
4,启动类加上@EnableDubbo注解

消费者端:
1,引入依赖
2,配置dubbo
dubbo.application.name=dubbo2-springboot-consumer
dubbo.registry.protocol=zookeeper
dubbo.registry.address=192.168.10.173:2181
3,需要引用Service的地方,加入@Reference注解,代替原先的@Autowried注解
4,启动类加上@EnableDubbo注解
spring boot拦截器:
和使用spring拦截器很相似.
依然是自定义一个拦截器类,然后使其impelents HandlerInterceptor
再override三个方法.至此都和spring interceptor没区别.
真正的区别在于spring boot的配置是在配置类中进行的:
@Configuration
public class MyInterceptorConfig extends WebMvcConfigurationSupport {

    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/u/**");
        super.addInterceptors(registry);
    }
}
总结spring boot与spring配置时的差别:
1.配置主要在新建config类和properties文件中进行,并且配置更简洁
2.在启动类要添加相应注解


Spring Cloud:
微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家.
Spring Cloud是一个基于Spring Boot实现的云原生应用开发工具,它为基于JVM的云原生应用开发中涉及的配置管理、服务发现、熔断器、智能路由、微代理、控制总线、分布式会话和集群状态管理等操作提供了一种简单的开发方式

Spring Cloud与Spring Boot:
Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务. 专注于快速、方便集成的单个个体
Spring Cloud是一个基于Spring Boot实现的云应用开发工具.关注全局的服务治理框架.并且Spring Cloud的实现基于Spring Boot.
Spring Cloud核心子项目:
Spring Cloud Netflix:核心组件,可以对多个Netflix OSS开源套件进行整合,例如:
Eureka:服务注册与发现.类似于dubbo的zookeeper.
Ribbon:客户端负载均衡的服务调用组件.用于消费服务.( Eureka+Rest+Ribbon)
Feign:基于Ribbon和Hystrix的声明式服务调用组件.同样是消费服务.(Eureka+Feign)
Hystrix:容错管理组件,实现了熔断器.预防单个服务器故障导致的雪崩效应.
Spring Cloud Config:配置中心.在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。
Eureka由3个角色组成,
1、Eureka Server
提供服务注册和发现
2、Service Provider
服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到
3、Service Consumer
服务消费方从Eureka获取注册服务列表,从而能够消费服务

收获:
AOP:
在面向对象编程的过程中,我们很容易通过继承、多态来解决纵向扩展。
但是对于横向的功能,比如,在所有的service方法中开启事务,或者统一记录日志等功能,面向对象的是无法解决的。
所以AOP面向切面编程其实是面向对象编程思想的一个补充。

遇到的问题

明天计划


返回列表 返回列表
评论

    分享到