javalearning.md 2.9 KB

java准备

  • 下载jdk,目前test01服务器上有D:\tools\java相关\java\jdk-8u121-windows-x64.exe

ide:

ideaj:

springboot

  • 和.net mvc 相似点:

    1、Chain相当于.net中的Middleware(非core项目参考自host项目的owin) (有个好听的名字:洋葱模型-->请求一层一层进去,再一层一层出来)
    2、Interceptor相当于.net中的Filter
    3、路由这块和webapi一样用,但是大小写敏感
    4、注解类似于特性
    
  • 依赖注入

    类上加上@Service,@Component,生命周期默认为singleton,也可通过@Scope指定,但是和.net不同,这里面singleton的组件会在服务初始化的时候就创建起来缓存掉,从某种意义上来说是一种饿汉模式,而.net相反,第一次用到的时候才会创建,属于懒汉模式。java这样可以解决一个问题,初始化的时候就可以检查到是否有singleton实例引用了其他非Transit或者singleton的实例导致实例释放导致singleton实例部分功能不可用,还有一种依赖注入的方式是@Bean注解,这个注解表示这个方法的返回值就会作为实例,使用的时候通过@Autowired注解或者@Resource注解就可以实现属性注入,或者通过构造函数来注入
    
  • 一次请求的生命周期

  • 各种初始化

springcloud

史上最简单的 SpringCloud 教程

  • 服务注册与发现

    eureka:关于eureka的p2p通讯

    1、无中心化的注册中心
    2、集群采用p2p的方式,server和server之间互相作为client注册
    3、client定时和server保持心跳,并同步数据
    

    zookeeper:

    1、一个leader节点,其余都是follower,走的Paxos协议来选举以及同步各个节点数据
    2、只有leader接受更新操作,然后会同步更新到各个follower节点上
    
  • 服务消费者

    1、消费者不断会和eureka保持心跳,并且从eureka获取注册的服务提供者们
    2、由于一个服务的服务者可能不止一个,所以需要一个负载均衡的策略来均匀路由到每一个服务提供者,所以这就有了客户端负载均衡库ribbon
    3、由于eureka是定时心跳,所以如果一个服务节点挂了,依然是可以访问到的,所以为了解决这个问题,下面的断路器就有用武之地了,可以认为eureka+ribbon就需要使用hystricx断路器来保证请求不出问题
    
  • 断路器

    hystricx:Netflix出品

  • 配置中心

    基于zookeeper的配置中心

  • springconfig

  • 健康检查

  • 链路

db

mybatis:

druid: