|
@@ -4,59 +4,64 @@
|
|
# ide:
|
|
# ide:
|
|
## ideaj:
|
|
## ideaj:
|
|
- 下载地址:https://www.jetbrains.com/idea/
|
|
- 下载地址:https://www.jetbrains.com/idea/
|
|
-- 安装
|
|
|
|
|
|
+- 安装:
|
|
|
|
+ 1. 将下载好的安装包安装好
|
|
|
|
+ 2. 配置激活服务器,[idea激活方式](http://blog.lanyus.com)
|
|
|
|
+ 3. 打开idea,激活窗口选择license server,地址配置为步骤二设置的地址,然后激活
|
|
|
|
|
|
# springboot
|
|
# springboot
|
|
|
|
|
|
-> 和.net mvc 相似点:
|
|
|
|
|
|
+- 和.net mvc 相似点:
|
|
|
|
+
|
|
```
|
|
```
|
|
1、Chain相当于.net中的Middleware(非core项目参考自host项目的owin) (有个好听的名字:洋葱模型-->请求一层一层进去,再一层一层出来)
|
|
1、Chain相当于.net中的Middleware(非core项目参考自host项目的owin) (有个好听的名字:洋葱模型-->请求一层一层进去,再一层一层出来)
|
|
2、Interceptor相当于.net中的Filter
|
|
2、Interceptor相当于.net中的Filter
|
|
3、路由这块和webapi一样用,但是大小写敏感
|
|
3、路由这块和webapi一样用,但是大小写敏感
|
|
4、注解类似于特性
|
|
4、注解类似于特性
|
|
```
|
|
```
|
|
-> 依赖注入
|
|
|
|
|
|
+- 依赖注入
|
|
|
|
+
|
|
```
|
|
```
|
|
-类上加上@Service,@Component,生命周期默认为singleton,也可通过@Scope指定
|
|
|
|
|
|
+类上加上@Service,@Component,生命周期默认为singleton,也可通过@Scope指定,但是和.net不同,这里面singleton的组件会在服务初始化的时候就创建起来缓存掉,从某种意义上来说是一种饿汉模式,而.net相反,第一次用到的时候才会创建,属于懒汉模式。java这样可以解决一个问题,初始化的时候就可以检查到是否有singleton实例引用了其他非Transit或者singleton的实例导致实例释放导致singleton实例部分功能不可用,还有一种依赖注入的方式是@Bean注解,这个注解表示这个方法的返回值就会作为实例,使用的时候通过@Autowired注解或者@Resource注解就可以实现属性注入,或者通过构造函数来注入
|
|
```
|
|
```
|
|
-> 一次请求的生命周期
|
|
|
|
|
|
+- 一次请求的生命周期
|
|
|
|
|
|
-> 各种初始化
|
|
|
|
|
|
+- 各种初始化
|
|
|
|
|
|
# springcloud
|
|
# springcloud
|
|
[史上最简单的 SpringCloud 教程](https://github.com/forezp/SpringCloudLearning)
|
|
[史上最简单的 SpringCloud 教程](https://github.com/forezp/SpringCloudLearning)
|
|
|
|
|
|
-> 服务注册与发现
|
|
|
|
->> eureka:[关于eureka的p2p通讯](https://hacpai.com/article/1498726165535)
|
|
|
|
|
|
+- 服务注册与发现
|
|
|
|
+> eureka:[关于eureka的p2p通讯](https://hacpai.com/article/1498726165535)
|
|
```
|
|
```
|
|
1、无中心化的注册中心
|
|
1、无中心化的注册中心
|
|
2、集群采用p2p的方式,server和server之间互相作为client注册
|
|
2、集群采用p2p的方式,server和server之间互相作为client注册
|
|
3、client定时和server保持心跳,并同步数据
|
|
3、client定时和server保持心跳,并同步数据
|
|
```
|
|
```
|
|
->> zookeeper:
|
|
|
|
|
|
+> zookeeper:
|
|
```
|
|
```
|
|
1、一个leader节点,其余都是follower,走的Paxos协议来选举以及同步各个节点数据
|
|
1、一个leader节点,其余都是follower,走的Paxos协议来选举以及同步各个节点数据
|
|
2、只有leader接受更新操作,然后会同步更新到各个follower节点上
|
|
2、只有leader接受更新操作,然后会同步更新到各个follower节点上
|
|
```
|
|
```
|
|
|
|
|
|
-> 服务消费者
|
|
|
|
|
|
+- 服务消费者
|
|
```
|
|
```
|
|
1、消费者不断会和eureka保持心跳,并且从eureka获取注册的服务提供者们
|
|
1、消费者不断会和eureka保持心跳,并且从eureka获取注册的服务提供者们
|
|
2、由于一个服务的服务者可能不止一个,所以需要一个负载均衡的策略来均匀路由到每一个服务提供者,所以这就有了客户端负载均衡库ribbon
|
|
2、由于一个服务的服务者可能不止一个,所以需要一个负载均衡的策略来均匀路由到每一个服务提供者,所以这就有了客户端负载均衡库ribbon
|
|
3、由于eureka是定时心跳,所以如果一个服务节点挂了,依然是可以访问到的,所以为了解决这个问题,下面的断路器就有用武之地了,可以认为eureka+ribbon就需要使用hystricx断路器来保证请求不出问题
|
|
3、由于eureka是定时心跳,所以如果一个服务节点挂了,依然是可以访问到的,所以为了解决这个问题,下面的断路器就有用武之地了,可以认为eureka+ribbon就需要使用hystricx断路器来保证请求不出问题
|
|
```
|
|
```
|
|
|
|
|
|
-> 断路器
|
|
|
|
->> hystricx:Netflix出品
|
|
|
|
|
|
+- 断路器
|
|
|
|
+> hystricx:Netflix出品
|
|
|
|
|
|
-> 配置中心
|
|
|
|
->> 基于zookeeper的配置中心
|
|
|
|
|
|
+- 配置中心
|
|
|
|
+> 基于zookeeper的配置中心
|
|
|
|
|
|
->> springconfig
|
|
|
|
|
|
+- springconfig
|
|
|
|
|
|
-> 健康检查
|
|
|
|
|
|
+- 健康检查
|
|
|
|
|
|
-> 链路
|
|
|
|
|
|
+- 链路
|
|
|
|
|
|
# db
|
|
# db
|
|
|
|
|